{"action":"created","comment":{"url":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/comments/51669067","id":51669067,"diff_hunk":"@@ -58,13 +58,21 @@ class GSObject(object):\n         >>> conv = galsim.Convolve([gal,psf])\n \n     All of these classes are subclasses of GSObject, so you should see those docstrings for\n-    more details about how to construct the various profiles.\n-\n-    Note that most GSObjects have some kind of size specification.  Typically, these would be\n-    given in terms of arcsec, with the connection to the pixel size being given in the Pixel\n-    class (0.2 arcsec/pixel in the above example).  However, you can have a more complicated\n-    relationship between pixel and sky coordinates.  See BaseWCS for more details about\n-    how to specify various kinds of world coordinate systems.\n+    more details about how to construct the various profiles.  Here we discuss attributes and\n+    methods that are common to all GSObjects.\n+\n+    GSObjects are always defined in sky coordinates.  So all sizes and other linear dimensions\n+    should be in terms of some kind of units on the sky, arcsec for instance.  Only later (when\n+    they are drawn) is the connection to pixel coordinates established via a pixel scale or WCS.\n+    (See the documentation for galsim.BaseWCS for more details about how to specify various kinds\n+    of world coordinate systems more complicated than a simple pixel scale.)\n+\n+    For instance, if you eventually draw onto an image that has a pixel scale of 0.2 arcsec/pixel,\n+    then the normal thing to do would be to define your surface brightness profiles in terms of\n+    arcsec and then draw with `pixel_scale=0.2`.  However, nowhere in GalSim do we enforce that sky\n+    coordinates need to be in arcsec.  If you wanted, you could instead define the sizes of all","path":"galsim/base.py","position":23,"original_position":23,"commit_id":"88ef7204ac456e49d0068549cfa876ac23d7acf4","original_commit_id":"88ef7204ac456e49d0068549cfa876ac23d7acf4","user":{"login":"rmandelb","id":1454906,"avatar_url":"https://avatars.githubusercontent.com/u/1454906?v=3","gravatar_id":"","url":"https://api.github.com/users/rmandelb","html_url":"https://github.com/rmandelb","followers_url":"https://api.github.com/users/rmandelb/followers","following_url":"https://api.github.com/users/rmandelb/following{/other_user}","gists_url":"https://api.github.com/users/rmandelb/gists{/gist_id}","starred_url":"https://api.github.com/users/rmandelb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmandelb/subscriptions","organizations_url":"https://api.github.com/users/rmandelb/orgs","repos_url":"https://api.github.com/users/rmandelb/repos","events_url":"https://api.github.com/users/rmandelb/events{/privacy}","received_events_url":"https://api.github.com/users/rmandelb/received_events","type":"User","site_admin":false},"body":"Don't we have a few places where we enforce units, for example in the use of the COSMOS catalog? (noise pad size, target pixel size, half-light radius cuts).  Also NFW halo, and ChromaticAtmosphere.","created_at":"2016-02-03T01:59:37Z","updated_at":"2016-02-03T01:59:37Z","html_url":"https://github.com/GalSim-developers/GalSim/pull/707#discussion_r51669067","pull_request_url":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/707","_links":{"self":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/comments/51669067"},"html":{"href":"https://github.com/GalSim-developers/GalSim/pull/707#discussion_r51669067"},"pull_request":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/707"}}},"pull_request":{"url":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/707","id":57748413,"html_url":"https://github.com/GalSim-developers/GalSim/pull/707","diff_url":"https://github.com/GalSim-developers/GalSim/pull/707.diff","patch_url":"https://github.com/GalSim-developers/GalSim/pull/707.patch","issue_url":"https://api.github.com/repos/GalSim-developers/GalSim/issues/707","number":707,"state":"open","locked":false,"title":"#682 Improved documentation about coordinates and units.","user":{"login":"rmjarvis","id":623887,"avatar_url":"https://avatars.githubusercontent.com/u/623887?v=3","gravatar_id":"","url":"https://api.github.com/users/rmjarvis","html_url":"https://github.com/rmjarvis","followers_url":"https://api.github.com/users/rmjarvis/followers","following_url":"https://api.github.com/users/rmjarvis/following{/other_user}","gists_url":"https://api.github.com/users/rmjarvis/gists{/gist_id}","starred_url":"https://api.github.com/users/rmjarvis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmjarvis/subscriptions","organizations_url":"https://api.github.com/users/rmjarvis/orgs","repos_url":"https://api.github.com/users/rmjarvis/repos","events_url":"https://api.github.com/users/rmjarvis/events{/privacy}","received_events_url":"https://api.github.com/users/rmjarvis/received_events","type":"User","site_admin":false},"body":"This PR addresses issues #682 and #657, both related to documentation.\r\n\r\nFor #682, I added documentation about what our convention for x,y is in terms of the rows and columns in the numpy array. I also added some concrete examples that will hopefully make clear what some of the image methods that shift around the coordinates do.  @esheldon Please see if the documentation update here addresses your concerns.\r\n\r\nFor #657, I tried to improve the documentation about the units used in Airy, OpticalPSF and Kolmogorov.  In particular with respect to the units of the `lam_over_diam` and `lam_over_r0` parameters.  I also added a calculation of lam / r0, giving those values directly for Kolmogorov, analogous to the lam / diam calculation that Rachel added to Airy and OpticalPSF.  @dkirkby Please see if this adequately addresses the concerns you raised about the units of these parameters.\r\n\r\nIn addition, I added some more documentation about the fact that GSObjects are always in sky coordinates.  In particular that `GSObject.shift` is necessarily in terms of sky coordinates, since the GSObject doesn't know about the pixel scale yet, but that `drawImage(offset)` is in terms of pixels.  This is a question that has come up a number of times, so it seems like our documentation on this had been insufficient.","created_at":"2016-01-30T19:40:00Z","updated_at":"2016-02-03T01:59:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"49099ed2dbdcc84b6e5100e1e45832258dcd345a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/707/commits","review_comments_url":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/707/comments","review_comment_url":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GalSim-developers/GalSim/issues/707/comments","statuses_url":"https://api.github.com/repos/GalSim-developers/GalSim/statuses/88ef7204ac456e49d0068549cfa876ac23d7acf4","head":{"label":"GalSim-developers:#682","ref":"#682","sha":"88ef7204ac456e49d0068549cfa876ac23d7acf4","user":{"login":"GalSim-developers","id":1462196,"avatar_url":"https://avatars.githubusercontent.com/u/1462196?v=3","gravatar_id":"","url":"https://api.github.com/users/GalSim-developers","html_url":"https://github.com/GalSim-developers","followers_url":"https://api.github.com/users/GalSim-developers/followers","following_url":"https://api.github.com/users/GalSim-developers/following{/other_user}","gists_url":"https://api.github.com/users/GalSim-developers/gists{/gist_id}","starred_url":"https://api.github.com/users/GalSim-developers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GalSim-developers/subscriptions","organizations_url":"https://api.github.com/users/GalSim-developers/orgs","repos_url":"https://api.github.com/users/GalSim-developers/repos","events_url":"https://api.github.com/users/GalSim-developers/events{/privacy}","received_events_url":"https://api.github.com/users/GalSim-developers/received_events","type":"Organization","site_admin":false},"repo":{"id":3510804,"name":"GalSim","full_name":"GalSim-developers/GalSim","owner":{"login":"GalSim-developers","id":1462196,"avatar_url":"https://avatars.githubusercontent.com/u/1462196?v=3","gravatar_id":"","url":"https://api.github.com/users/GalSim-developers","html_url":"https://github.com/GalSim-developers","followers_url":"https://api.github.com/users/GalSim-developers/followers","following_url":"https://api.github.com/users/GalSim-developers/following{/other_user}","gists_url":"https://api.github.com/users/GalSim-developers/gists{/gist_id}","starred_url":"https://api.github.com/users/GalSim-developers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GalSim-developers/subscriptions","organizations_url":"https://api.github.com/users/GalSim-developers/orgs","repos_url":"https://api.github.com/users/GalSim-developers/repos","events_url":"https://api.github.com/users/GalSim-developers/events{/privacy}","received_events_url":"https://api.github.com/users/GalSim-developers/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GalSim-developers/GalSim","description":"The modular galaxy image simulation toolkit","fork":false,"url":"https://api.github.com/repos/GalSim-developers/GalSim","forks_url":"https://api.github.com/repos/GalSim-developers/GalSim/forks","keys_url":"https://api.github.com/repos/GalSim-developers/GalSim/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GalSim-developers/GalSim/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GalSim-developers/GalSim/teams","hooks_url":"https://api.github.com/repos/GalSim-developers/GalSim/hooks","issue_events_url":"https://api.github.com/repos/GalSim-developers/GalSim/issues/events{/number}","events_url":"https://api.github.com/repos/GalSim-developers/GalSim/events","assignees_url":"https://api.github.com/repos/GalSim-developers/GalSim/assignees{/user}","branches_url":"https://api.github.com/repos/GalSim-developers/GalSim/branches{/branch}","tags_url":"https://api.github.com/repos/GalSim-developers/GalSim/tags","blobs_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/refs{/sha}","trees_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GalSim-developers/GalSim/statuses/{sha}","languages_url":"https://api.github.com/repos/GalSim-developers/GalSim/languages","stargazers_url":"https://api.github.com/repos/GalSim-developers/GalSim/stargazers","contributors_url":"https://api.github.com/repos/GalSim-developers/GalSim/contributors","subscribers_url":"https://api.github.com/repos/GalSim-developers/GalSim/subscribers","subscription_url":"https://api.github.com/repos/GalSim-developers/GalSim/subscription","commits_url":"https://api.github.com/repos/GalSim-developers/GalSim/commits{/sha}","git_commits_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/commits{/sha}","comments_url":"https://api.github.com/repos/GalSim-developers/GalSim/comments{/number}","issue_comment_url":"https://api.github.com/repos/GalSim-developers/GalSim/issues/comments{/number}","contents_url":"https://api.github.com/repos/GalSim-developers/GalSim/contents/{+path}","compare_url":"https://api.github.com/repos/GalSim-developers/GalSim/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GalSim-developers/GalSim/merges","archive_url":"https://api.github.com/repos/GalSim-developers/GalSim/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GalSim-developers/GalSim/downloads","issues_url":"https://api.github.com/repos/GalSim-developers/GalSim/issues{/number}","pulls_url":"https://api.github.com/repos/GalSim-developers/GalSim/pulls{/number}","milestones_url":"https://api.github.com/repos/GalSim-developers/GalSim/milestones{/number}","notifications_url":"https://api.github.com/repos/GalSim-developers/GalSim/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GalSim-developers/GalSim/labels{/name}","releases_url":"https://api.github.com/repos/GalSim-developers/GalSim/releases{/id}","deployments_url":"https://api.github.com/repos/GalSim-developers/GalSim/deployments","created_at":"2012-02-22T02:51:45Z","updated_at":"2015-12-18T13:21:59Z","pushed_at":"2016-02-03T01:57:25Z","git_url":"git://github.com/GalSim-developers/GalSim.git","ssh_url":"git@github.com:GalSim-developers/GalSim.git","clone_url":"https://github.com/GalSim-developers/GalSim.git","svn_url":"https://github.com/GalSim-developers/GalSim","homepage":"","size":93433,"stargazers_count":47,"watchers_count":47,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":27,"mirror_url":null,"open_issues_count":56,"forks":27,"open_issues":56,"watchers":47,"default_branch":"releases/1.3"}},"base":{"label":"GalSim-developers:master","ref":"master","sha":"a2e8c913de8a969e83389cdde8f239556a558cb5","user":{"login":"GalSim-developers","id":1462196,"avatar_url":"https://avatars.githubusercontent.com/u/1462196?v=3","gravatar_id":"","url":"https://api.github.com/users/GalSim-developers","html_url":"https://github.com/GalSim-developers","followers_url":"https://api.github.com/users/GalSim-developers/followers","following_url":"https://api.github.com/users/GalSim-developers/following{/other_user}","gists_url":"https://api.github.com/users/GalSim-developers/gists{/gist_id}","starred_url":"https://api.github.com/users/GalSim-developers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GalSim-developers/subscriptions","organizations_url":"https://api.github.com/users/GalSim-developers/orgs","repos_url":"https://api.github.com/users/GalSim-developers/repos","events_url":"https://api.github.com/users/GalSim-developers/events{/privacy}","received_events_url":"https://api.github.com/users/GalSim-developers/received_events","type":"Organization","site_admin":false},"repo":{"id":3510804,"name":"GalSim","full_name":"GalSim-developers/GalSim","owner":{"login":"GalSim-developers","id":1462196,"avatar_url":"https://avatars.githubusercontent.com/u/1462196?v=3","gravatar_id":"","url":"https://api.github.com/users/GalSim-developers","html_url":"https://github.com/GalSim-developers","followers_url":"https://api.github.com/users/GalSim-developers/followers","following_url":"https://api.github.com/users/GalSim-developers/following{/other_user}","gists_url":"https://api.github.com/users/GalSim-developers/gists{/gist_id}","starred_url":"https://api.github.com/users/GalSim-developers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GalSim-developers/subscriptions","organizations_url":"https://api.github.com/users/GalSim-developers/orgs","repos_url":"https://api.github.com/users/GalSim-developers/repos","events_url":"https://api.github.com/users/GalSim-developers/events{/privacy}","received_events_url":"https://api.github.com/users/GalSim-developers/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GalSim-developers/GalSim","description":"The modular galaxy image simulation toolkit","fork":false,"url":"https://api.github.com/repos/GalSim-developers/GalSim","forks_url":"https://api.github.com/repos/GalSim-developers/GalSim/forks","keys_url":"https://api.github.com/repos/GalSim-developers/GalSim/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GalSim-developers/GalSim/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GalSim-developers/GalSim/teams","hooks_url":"https://api.github.com/repos/GalSim-developers/GalSim/hooks","issue_events_url":"https://api.github.com/repos/GalSim-developers/GalSim/issues/events{/number}","events_url":"https://api.github.com/repos/GalSim-developers/GalSim/events","assignees_url":"https://api.github.com/repos/GalSim-developers/GalSim/assignees{/user}","branches_url":"https://api.github.com/repos/GalSim-developers/GalSim/branches{/branch}","tags_url":"https://api.github.com/repos/GalSim-developers/GalSim/tags","blobs_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/refs{/sha}","trees_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GalSim-developers/GalSim/statuses/{sha}","languages_url":"https://api.github.com/repos/GalSim-developers/GalSim/languages","stargazers_url":"https://api.github.com/repos/GalSim-developers/GalSim/stargazers","contributors_url":"https://api.github.com/repos/GalSim-developers/GalSim/contributors","subscribers_url":"https://api.github.com/repos/GalSim-developers/GalSim/subscribers","subscription_url":"https://api.github.com/repos/GalSim-developers/GalSim/subscription","commits_url":"https://api.github.com/repos/GalSim-developers/GalSim/commits{/sha}","git_commits_url":"https://api.github.com/repos/GalSim-developers/GalSim/git/commits{/sha}","comments_url":"https://api.github.com/repos/GalSim-developers/GalSim/comments{/number}","issue_comment_url":"https://api.github.com/repos/GalSim-developers/GalSim/issues/comments{/number}","contents_url":"https://api.github.com/repos/GalSim-developers/GalSim/contents/{+path}","compare_url":"https://api.github.com/repos/GalSim-developers/GalSim/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GalSim-developers/GalSim/merges","archive_url":"https://api.github.com/repos/GalSim-developers/GalSim/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GalSim-developers/GalSim/downloads","issues_url":"https://api.github.com/repos/GalSim-developers/GalSim/issues{/number}","pulls_url":"https://api.github.com/repos/GalSim-developers/GalSim/pulls{/number}","milestones_url":"https://api.github.com/repos/GalSim-developers/GalSim/milestones{/number}","notifications_url":"https://api.github.com/repos/GalSim-developers/GalSim/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GalSim-developers/GalSim/labels{/name}","releases_url":"https://api.github.com/repos/GalSim-developers/GalSim/releases{/id}","deployments_url":"https://api.github.com/repos/GalSim-developers/GalSim/deployments","created_at":"2012-02-22T02:51:45Z","updated_at":"2015-12-18T13:21:59Z","pushed_at":"2016-02-03T01:57:25Z","git_url":"git://github.com/GalSim-developers/GalSim.git","ssh_url":"git@github.com:GalSim-developers/GalSim.git","clone_url":"https://github.com/GalSim-developers/GalSim.git","svn_url":"https://github.com/GalSim-developers/GalSim","homepage":"","size":93433,"stargazers_count":47,"watchers_count":47,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":27,"mirror_url":null,"open_issues_count":56,"forks":27,"open_issues":56,"watchers":47,"default_branch":"releases/1.3"}},"_links":{"self":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/707"},"html":{"href":"https://github.com/GalSim-developers/GalSim/pull/707"},"issue":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/issues/707"},"comments":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/issues/707/comments"},"review_comments":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/707/comments"},"review_comment":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/pulls/707/commits"},"statuses":{"href":"https://api.github.com/repos/GalSim-developers/GalSim/statuses/88ef7204ac456e49d0068549cfa876ac23d7acf4"}}}}