{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":763373658,"defaultBranch":"main","name":"cog3pio","ownerLogin":"weiji14","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-02-26T07:07:58.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/23487320?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1715225003.0","currentOid":""},"activityList":{"items":[{"before":"a6b20dea020c4c94e91aaedfd1f89743a6969561","after":null,"ref":"refs/heads/xarray_backend","pushedAt":"2024-05-09T03:23:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"}},{"before":"33285da1280f165d623457c73c1ae55c1674472e","after":"1009387ea45f179c2fd9bbe6efd24b4e873e5fd4","ref":"refs/heads/main","pushedAt":"2024-05-09T03:23:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":sparkles: Implement cog3pio xarray BackendEntrypoint (#14)\n\n* :sparkles: Implement cog3pio xarray BackendEntrypoint\r\n\r\nInitial implementation of a 'cog3pio' xarray BackendEntrypoint for decoding GeoTIFF files! Following instructions at https://docs.xarray.dev/en/v2024.02.0/internals/how-to-add-new-backend.html on registering a backend. Only a minimal implementation for now to read the pixel array data, with dummy x and y coordinates.\r\n\r\n* :heavy_plus_sign: Add xarray\r\n\r\nN-D labeled arrays and datasets in Python!\r\n\r\n* :globe_with_meridians: Decode x and y coordinates from affine transform\r\n\r\nWork out the list of x and y coordinates for the raster grid from the Affine transformation matrix. Requires changes being developed at https://github.com/georust/geo/pull/1159.\r\n\r\n* :construction_worker: Disable CI builds on 32-bit Windows\r\n\r\nGetting an error with compiling pandas 2.2.1 on Windows x86 (32-bit), and pandas has moved away from providing 32-bit Windows wheels, see https://github.com/pandas-dev/pandas/issues/54979, so might as well not build cog3pio wheels for 32-bit Windows since we can't test them properly.\r\n\r\n* :alembic: Benchmark cog3pio engine against rioxarray\r\n\r\nParametrized test to compare loading a GeoTIFF using cog3pio vs rioxarray via their respective xarray BackendEntrypoints. Made a new extras dependency group in pyproject.toml called 'benchmark', and listed both `pytest-codspeed` and `rioxarray` under it.\r\n\r\n* :bug: Add half pixel offset to get centrepoint of top left pixel\r\n\r\nThe affine transform from the GeoTIFF represents the top-left corner of the top-left pixel (gridline registration), but we need to convert that to the center of the top-left pixel (pixel registration) which is what xarray typically assumes. Added some more comments on how the xy_coords is calculated, and updated unit tests with new x/y min/max bounds. Commented out the mean value assertion for now as NaN handling is not implemented yet.\r\n\r\n* :pushpin: Pin to georust/geo at rev 481196b\r\n\r\nGetter methods on AffineTransform implemented in https://github.com/georust/geo/pull/1159 has been merged into the main branch of georust/geo, so no longer need to point to my personal fork. Also fixed a mismatched type when accessing the x_res and y_res attributes.\r\n\r\n* :memo: Document usage of cog3pio xarray backend engine in main README.md\r\n\r\nShow how a GeoTIFF file can be read into an xarray.DataArray object by passing `engine=\"cog3pio\"` to xarray.open_dataarray.\r\n\r\n* :busts_in_silhouette: Push out multi-dtype feature in roadmap to Q2\r\n\r\nThe multiple dtype feature is a little trickier than expected, so will push this out as a medium term goal for Q2 2024. Likely will depend on how the georust/geotiff crate's progress is like.","shortMessageHtmlLink":"โœจ Implement cog3pio xarray BackendEntrypoint (#14)"}},{"before":"7a40655b4739cf3ec307121893cde2e5720260d4","after":"a6b20dea020c4c94e91aaedfd1f89743a6969561","ref":"refs/heads/xarray_backend","pushedAt":"2024-05-09T01:47:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":busts_in_silhouette: Push out multi-dtype feature in roadmap to Q2\n\nThe multiple dtype feature is a little trickier than expected, so will push this out as a medium term goal for Q2 2024. Likely will depend on how the georust/geotiff crate's progress is like.","shortMessageHtmlLink":"๐Ÿ‘ฅ Push out multi-dtype feature in roadmap to Q2"}},{"before":"4c08b644ad732766da7459697e4b0e134b08c2fa","after":"7a40655b4739cf3ec307121893cde2e5720260d4","ref":"refs/heads/xarray_backend","pushedAt":"2024-05-09T01:21:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":pushpin: Pin to georust/geo at rev 481196b\n\nGetter methods on AffineTransform implemented in https://github.com/georust/geo/pull/1159 has been merged into the main branch of georust/geo, so no longer need to point to my personal fork. Also fixed a mismatched type when accessing the x_res and y_res attributes.","shortMessageHtmlLink":"๐Ÿ“Œ Pin to georust/geo at rev 481196b"}},{"before":"e0aaac343efe1e1d664420bf42dacd91f74b75fb","after":"4c08b644ad732766da7459697e4b0e134b08c2fa","ref":"refs/heads/xarray_backend","pushedAt":"2024-04-07T23:56:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":twisted_rightwards_arrows: Merge branch 'main' into xarray_backend","shortMessageHtmlLink":"๐Ÿ”€ Merge branch 'main' into xarray_backend"}},{"before":"8beb798a9543cba25ba9009241bb73618a779256","after":null,"ref":"refs/heads/pyo3-0.21","pushedAt":"2024-04-07T23:47:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"}},{"before":"0f5df6eb50d04941c160d3003e5ae5ad48434c8d","after":"33285da1280f165d623457c73c1ae55c1674472e","ref":"refs/heads/main","pushedAt":"2024-04-07T23:47:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":arrow_up: Bump pyo3 from 0.20.3 to 0.21.1, numpy from 0.20.0 to 0.21.0 (#15)\n\n* :arrow_up: Bump pyo3 from 0.20.3 to 0.21.1, numpy from 0.20.0 to 0.21.0\r\n\r\nBumps [pyo3](https://github.com/pyo3/pyo3) from 0.20.3 to 0.21.1.\r\n- [Release notes](https://github.com/pyo3/pyo3/releases)\r\n- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/pyo3/pyo3/compare/v0.20.3...v0.21.1)\r\n\r\nBumps [numpy](https://github.com/PyO3/rust-numpy) from 0.20.0 to 0.21.0.\r\n- [Release notes](https://github.com/PyO3/rust-numpy/releases)\r\n- [Changelog](https://github.com/PyO3/rust-numpy/blob/main/CHANGELOG.md)\r\n- [Commits](https://github.com/PyO3/rust-numpy/compare/v0.20.0...v0.21.0)\r\n\r\n* :alien: Migrate to pyo3's new Bound API\r\n\r\nSwitch from pyo3 GIL Ref API to the Bound API. Xref https://polar.sh/davidhewitt/posts/replacing-pyo3-api-pt1 and https://pyo3.rs/v0.21.1/migration#from-020-to-021","shortMessageHtmlLink":"โฌ†๏ธ Bump pyo3 from 0.20.3 to 0.21.1, numpy from 0.20.0 to 0.21.0 (#15)"}},{"before":"6376b1cbf4943e8ad6eca1fa10cbdde1f8a756c0","after":"8beb798a9543cba25ba9009241bb73618a779256","ref":"refs/heads/pyo3-0.21","pushedAt":"2024-04-07T23:21:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":alien: Migrate to pyo3's new Bound API\n\nSwitch from pyo3 GIL Ref API to the Bound API. Xref https://polar.sh/davidhewitt/posts/replacing-pyo3-api-pt1 and https://pyo3.rs/v0.21.1/migration#from-020-to-021","shortMessageHtmlLink":"๐Ÿ‘ฝ Migrate to pyo3's new Bound API"}},{"before":null,"after":"6376b1cbf4943e8ad6eca1fa10cbdde1f8a756c0","ref":"refs/heads/pyo3-0.21","pushedAt":"2024-04-07T23:10:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":arrow_up: Bump pyo3 from 0.20.3 to 0.21.1, numpy from 0.20.0 to 0.21.0\n\nBumps [pyo3](https://github.com/pyo3/pyo3) from 0.20.3 to 0.21.1.\n- [Release notes](https://github.com/pyo3/pyo3/releases)\n- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/pyo3/pyo3/compare/v0.20.3...v0.21.1)\n\nBumps [numpy](https://github.com/PyO3/rust-numpy) from 0.20.0 to 0.21.0.\n- [Release notes](https://github.com/PyO3/rust-numpy/releases)\n- [Changelog](https://github.com/PyO3/rust-numpy/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/PyO3/rust-numpy/compare/v0.20.0...v0.21.0)","shortMessageHtmlLink":"โฌ†๏ธ Bump pyo3 from 0.20.3 to 0.21.1, numpy from 0.20.0 to 0.21.0"}},{"before":"8a7942f05e773cffc5bec25bd583f0626ed9f1fc","after":"e0aaac343efe1e1d664420bf42dacd91f74b75fb","ref":"refs/heads/xarray_backend","pushedAt":"2024-03-26T04:21:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":bug: Add half pixel offset to get centrepoint of top left pixel\n\nThe affine transform from the GeoTIFF represents the top-left corner of the top-left pixel (gridline registration), but we need to convert that to the center of the top-left pixel (pixel registration) which is what xarray typically assumes. Added some more comments on how the xy_coords is calculated, and updated unit tests with new x/y min/max bounds. Commented out the mean value assertion for now as NaN handling is not implemented yet.","shortMessageHtmlLink":"๐Ÿ› Add half pixel offset to get centrepoint of top left pixel"}},{"before":"c87e1964975fb8cd4306e28b350f16a1be7827ff","after":"8a7942f05e773cffc5bec25bd583f0626ed9f1fc","ref":"refs/heads/xarray_backend","pushedAt":"2024-03-26T03:54:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":alembic: Benchmark cog3pio engine against rioxarray\n\nParametrized test to compare loading a GeoTIFF using cog3pio vs rioxarray via their respective xarray BackendEntrypoints. Made a new extras dependency group in pyproject.toml called 'benchmark', and listed both `pytest-codspeed` and `rioxarray` under it.","shortMessageHtmlLink":"โš—๏ธ Benchmark cog3pio engine against rioxarray"}},{"before":"4946458cfcb68c9890f09bd53bfd581d37c297ea","after":"c87e1964975fb8cd4306e28b350f16a1be7827ff","ref":"refs/heads/xarray_backend","pushedAt":"2024-03-26T03:49:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":alembic: Benchmark cog3pio engine against rioxarray\n\nParametrized test to compare loading a GeoTIFF using cog3pio vs rioxarray via their respective xarray BackendEntrypoints. Made a new extras dependency group in pyproject.toml called 'benchmark', and listed both `pytest-codspeed` and `rioxarray` under it.","shortMessageHtmlLink":"โš—๏ธ Benchmark cog3pio engine against rioxarray"}},{"before":"899d77dd761575f7aa35c73127917492a9bd0167","after":"4946458cfcb68c9890f09bd53bfd581d37c297ea","ref":"refs/heads/xarray_backend","pushedAt":"2024-03-26T02:39:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":construction_worker: Disable CI builds on 32-bit Windows\n\nGetting an error with compiling pandas 2.2.1 on Windows x86 (32-bit), and pandas has moved away from providing 32-bit Windows wheels, see https://github.com/pandas-dev/pandas/issues/54979, so might as well not build cog3pio wheels for 32-bit Windows since we can't test them properly.","shortMessageHtmlLink":"๐Ÿ‘ท Disable CI builds on 32-bit Windows"}},{"before":"9fee0ede42b2d7c5997dc3c5e968509b6939ef3c","after":"899d77dd761575f7aa35c73127917492a9bd0167","ref":"refs/heads/xarray_backend","pushedAt":"2024-03-25T22:51:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":globe_with_meridians: Decode x and y coordinates from affine transform\n\nWork out the list of x and y coordinates for the raster grid from the Affine transformation matrix. Requires changes being developed at https://github.com/georust/geo/pull/1159.","shortMessageHtmlLink":"๐ŸŒ Decode x and y coordinates from affine transform"}},{"before":"2d15cca0ca51adb5fbf35bcdbbf7ac74fd91f54a","after":"9fee0ede42b2d7c5997dc3c5e968509b6939ef3c","ref":"refs/heads/xarray_backend","pushedAt":"2024-03-25T22:40:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":heavy_plus_sign: Add xarray\n\nN-D labeled arrays and datasets in Python!","shortMessageHtmlLink":"โž• Add xarray"}},{"before":null,"after":"2d15cca0ca51adb5fbf35bcdbbf7ac74fd91f54a","ref":"refs/heads/xarray_backend","pushedAt":"2024-03-25T22:27:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":sparkles: Implement cog3pio xarray BackendEntrypoint\n\nInitial implementation of a 'cog3pio' xarray BackendEntrypoint for decoding GeoTIFF files! Following instructions at https://docs.xarray.dev/en/v2024.02.0/internals/how-to-add-new-backend.html on registering a backend. Only a minimal implementation for now to read the pixel array data, with dummy x and y coordinates.","shortMessageHtmlLink":"โœจ Implement cog3pio xarray BackendEntrypoint"}},{"before":"b23a97324bcbf5d94a69c0ca1b427ca461578019","after":"0f5df6eb50d04941c160d3003e5ae5ad48434c8d","ref":"refs/heads/main","pushedAt":"2024-03-25T04:41:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":sparkles: Support reading multi-band GeoTIFF files (#13)\n\n* :pushpin: Use image-tiff fork with multi-band support\r\n\r\nPulling from the `multi-band-geotiff` branch from my personal fork, that is currently in a pull request at https://github.com/image-rs/image-tiff/pull/224.\r\n\r\n* :sparkles: Support reading multi-band GeoTIFF files\r\n\r\nCount the number of bands or channels in the GeoTIFF file when decoding by looking at the ColorType. E.g. Gray = 1 band, Multiband = N bands. Added a unit test to read a 2-band float32 GeoTIFF file.\r\n\r\n* :white_check_mark: Pytest check reading multi-band remote GeoTIFF\r\n\r\nEnsure that reading a multi-band GeoTIFF file from a remote URL works.\r\n\r\n* :memo: Update note on multi-band support in main README.md\r\n\r\nAlso clarify that the roadmap item on reading single-band GeoTIFFs is for different dtypes.\r\n\r\n* :pushpin: Pin to image-tiff 0c54a18\r\n\r\nThe Multi-band PR at https://github.com/image-rs/image-tiff/pull/224 has been merged, so updating to use the main branch instead.\r\n\r\n* :goal_net: Return TiffUnsupportedError instead of unimplemented panic\r\n\r\nReplace `unimplemented!` with a recoverable TiffError::UnsupportedError instead to allow for better exception handling. Moved the band counting logic in the ndarray method above the image dimension line, and added a unit test to ensure unsupported ColorType TIFFs are handled properly.","shortMessageHtmlLink":"โœจ Support reading multi-band GeoTIFF files (#13)"}},{"before":"ae35a1338af5ed49ffd0a6ba66030fc2e79c2719","after":null,"ref":"refs/heads/multi-band","pushedAt":"2024-03-25T04:41:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"}},{"before":"6cb65cdd892ec35a1525469350995cffa2e0693a","after":"ae35a1338af5ed49ffd0a6ba66030fc2e79c2719","ref":"refs/heads/multi-band","pushedAt":"2024-03-25T04:14:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":goal_net: Return TiffUnsupportedError instead of unimplemented panic\n\nReplace `unimplemented!` with a recoverable TiffError::UnsupportedError instead to allow for better exception handling. Moved the band counting logic in the ndarray method above the image dimension line, and added a unit test to ensure unsupported ColorType TIFFs are handled properly.","shortMessageHtmlLink":"๐Ÿฅ… Return TiffUnsupportedError instead of unimplemented panic"}},{"before":"d3caf4a8fdbf5e7676b03e3fb34841062472402f","after":"6cb65cdd892ec35a1525469350995cffa2e0693a","ref":"refs/heads/multi-band","pushedAt":"2024-03-24T22:20:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":pushpin: Pin to image-tiff 0c54a18\n\nThe Multi-band PR at https://github.com/image-rs/image-tiff/pull/224 has been merged, so updating to use the main branch instead.","shortMessageHtmlLink":"๐Ÿ“Œ Pin to image-tiff 0c54a18"}},{"before":"124c2bf61a4d8c81b1eaf2ed6ae75f9e25b4aa27","after":"d3caf4a8fdbf5e7676b03e3fb34841062472402f","ref":"refs/heads/multi-band","pushedAt":"2024-03-20T02:06:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":memo: Update note on multi-band support in main README.md\n\nAlso clarify that the roadmap item on reading single-band GeoTIFFs is for different dtypes.","shortMessageHtmlLink":"๐Ÿ“ Update note on multi-band support in main README.md"}},{"before":"a3dfa0b9bdd0cc48ba952ae009e792846585d6a5","after":null,"ref":"refs/heads/s3","pushedAt":"2024-03-18T01:57:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"}},{"before":null,"after":"a3dfa0b9bdd0cc48ba952ae009e792846585d6a5","ref":"refs/heads/s3","pushedAt":"2024-03-18T01:46:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":triangular_flag_on_post: Enable aws feature flag for object_store crate\n\nAllow reading from s3","shortMessageHtmlLink":"๐Ÿšฉ Enable aws feature flag for object_store crate"}},{"before":"867da21dc777e8bbb666757b9b97ab7d31931695","after":"124c2bf61a4d8c81b1eaf2ed6ae75f9e25b4aa27","ref":"refs/heads/multi-band","pushedAt":"2024-03-18T01:07:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":white_check_mark: Pytest check reading multi-band remote GeoTIFF\n\nEnsure that reading a multi-band GeoTIFF file from a remote URL works.","shortMessageHtmlLink":"โœ… Pytest check reading multi-band remote GeoTIFF"}},{"before":null,"after":"867da21dc777e8bbb666757b9b97ab7d31931695","ref":"refs/heads/multi-band","pushedAt":"2024-03-17T23:10:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":sparkles: Support reading multi-band GeoTIFF files\n\nCount the number of bands or channels in the GeoTIFF file when decoding by looking at the ColorType. E.g. Gray = 1 band, Multiband = N bands. Added a unit test to read a 2-band float32 GeoTIFF file.","shortMessageHtmlLink":"โœจ Support reading multi-band GeoTIFF files"}},{"before":"c402b507e76e5cfe5a4f24957a03a0b223d04c17","after":null,"ref":"refs/heads/class_CogReader","pushedAt":"2024-03-17T00:37:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"}},{"before":"bca4c185e73c4cf4802b03aeb4e8da048c1ffff8","after":"b23a97324bcbf5d94a69c0ca1b427ca461578019","ref":"refs/heads/main","pushedAt":"2024-03-17T00:37:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":sparkles: Implement PyCogReader struct with new and to_numpy methods (#12)\n\n* :sparkles: Implement PyCogReader struct with new and data methods\r\n\r\nA (Py)CogReader class for Python that wraps around the CogReader struct! Have implemented the new (i.e. __init__) and data methods, and used them in the read_geotiff_py function. Needed to set CogReader struct visibility to pub(crate). Renamed vec_data to array_data since they contain arrays, not Vec. Also updated the regex match for one of the unit tests.\r\n\r\n* :memo: Add Python docstrings for CogReader class and methods\r\n\r\nNumpydoc style docstrings for the CogReader class and .data method. Included some example code on how to use the class and methods to read a sample GeoTIFF too.\r\n\r\n* :white_check_mark: Add unit test for CogReader's data method\r\n\r\nEnsure that the `.data()` method returns a numpy.ndarray output with the correct shape and values.\r\n\r\n* :truck: Rename data method as to_numpy\r\n\r\nOriginally went with `.data()` to match https://docs.xarray.dev/en/v2024.02.0/generated/xarray.DataArray.data.html, but realized that xarray's `.data` is a property, not a method. Now going with `.to_numpy()` instead, following what's used by xarray, pandas and pyarrow.","shortMessageHtmlLink":"โœจ Implement PyCogReader struct with new and to_numpy methods (#12)"}},{"before":"ec6d07a1083065620ecb0f98827ffb1d673e2e60","after":"c402b507e76e5cfe5a4f24957a03a0b223d04c17","ref":"refs/heads/class_CogReader","pushedAt":"2024-03-17T00:12:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":truck: Rename data method as to_numpy\n\nOriginally went with `.data()` to match https://docs.xarray.dev/en/v2024.02.0/generated/xarray.DataArray.data.html, but realized that xarray's `.data` is a property, not a method. Now going with `.to_numpy()` instead, following what's used by xarray, pandas and pyarrow.","shortMessageHtmlLink":"๐Ÿšš Rename data method as to_numpy"}},{"before":"2f43422c89e8798500bd4d3f4b380973bc5e2811","after":"ec6d07a1083065620ecb0f98827ffb1d673e2e60","ref":"refs/heads/class_CogReader","pushedAt":"2024-03-16T23:54:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":white_check_mark: Add unit test for CogReader's data method\n\nEnsure that the `.data()` method returns a numpy.ndarray output with the correct shape and values.","shortMessageHtmlLink":"โœ… Add unit test for CogReader's data method"}},{"before":"f5d5eff4f84ad16d8bb8fdc4d3b51ad28e22d307","after":"2f43422c89e8798500bd4d3f4b380973bc5e2811","ref":"refs/heads/class_CogReader","pushedAt":"2024-03-16T04:34:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weiji14","name":"Wei Ji","path":"/weiji14","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23487320?s=80&v=4"},"commit":{"message":":memo: Add Python docstrings for CogReader class and methods\n\nNumpydoc style docstrings for the CogReader class and .data method. Included some example code on how to use the class and methods to read a sample GeoTIFF too.","shortMessageHtmlLink":"๐Ÿ“ Add Python docstrings for CogReader class and methods"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAERTl63gA","startCursor":null,"endCursor":null}},"title":"Activity ยท weiji14/cog3pio"}