async-geotiff 0.1.0b3__py3-none-any.whl → 0.1.0b5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.4
2
+ Name: async-geotiff
3
+ Version: 0.1.0b5
4
+ Summary: Async GeoTIFF reader for Python
5
+ Keywords: geotiff,tiff,async,cog,raster,gis
6
+ Author: Kyle Barron
7
+ Author-email: Kyle Barron <kyle@developmentseed.org>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
18
+ Classifier: Topic :: Scientific/Engineering :: GIS
19
+ Classifier: Typing :: Typed
20
+ Requires-Dist: affine>=2.4.0
21
+ Requires-Dist: async-tiff>=0.5.0b3
22
+ Requires-Dist: numpy>=2.0
23
+ Requires-Dist: pyproj>=3.3.0
24
+ Requires-Dist: morecantile>=7.0,<8.0 ; extra == 'morecantile'
25
+ Requires-Python: >=3.11
26
+ Project-URL: Changelog, https://github.com/developmentseed/async-geotiff/blob/main/CHANGELOG.md
27
+ Project-URL: Documentation, https://developmentseed.github.io/async-geotiff/
28
+ Project-URL: Homepage, https://github.com/developmentseed/async-geotiff
29
+ Project-URL: Issues, https://github.com/developmentseed/async-geotiff/issues
30
+ Project-URL: Repository, https://github.com/developmentseed/async-geotiff
31
+ Provides-Extra: morecantile
32
+ Description-Content-Type: text/markdown
33
+
34
+ # async-geotiff
35
+
36
+ Fast, async GeoTIFF and [Cloud-Optimized GeoTIFF][cogeo] (COG) reader for Python, wrapping the Rust-based [Async-TIFF][async-tiff] library.
37
+
38
+ [async-tiff]: https://github.com/developmentseed/async-tiff
39
+ [cogeo]: https://cogeo.org/
40
+
41
+ ## Features
42
+
43
+ - Read-only support for GeoTIFF and COG formats.
44
+ - High-level, familiar, easy to use API.
45
+ - Performance-focused:
46
+ - Rust core ensures native performance.
47
+ - CPU-bound tasks like image decoding happen in a thread pool, without blocking the async executor.
48
+ - Buffer protocol integration for zero-copy data sharing between Rust and Python.
49
+ - Lightweight with no GDAL dependency.
50
+ - Integration with [obstore] for efficient data access on object stores.
51
+ - Full type hinting for all operations.
52
+ - Broad decompression support: Deflate, LZW, JPEG, JPEG2000, WebP, ZSTD.
53
+
54
+ **Anti-Features** (features explicitly not in scope):
55
+
56
+ - No pixel resampling.
57
+ - No warping/reprojection.
58
+
59
+ Resampling and warping bring significant additional complexity and are out of scope for this library.
60
+
61
+ [obstore]: https://developmentseed.org/obstore/latest/
62
+ [obspec]: https://developmentseed.org/obspec/latest/
63
+
64
+ ## Example
65
+
66
+ First create a "store", such as an [`S3Store`][S3Store], [`GCSStore`][GCSStore], [`AzureStore`][AzureStore], or [`LocalStore`][LocalStore] for reading data from AWS S3, Google Cloud, Azure Storage, or local files. Refer to [obstore] documentation for more information.
67
+
68
+ [S3Store]: https://developmentseed.org/obstore/latest/api/store/aws/#obstore.store.S3Store
69
+ [GCSStore]: https://developmentseed.org/obstore/latest/api/store/gcs/#obstore.store.GCSStore
70
+ [AzureStore]: https://developmentseed.org/obstore/latest/api/store/azure/#obstore.store.AzureStore
71
+ [LocalStore]: https://developmentseed.org/obstore/latest/api/store/local/#obstore.store.LocalStore
72
+
73
+ ```py
74
+ from obstore.store import S3Store
75
+
76
+ store = S3Store("sentinel-cogs", region="us-west-2", skip_signature=True)
77
+ path = "sentinel-s2-l2a-cogs/12/S/UF/2022/6/S2B_12SUF_20220609_0_L2A/TCI.tif"
78
+ ```
79
+
80
+ Then open a `GeoTIFF`:
81
+
82
+ ```py
83
+ from async_geotiff import GeoTIFF
84
+
85
+ geotiff = await GeoTIFF.open(path, store=store)
86
+ ```
87
+
88
+ On the `GeoTIFF` instance you have metadata about the image, such as its affine transform and Coordinate Reference System:
89
+
90
+ ```py
91
+ geotiff.transform
92
+ # Affine(10.0, 0.0, 300000.0,
93
+ # 0.0, -10.0, 4100040.0)
94
+
95
+ geotiff.crs
96
+ # <Projected CRS: EPSG:32612>
97
+ # Name: WGS 84 / UTM zone 12N
98
+ ```
99
+
100
+ For a COG, you can access the overviews, or reduced resolution versions, of the image:
101
+
102
+ ```py
103
+ # Overviews are ordered from finest to coarsest resolution
104
+ # In this case, access the second-coarsest resolution version of the image
105
+ overview = geotiff.overviews[-2]
106
+ ```
107
+
108
+ Then we can read data from the image. This loads a 512-pixel square from the
109
+ upper-left corner of the selected overview.
110
+
111
+ ```py
112
+ from async_geotiff import Window
113
+
114
+ window = Window(col_off=0, row_off=0, width=512, height=512)
115
+ array = await overview.read(window=window)
116
+ ```
117
+
118
+ This `Array` instance has `data`, `mask`, and some other metadata about the fetched array data.
119
+
120
+ Plot, using [`rasterio.plot.show`](https://rasterio.readthedocs.io/en/stable/api/rasterio.plot.html#rasterio.plot.show) (requires `matplotlib`):
121
+
122
+ ```py
123
+ import rasterio.plot
124
+
125
+ rasterio.plot.show(array.data)
126
+ ```
127
+
128
+ ![](assets/sentinel_2_plot.jpg)
@@ -0,0 +1,20 @@
1
+ async_geotiff/__init__.py,sha256=X8z0LzXJNz1mBcP0kd9e_gsWzHavHf0W9FXc3oKGPNs,435
2
+ async_geotiff/_array.py,sha256=fihbOeFIwJ2maHEiXlv8N00n-J6KcQibaToL74-rHAc,3874
3
+ async_geotiff/_crs.py,sha256=upyEGDiuHyWniTD--blzujYHlXBvfHLCSPzgekvO26Q,22105
4
+ async_geotiff/_fetch.py,sha256=cJvSxNFdiLMWFgtrx9FtP72iClXpR1sFPHsGwiSr66I,4434
5
+ async_geotiff/_geotiff.py,sha256=oH_RBFkyodmeOsZpyftGY7IBPJsUyq9DACDxSsa3U5I,12927
6
+ async_geotiff/_overview.py,sha256=tuht-cUN00usxwfnteJDbE6Y391jLZQmYJbWr61MiRg,3334
7
+ async_geotiff/_read.py,sha256=4mX1ZSHERXJiRsuh7U1m3XN5Nu5Eb159NFcI26jYqJI,5676
8
+ async_geotiff/_tile.py,sha256=Cob3xJusGzchH3_mB2Dg2E6nz_B8skcbQdNXCKURsuo,632
9
+ async_geotiff/_transform.py,sha256=5up_xUgBjyXVE-VlugBENoBrZd4vNlvjx7PGzmN1ugc,2501
10
+ async_geotiff/_version.py,sha256=WOBh553JMD6VV-k_R8km_U4yt5mzyrWhi4OeTSXNoJI,171
11
+ async_geotiff/_windows.py,sha256=0bcJ29kL8kaJoj14RnJMz2Eh_a9B9P4ARrZfC4ACWec,2438
12
+ async_geotiff/colormap.py,sha256=v3_lxOC_RYZojIqQy9NZVziS8YmBtjI9UCduf5n-w3Q,3300
13
+ async_geotiff/enums.py,sha256=j-_K1UtI0tBzZ945auvhWZdktO1bgZp7Nf-K9c208IQ,1493
14
+ async_geotiff/exceptions.py,sha256=rZfS6TFIQIzcj-GBNs_t1HsYNTg7aKvSjbrus1apau4,130
15
+ async_geotiff/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ async_geotiff/tms.py,sha256=vHbavoMk1NlZx7MAWf7iuqo4xWsOmKvGfa25ZBTrLCE,3916
17
+ async_geotiff-0.1.0b5.dist-info/licenses/LICENSE,sha256=VRb2Bx0c2u6mtWwU_cBiJx_5qrDwzkG3YMZfV0FQnhU,1073
18
+ async_geotiff-0.1.0b5.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
19
+ async_geotiff-0.1.0b5.dist-info/METADATA,sha256=oISmmY2cVvIAjxDFEtvoNarkBZx_vZL7Hapjz-rMPFk,4699
20
+ async_geotiff-0.1.0b5.dist-info/RECORD,,
@@ -1,53 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: async-geotiff
3
- Version: 0.1.0b3
4
- Summary: Async GeoTIFF reader for Python
5
- Keywords: geotiff,tiff,async,cog,raster,gis
6
- Author: Kyle Barron
7
- Author-email: Kyle Barron <kyle@developmentseed.org>
8
- License-Expression: MIT
9
- License-File: LICENSE
10
- Classifier: Development Status :: 3 - Alpha
11
- Classifier: Intended Audience :: Developers
12
- Classifier: License :: OSI Approved :: MIT License
13
- Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.11
15
- Classifier: Programming Language :: Python :: 3.12
16
- Classifier: Programming Language :: Python :: 3.13
17
- Classifier: Programming Language :: Python :: 3.14
18
- Classifier: Topic :: Scientific/Engineering :: GIS
19
- Classifier: Typing :: Typed
20
- Requires-Dist: affine>=2.4.0
21
- Requires-Dist: async-tiff>=0.4.0
22
- Requires-Dist: numpy>=2.0
23
- Requires-Dist: pyproj>=3.3.0
24
- Requires-Dist: morecantile>=7.0,<8.0 ; extra == 'morecantile'
25
- Requires-Python: >=3.11
26
- Project-URL: Changelog, https://github.com/developmentseed/async-geotiff/blob/main/CHANGELOG.md
27
- Project-URL: Documentation, https://developmentseed.github.io/async-geotiff/
28
- Project-URL: Homepage, https://github.com/developmentseed/async-geotiff
29
- Project-URL: Issues, https://github.com/developmentseed/async-geotiff/issues
30
- Project-URL: Repository, https://github.com/developmentseed/async-geotiff
31
- Provides-Extra: morecantile
32
- Description-Content-Type: text/markdown
33
-
34
- # async-geotiff
35
-
36
- Async GeoTIFF and [Cloud-Optimized GeoTIFF][cogeo] (COG) reader for Python, wrapping [`async-tiff`].
37
-
38
- [`async-tiff`]: https://github.com/developmentseed/async-tiff
39
- [cogeo]: https://cogeo.org/
40
-
41
- ## Project Goals:
42
-
43
- - Support only for GeoTIFF and Cloud-Optimized GeoTIFF (COG) formats
44
- - Support for reading only, no writing support
45
- - Full type hinting.
46
- - API similar to rasterio where possible.
47
- - We won't support the full rasterio API, but we'll try to when it's possible to implement rasterio APIs with straightforward maintenance requirements.
48
- - For methods where we do intentionally try to match with rasterio, the tests should match against rasterio.
49
- - Initially, we'll try to support a core set of GeoTIFF formats. Obscure GeoTIFF files may not be supported.
50
-
51
- ## References
52
-
53
- - aiocogeo: https://github.com/geospatial-jeff/aiocogeo
@@ -1,12 +0,0 @@
1
- async_geotiff/__init__.py,sha256=Z_g9Z04lgDNeIOI4Z3lXn74G_7MOntwcPgjWBYLIoUU,259
2
- async_geotiff/_crs.py,sha256=upyEGDiuHyWniTD--blzujYHlXBvfHLCSPzgekvO26Q,22105
3
- async_geotiff/_geotiff.py,sha256=hEC0hR5qTB0DGEe4Cvoaz_56D-zfZeT9UR4lmjJD77w,13123
4
- async_geotiff/_overview.py,sha256=dsdbKpix3aebjtibfJSgLUbqSAY92tlMMcg3fVLFlfY,2423
5
- async_geotiff/_version.py,sha256=WOBh553JMD6VV-k_R8km_U4yt5mzyrWhi4OeTSXNoJI,171
6
- async_geotiff/enums.py,sha256=j-_K1UtI0tBzZ945auvhWZdktO1bgZp7Nf-K9c208IQ,1493
7
- async_geotiff/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- async_geotiff/tms.py,sha256=55nXenfss_KX7I5bmcMwtTHZWzNYAwSqhfjqSQju7OI,3922
9
- async_geotiff-0.1.0b3.dist-info/licenses/LICENSE,sha256=VRb2Bx0c2u6mtWwU_cBiJx_5qrDwzkG3YMZfV0FQnhU,1073
10
- async_geotiff-0.1.0b3.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
11
- async_geotiff-0.1.0b3.dist-info/METADATA,sha256=8AIntKucPXRaoEp7iSW63TXjGdKzs4y6OS3zWiZy7zI,2259
12
- async_geotiff-0.1.0b3.dist-info/RECORD,,