{"action":"created","issue":{"url":"https://api.github.com/repos/planetarypy/planetaryimage/issues/1","labels_url":"https://api.github.com/repos/planetarypy/planetaryimage/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/planetarypy/planetaryimage/issues/1/comments","events_url":"https://api.github.com/repos/planetarypy/planetaryimage/issues/1/events","html_url":"https://github.com/planetarypy/planetaryimage/issues/1","id":83788605,"number":1,"title":"Comments on PlanetaryImage","user":{"login":"godber","id":1249,"avatar_url":"https://avatars.githubusercontent.com/u/1249?v=3","gravatar_id":"","url":"https://api.github.com/users/godber","html_url":"https://github.com/godber","followers_url":"https://api.github.com/users/godber/followers","following_url":"https://api.github.com/users/godber/following{/other_user}","gists_url":"https://api.github.com/users/godber/gists{/gist_id}","starred_url":"https://api.github.com/users/godber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/godber/subscriptions","organizations_url":"https://api.github.com/users/godber/orgs","repos_url":"https://api.github.com/users/godber/repos","events_url":"https://api.github.com/users/godber/events{/privacy}","received_events_url":"https://api.github.com/users/godber/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"wtolson","id":544858,"avatar_url":"https://avatars.githubusercontent.com/u/544858?v=3","gravatar_id":"","url":"https://api.github.com/users/wtolson","html_url":"https://github.com/wtolson","followers_url":"https://api.github.com/users/wtolson/followers","following_url":"https://api.github.com/users/wtolson/following{/other_user}","gists_url":"https://api.github.com/users/wtolson/gists{/gist_id}","starred_url":"https://api.github.com/users/wtolson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wtolson/subscriptions","organizations_url":"https://api.github.com/users/wtolson/orgs","repos_url":"https://api.github.com/users/wtolson/repos","events_url":"https://api.github.com/users/wtolson/events{/privacy}","received_events_url":"https://api.github.com/users/wtolson/received_events","type":"User","site_admin":false},"milestone":null,"comments":5,"created_at":"2015-06-02T01:59:31Z","updated_at":"2015-06-02T14:47:40Z","closed_at":null,"body":"Here is a hastily implemented version of the PDS3 image parser derived from your cubefile code.  There is a parent class `PlanetaryImage` and a subclass `Pds3Image`.  Your `CubeFile` would inherit from `PlanetaryImage`.  There are a few methods that still need to be copied into `PlanetaryImage`.  Do you think there is sufficient overlap to justify this?\r\n\r\nThere are some minor issues with the implementation that I am still looking into."},"comment":{"url":"https://api.github.com/repos/planetarypy/planetaryimage/issues/comments/107978681","html_url":"https://github.com/planetarypy/planetaryimage/issues/1#issuecomment-107978681","issue_url":"https://api.github.com/repos/planetarypy/planetaryimage/issues/1","id":107978681,"user":{"login":"wtolson","id":544858,"avatar_url":"https://avatars.githubusercontent.com/u/544858?v=3","gravatar_id":"","url":"https://api.github.com/users/wtolson","html_url":"https://github.com/wtolson","followers_url":"https://api.github.com/users/wtolson/followers","following_url":"https://api.github.com/users/wtolson/following{/other_user}","gists_url":"https://api.github.com/users/wtolson/gists{/gist_id}","starred_url":"https://api.github.com/users/wtolson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wtolson/subscriptions","organizations_url":"https://api.github.com/users/wtolson/orgs","repos_url":"https://api.github.com/users/wtolson/repos","events_url":"https://api.github.com/users/wtolson/events{/privacy}","received_events_url":"https://api.github.com/users/wtolson/received_events","type":"User","site_admin":false},"created_at":"2015-06-02T14:47:40Z","updated_at":"2015-06-02T14:47:40Z","body":"Looking through the code, the `(bands, lines, samples)`, shape order is due to how the `BandSequential` (and to a lesser extent `Tile`) format is laid out on disk:\r\n\r\n    (band0, line0, sample0) ... (band0, line0, sampleN) \r\n    (band0, line1, sample0) ... (band0, lineN, sampleN) \r\n    (band1, line0, sample0) ... (bandN, lineN, sampleN)\r\n\r\nTo do `(lines, samples, bands)`, you would have to do quite a bit of copying instead of the simple:\r\n\r\n    data = numpy.fromfile(stream, self.dtype, self.size)\r\n    return data.reshape(self.shape)"}}