pyogrio 0.10.0__cp313-cp313-manylinux_2_28_aarch64.whl → 0.11.0__cp313-cp313-manylinux_2_28_aarch64.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.

Potentially problematic release.


This version of pyogrio might be problematic. Click here for more details.

Files changed (49) hide show
  1. pyogrio/__init__.py +9 -9
  2. pyogrio/_compat.py +8 -0
  3. pyogrio/_err.cpython-313-aarch64-linux-gnu.so +0 -0
  4. pyogrio/_geometry.cpython-313-aarch64-linux-gnu.so +0 -0
  5. pyogrio/_io.cpython-313-aarch64-linux-gnu.so +0 -0
  6. pyogrio/_ogr.cpython-313-aarch64-linux-gnu.so +0 -0
  7. pyogrio/_version.py +3 -3
  8. pyogrio/_vsi.cpython-313-aarch64-linux-gnu.so +0 -0
  9. pyogrio/gdal_data/GDAL-targets-release.cmake +3 -3
  10. pyogrio/gdal_data/GDAL-targets.cmake +2 -2
  11. pyogrio/gdal_data/GDALConfigVersion.cmake +3 -3
  12. pyogrio/gdal_data/gdalinfo_output.schema.json +3 -3
  13. pyogrio/gdal_data/gdaltileindex.xsd +1 -17
  14. pyogrio/gdal_data/gdalvrt.xsd +48 -41
  15. pyogrio/gdal_data/nitf_spec.xml +1 -17
  16. pyogrio/gdal_data/nitf_spec.xsd +1 -17
  17. pyogrio/gdal_data/ogrvrt.xsd +1 -17
  18. pyogrio/gdal_data/osmconf.ini +3 -1
  19. pyogrio/gdal_data/pdfcomposition.xsd +1 -17
  20. pyogrio/gdal_data/template_tiles.mapml +28 -0
  21. pyogrio/gdal_data/vcpkg.spdx.json +32 -27
  22. pyogrio/gdal_data/vcpkg_abi_info.txt +27 -26
  23. pyogrio/gdal_data/vdv452.xml +1 -17
  24. pyogrio/gdal_data/vdv452.xsd +1 -17
  25. pyogrio/geopandas.py +91 -43
  26. pyogrio/proj_data/ITRF2014 +1 -1
  27. pyogrio/proj_data/ITRF2020 +91 -0
  28. pyogrio/proj_data/proj-config-version.cmake +3 -3
  29. pyogrio/proj_data/proj-config.cmake +1 -1
  30. pyogrio/proj_data/proj-targets.cmake +3 -3
  31. pyogrio/proj_data/proj.db +0 -0
  32. pyogrio/proj_data/proj.ini +11 -3
  33. pyogrio/proj_data/proj4-targets.cmake +3 -3
  34. pyogrio/proj_data/usage +7 -2
  35. pyogrio/proj_data/vcpkg.spdx.json +27 -22
  36. pyogrio/proj_data/vcpkg_abi_info.txt +15 -14
  37. pyogrio/tests/conftest.py +8 -0
  38. pyogrio/tests/test_arrow.py +3 -0
  39. pyogrio/tests/test_core.py +8 -4
  40. pyogrio/tests/test_geopandas_io.py +250 -42
  41. pyogrio/tests/test_path.py +10 -0
  42. pyogrio/tests/test_raw_io.py +6 -2
  43. pyogrio/util.py +15 -2
  44. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info}/METADATA +32 -37
  45. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info}/RECORD +202 -200
  46. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info}/WHEEL +1 -1
  47. pyogrio.libs/{libgdal-b0847c7b.so.35.3.9.1 → libgdal-4bc0d15f.so.36.3.10.3} +0 -0
  48. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info/licenses}/LICENSE +0 -0
  49. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info}/top_level.txt +0 -0
@@ -3,13 +3,13 @@
3
3
  "spdxVersion": "SPDX-2.2",
4
4
  "dataLicense": "CC0-1.0",
5
5
  "SPDXID": "SPDXRef-DOCUMENT",
6
- "documentNamespace": "https://spdx.org/spdxdocs/gdal-arm64-linux-dynamic-release-3.9.1-0ff3ca72-e08f-4de5-8de0-199bae98fcea",
7
- "name": "gdal:arm64-linux-dynamic-release@3.9.1 6f76a18b951c9423ac5345fb239a186015a2db4fddd35b77494e0a3f2d9beae7",
6
+ "documentNamespace": "https://spdx.org/spdxdocs/gdal-arm64-linux-dynamic-release-3.10.3-5f30c228-4170-4f60-9fdc-1e90eb684af4",
7
+ "name": "gdal:arm64-linux-dynamic-release@3.10.3 3eb6b4dfe008b3f2b27cfb4c380c0162b936b8107ffb226b8b1783c7dec9d134",
8
8
  "creationInfo": {
9
9
  "creators": [
10
- "Tool: vcpkg-2999-12-31-unknownhash"
10
+ "Tool: vcpkg-2025-04-16-f9b6c6917b23c1ccf16c1a9f015ebabf8f615045"
11
11
  ],
12
- "created": "2024-09-27T19:05:29Z"
12
+ "created": "2025-05-08T14:59:24Z"
13
13
  },
14
14
  "relationships": [
15
15
  {
@@ -111,14 +111,19 @@
111
111
  "spdxElementId": "SPDXRef-file-8",
112
112
  "relationshipType": "CONTAINED_BY",
113
113
  "relatedSpdxElement": "SPDXRef-port"
114
+ },
115
+ {
116
+ "spdxElementId": "SPDXRef-file-8",
117
+ "relationshipType": "DEPENDENCY_MANIFEST_OF",
118
+ "relatedSpdxElement": "SPDXRef-port"
114
119
  }
115
120
  ],
116
121
  "packages": [
117
122
  {
118
123
  "name": "gdal",
119
124
  "SPDXID": "SPDXRef-port",
120
- "versionInfo": "3.9.1",
121
- "downloadLocation": "git+https://github.com/Microsoft/vcpkg@65b271a32a93a9dfa4dfd3905fcd0b5388926f81",
125
+ "versionInfo": "3.10.3",
126
+ "downloadLocation": "git+https://github.com/Microsoft/vcpkg@5fbf8e1a6b0541dd68d3e256c0fd77ab6f99c163",
122
127
  "homepage": "https://gdal.org",
123
128
  "licenseConcluded": "NOASSERTION",
124
129
  "licenseDeclared": "NOASSERTION",
@@ -129,7 +134,7 @@
129
134
  {
130
135
  "name": "gdal:arm64-linux-dynamic-release",
131
136
  "SPDXID": "SPDXRef-binary",
132
- "versionInfo": "6f76a18b951c9423ac5345fb239a186015a2db4fddd35b77494e0a3f2d9beae7",
137
+ "versionInfo": "3eb6b4dfe008b3f2b27cfb4c380c0162b936b8107ffb226b8b1783c7dec9d134",
133
138
  "downloadLocation": "NONE",
134
139
  "licenseConcluded": "NOASSERTION",
135
140
  "licenseDeclared": "NOASSERTION",
@@ -137,71 +142,71 @@
137
142
  "comment": "This is a binary package built by vcpkg."
138
143
  },
139
144
  {
140
- "SPDXID": "SPDXRef-resource-1",
145
+ "SPDXID": "SPDXRef-resource-0",
141
146
  "name": "OSGeo/gdal",
142
- "downloadLocation": "git+https://github.com/OSGeo/gdal@v3.9.1",
147
+ "downloadLocation": "git+https://github.com/OSGeo/gdal@v3.10.3",
143
148
  "licenseConcluded": "NOASSERTION",
144
149
  "licenseDeclared": "NOASSERTION",
145
150
  "copyrightText": "NOASSERTION",
146
151
  "checksums": [
147
152
  {
148
153
  "algorithm": "SHA512",
149
- "checksumValue": "d9ab5d94dc870df17b010166d3ebbe897a1f673ba05bf31cd4bed437b6db303dd9e373ba5099d3a191ff3e48c995556fb5bcc77d03d975614df4aa20a2c2b085"
154
+ "checksumValue": "02dfa7d57c37b0f0c5994cae6632286a8671039b5aa9853360c08df8210d93227e42b0f22e74e167dc888761e8118b1b2dd2fe365bdc6c75daf7283c4be89b4c"
150
155
  }
151
156
  ]
152
157
  }
153
158
  ],
154
159
  "files": [
155
160
  {
156
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/usage",
161
+ "fileName": "./fix-gdal-target-interfaces.patch",
157
162
  "SPDXID": "SPDXRef-file-0",
158
163
  "checksums": [
159
164
  {
160
165
  "algorithm": "SHA256",
161
- "checksumValue": "c85584261e2011a94b86f04c3a28dd2e165c9e6b47677a9bee26a3d387bc05f2"
166
+ "checksumValue": "9dbe9d5e0dbc3a21370bb3560aa32811d10cc0b19e4b6833cd7258699d206215"
162
167
  }
163
168
  ],
164
169
  "licenseConcluded": "NOASSERTION",
165
170
  "copyrightText": "NOASSERTION"
166
171
  },
167
172
  {
168
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/find-link-libraries.patch",
173
+ "fileName": "./usage",
169
174
  "SPDXID": "SPDXRef-file-1",
170
175
  "checksums": [
171
176
  {
172
177
  "algorithm": "SHA256",
173
- "checksumValue": "043cbdd6298fce33c29d128241470b71990dc13eb63bfa44b3d82b17f5384468"
178
+ "checksumValue": "c85584261e2011a94b86f04c3a28dd2e165c9e6b47677a9bee26a3d387bc05f2"
174
179
  }
175
180
  ],
176
181
  "licenseConcluded": "NOASSERTION",
177
182
  "copyrightText": "NOASSERTION"
178
183
  },
179
184
  {
180
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/fix-gdal-target-interfaces.patch",
185
+ "fileName": "./vcpkg-cmake-wrapper.cmake",
181
186
  "SPDXID": "SPDXRef-file-2",
182
187
  "checksums": [
183
188
  {
184
189
  "algorithm": "SHA256",
185
- "checksumValue": "9dbe9d5e0dbc3a21370bb3560aa32811d10cc0b19e4b6833cd7258699d206215"
190
+ "checksumValue": "c507eaa077072e9877607fd5f70381eebf19900661e2e1fd099d84c4df1b8c24"
186
191
  }
187
192
  ],
188
193
  "licenseConcluded": "NOASSERTION",
189
194
  "copyrightText": "NOASSERTION"
190
195
  },
191
196
  {
192
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/target-is-valid.patch",
197
+ "fileName": "./target-is-valid.patch",
193
198
  "SPDXID": "SPDXRef-file-3",
194
199
  "checksums": [
195
200
  {
196
201
  "algorithm": "SHA256",
197
- "checksumValue": "6a369356c57860f97bd756d3604e7219774e2bfe5c74e5e0178496fad253900f"
202
+ "checksumValue": "d9404cebec6e0f7dc6ae92af733ebad86584eafc40742c916603a8338acfcd15"
198
203
  }
199
204
  ],
200
205
  "licenseConcluded": "NOASSERTION",
201
206
  "copyrightText": "NOASSERTION"
202
207
  },
203
208
  {
204
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/libkml.patch",
209
+ "fileName": "./libkml.patch",
205
210
  "SPDXID": "SPDXRef-file-4",
206
211
  "checksums": [
207
212
  {
@@ -213,48 +218,48 @@
213
218
  "copyrightText": "NOASSERTION"
214
219
  },
215
220
  {
216
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/vcpkg.json",
221
+ "fileName": "./portfile.cmake",
217
222
  "SPDXID": "SPDXRef-file-5",
218
223
  "checksums": [
219
224
  {
220
225
  "algorithm": "SHA256",
221
- "checksumValue": "71bb644d1501bdc16fbe5e88a45a27c478bee667cbace588c569de28778c89ff"
226
+ "checksumValue": "cad1f2ba6b48b6df0a2f4237f551d1e42061577c04e77eeafef1cbde7b7a8d5a"
222
227
  }
223
228
  ],
224
229
  "licenseConcluded": "NOASSERTION",
225
230
  "copyrightText": "NOASSERTION"
226
231
  },
227
232
  {
228
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/vcpkg-cmake-wrapper.cmake",
233
+ "fileName": "./find-link-libraries.patch",
229
234
  "SPDXID": "SPDXRef-file-6",
230
235
  "checksums": [
231
236
  {
232
237
  "algorithm": "SHA256",
233
- "checksumValue": "c507eaa077072e9877607fd5f70381eebf19900661e2e1fd099d84c4df1b8c24"
238
+ "checksumValue": "043cbdd6298fce33c29d128241470b71990dc13eb63bfa44b3d82b17f5384468"
234
239
  }
235
240
  ],
236
241
  "licenseConcluded": "NOASSERTION",
237
242
  "copyrightText": "NOASSERTION"
238
243
  },
239
244
  {
240
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/cmake-project-include.cmake",
245
+ "fileName": "./cmake-project-include.cmake",
241
246
  "SPDXID": "SPDXRef-file-7",
242
247
  "checksums": [
243
248
  {
244
249
  "algorithm": "SHA256",
245
- "checksumValue": "60c0f79155c78ec0ec4ccdc77e00f4613ae4630c6697f51f884bf8f979a48593"
250
+ "checksumValue": "196dcc1fc79ab94bae08c6ed5cb169eaaf208ddb656931579128bfd81a7e3582"
246
251
  }
247
252
  ],
248
253
  "licenseConcluded": "NOASSERTION",
249
254
  "copyrightText": "NOASSERTION"
250
255
  },
251
256
  {
252
- "fileName": ".//opt/vcpkg/buildtrees/versioning_/versions/gdal/65b271a32a93a9dfa4dfd3905fcd0b5388926f81/portfile.cmake",
257
+ "fileName": "./vcpkg.json",
253
258
  "SPDXID": "SPDXRef-file-8",
254
259
  "checksums": [
255
260
  {
256
261
  "algorithm": "SHA256",
257
- "checksumValue": "92a0c437215b5fed404a2deb00ade3a8cfb4da00c518af38525a3194a7d89c1a"
262
+ "checksumValue": "f72051f0ae2778e0a0ccf7953d6eff004ef88af304dc7ca173c773275ab99d3a"
258
263
  }
259
264
  ],
260
265
  "licenseConcluded": "NOASSERTION",
@@ -1,41 +1,42 @@
1
1
  cmake 0
2
- cmake-project-include.cmake 60c0f79155c78ec0ec4ccdc77e00f4613ae4630c6697f51f884bf8f979a48593
3
- curl cb695a5d1939ee33bf9626ce32269b0bd325a12e65a585a8e8f220190aa403f1
4
- expat 4c78265f4298c31ff2a55a28b1b5f7e3c761d5627453985a0c93fcc7f84c4054
5
- features core;curl;expat;geos;iconv;jpeg;lerc;png;qhull;recommended-features;sqlite3
2
+ cmake-project-include.cmake 196dcc1fc79ab94bae08c6ed5cb169eaaf208ddb656931579128bfd81a7e3582
3
+ curl cd91820052c5cabfc1071ef2e315d5ffb8df212645994cfb2e46e60d7fd331c9
4
+ expat 7b26b31281a392858a57d15f097a3b1bb7b558def51dd3ed19785f520f635e90
5
+ features core;curl;expat;geos;iconv;jpeg;lerc;openssl;png;qhull;recommended-features;sqlite3
6
6
  find-link-libraries.patch 043cbdd6298fce33c29d128241470b71990dc13eb63bfa44b3d82b17f5384468
7
7
  fix-gdal-target-interfaces.patch 9dbe9d5e0dbc3a21370bb3560aa32811d10cc0b19e4b6833cd7258699d206215
8
- geos 90ecd11dfa9791ad093b88e37ef231aee69a63e7a2a760309f5df17bbf0d77aa
9
- json-c 36baf58ad1286798dc933edfec5be4cc41f22ccf5890626f2e126b7a5edf8c45
10
- lerc 3ff9859b889e95ec9d951fb80eaab21191ddf0bd31269f6d97638588c8ce4f5a
11
- libgeotiff f3d4bdd7e469b9ba05921b70f7c7cc3e822bcf49899b9a1aa54c01e8120796f3
12
- libiconv e0a5bfe244746c5c5a5398c811bbc2abb5be129b3d2982317c122379da47c460
13
- libjpeg-turbo 01fbcfceb2bbec6dfa5cd5b0f8cb57c06ebc9445a30a1ce81b2fbe16ac485fce
8
+ geos d1cce92db6d99a86ae7c55d3af9adb669a16399218f82aed68119c410ddc3899
9
+ json-c 0a010b4e22af7d23ddafd358c10d5d8a4534ec3885ff46134d7ca387c10c2c89
10
+ lerc 2be4ea22dbe41c4b0fb231f177cec5adadab34e60145bb49c20f8881ac94619b
11
+ libgeotiff eb4a1e71de0d3d44ee5892de199ae99461c14669e4eb216892dea47fe20f5c91
12
+ libiconv 394fe272787187536caa290a0a2de83f442db358ea488952074ea592e6b38f0e
13
+ libjpeg-turbo d905cf099ff113dbf9ee2ecdda03db50ddc4f1ccde57fd7e9100ba213f1bb297
14
14
  libkml.patch fe888df8a7c9e468cdd87640c025f48f165d5264af1fa20604bd60859e6f000f
15
- libpng c9a7ce050166374c28a45265eaa750b45c22a3a060818f74bddf8abf2144503d
16
- pkgconf e0388b14372bfa67732dcf8d1f16ed18431cc59afb4ccd84dd36b8db5a997a54
17
- portfile.cmake 92a0c437215b5fed404a2deb00ade3a8cfb4da00c518af38525a3194a7d89c1a
18
- ports.cmake 3581688c16865b2026d28240d7c6257b848475ffc9fe81b3f3d304973253cf5e
15
+ libpng 3a9983b61ac1faa8981fa431b716d77aa7017861bcec9c3253622fb275378343
16
+ openssl e64577ed782034ab5add0862085884da78622c2cd63e4a5a323256f16e7fefd0
17
+ pkgconf 2028fd61a4d3a7961e24ce7a09cff99977570bbf4edb9431bfcc12a3dd0a0b25
18
+ portfile.cmake cad1f2ba6b48b6df0a2f4237f551d1e42061577c04e77eeafef1cbde7b7a8d5a
19
+ ports.cmake a9f8f745f9f4d225039f9810e79670f10f38c7455222865616ce430a06f75d1f
19
20
  post_build_checks 2
20
- proj b410f095d31bb162f9fa8ddd0c046646e92c848ed8fb3f7d76b01e1e8bfec8bc
21
- qhull 8a0f552aa4a0daee5bfb027d80a1ec42f693c8ff59900e2bb043e9fb2415dbfb
22
- sqlite3 38ed2e302afc947869e2e6a9feadf92f4118676f6e9ff3b6813376d69ea02696
23
- target-is-valid.patch 6a369356c57860f97bd756d3604e7219774e2bfe5c74e5e0178496fad253900f
24
- tiff 1e5bca825c278accb4a2ec67a556f29e9e54e51ee0eca8f6cb9fa90c59841a99
21
+ proj 348b35b1e6ddacb995d29f89e0c22ab0edbbcc90294221210a95e57198ae2879
22
+ qhull e88b6c5ca6d91652eabc7d56d7e3a55e8d1d9e705f80b10533d902d5758ddbd0
23
+ sqlite3 992583566108959150284e905c28253a6f8ceb2966469b5f1671a6290aa5bbef
24
+ target-is-valid.patch d9404cebec6e0f7dc6ae92af733ebad86584eafc40742c916603a8338acfcd15
25
+ tiff 523d46f94adc7c2ae348e5df2d96c9ea9302074cf92f4921a773596d55ce202c
25
26
  triplet arm64-linux-dynamic-release
26
- triplet_abi a2978ef94e01dd995e28fd3fc9d73a99d96cda95c172e0f1d199230f0e1bcdce-8f20f723a25e9787363b95fcfd14b63d82b71ac3e295a73c97d09e681decb90c-beb576496a66e76502336c0e436ebdaabe8d0f8f
27
+ triplet_abi a2978ef94e01dd995e28fd3fc9d73a99d96cda95c172e0f1d199230f0e1bcdce-7300d6fc76582335b0d9fd6dc6a00f69d7ba728b9d6444ad2a9d42f054e1d991-74c8e394d0e73248df1e0668d914ff6b718e7a09
27
28
  usage c85584261e2011a94b86f04c3a28dd2e165c9e6b47677a9bee26a3d387bc05f2
28
- vcpkg-cmake 7cb9711415b0a62be2f6297fb548a28d18a5fe039a9101d49c2b6a6283540d2a
29
- vcpkg-cmake-config 0df4e1080d226918b032f77e7ee0fa68f7b71a3584576e68015d5289b3e229d0
29
+ vcpkg-cmake a79c21e39eef27f214b8b5336b87655ab057fc471392d4b93a5d289d903644f1
30
+ vcpkg-cmake-config 74889bcdb08699240b376f5c1546060ab9b2e21a3c7d5818beabe6166fd915ab
30
31
  vcpkg-cmake-wrapper.cmake c507eaa077072e9877607fd5f70381eebf19900661e2e1fd099d84c4df1b8c24
31
- vcpkg-pkgconfig-get-modules 048f2b1d59c716a9b954301f82708b72c0bd9e065e3e86da5576118465625676
32
- vcpkg.json 71bb644d1501bdc16fbe5e88a45a27c478bee667cbace588c569de28778c89ff
32
+ vcpkg-pkgconfig-get-modules f2347f9727d38a70c0eded86bc8d73532313ca9c9cf09fc97120fb6000768800
33
+ vcpkg.json f72051f0ae2778e0a0ccf7953d6eff004ef88af304dc7ca173c773275ab99d3a
33
34
  vcpkg_check_features 943b217e0968d64cf2cb9c272608e6a0b497377e792034f819809a79e1502c2b
34
- vcpkg_copy_pdbs d57e4f196c82dc562a9968c6155073094513c31e2de475694143d3aa47954b1c
35
+ vcpkg_copy_pdbs d15c2f2822d93ecb9023af44803328e491c5374136e0813600289582a72d196d
35
36
  vcpkg_copy_tools 3d45ff761bddbabe8923b52330168dc3abd295fa469d3f2e47cb14dce85332d5
36
37
  vcpkg_fixup_pkgconfig 1a15f6c6d8e2b244d83a7514a0412d339127d2217d1df60ad1388b546c85f777
37
38
  vcpkg_from_git 96ed81968f76354c00096dd8cd4e63c6a235fa969334a11ab18d11c0c512ff58
38
39
  vcpkg_from_github b743742296a114ea1b18ae99672e02f142c4eb2bef7f57d36c038bedbfb0502f
39
40
  vcpkg_install_copyright ba6c169ab4e59fa05682e530cdeb883767de22c8391f023d4e6844a7ec5dd3d2
40
41
  vcpkg_replace_string b450deb79207478b37119743e00808ebc42de0628e7b98c14ab24728bd5c78b8
41
- zlib d87f94c9f5a7cb9f00ad27aa903b58980ea3923eb648965bace39447be7e0f7e
42
+ zlib 16ea8140d337de60ef5eafe3218b277482156b6386bcf28dfda3285729120911
@@ -10,23 +10,7 @@
10
10
  **********************************************************************
11
11
  * Copyright (c) 2015, Even Rouault
12
12
  *
13
- * Permission is hereby granted, free of charge, to any person obtaining a
14
- * copy of this software and associated documentation files (the "Software"),
15
- * to deal in the Software without restriction, including without limitation
16
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
17
- * and/or sell copies of the Software, and to permit persons to whom the
18
- * Software is furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included
21
- * in all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29
- * DEALINGS IN THE SOFTWARE.
13
+ * SPDX-License-Identifier: MIT
30
14
  ****************************************************************************/
31
15
  -->
32
16
  <Layers>
@@ -10,23 +10,7 @@
10
10
  **********************************************************************
11
11
  * Copyright (c) 2015, Even Rouault
12
12
  *
13
- * Permission is hereby granted, free of charge, to any person obtaining a
14
- * copy of this software and associated documentation files (the "Software"),
15
- * to deal in the Software without restriction, including without limitation
16
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
17
- * and/or sell copies of the Software, and to permit persons to whom the
18
- * Software is furnished to do so, subject to the following conditions:
19
- *
20
- * The above copyright notice and this permission notice shall be included
21
- * in all copies or substantial portions of the Software.
22
- *
23
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29
- * DEALINGS IN THE SOFTWARE.
13
+ * SPDX-License-Identifier: MIT
30
14
  ****************************************************************************/
31
15
  -->
32
16
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
pyogrio/geopandas.py CHANGED
@@ -5,7 +5,14 @@ import warnings
5
5
 
6
6
  import numpy as np
7
7
 
8
- from pyogrio._compat import HAS_GEOPANDAS, PANDAS_GE_15, PANDAS_GE_20, PANDAS_GE_22
8
+ from pyogrio._compat import (
9
+ HAS_GEOPANDAS,
10
+ PANDAS_GE_15,
11
+ PANDAS_GE_20,
12
+ PANDAS_GE_22,
13
+ PANDAS_GE_30,
14
+ PYARROW_GE_19,
15
+ )
9
16
  from pyogrio.errors import DataSourceError
10
17
  from pyogrio.raw import (
11
18
  DRIVERS_NO_MIXED_DIMENSIONS,
@@ -52,13 +59,13 @@ def _try_parse_datetime(ser):
52
59
  except Exception:
53
60
  res = ser
54
61
  # if object dtype, try parse as utc instead
55
- if res.dtype == "object":
62
+ if res.dtype in ("object", "string"):
56
63
  try:
57
64
  res = pd.to_datetime(ser, utc=True, **datetime_kwargs)
58
65
  except Exception:
59
66
  pass
60
67
 
61
- if res.dtype != "object":
68
+ if res.dtype.kind == "M": # any datetime64
62
69
  # GDAL only supports ms precision, convert outputs to match.
63
70
  # Pandas 2.0 supports datetime[ms] directly, prior versions only support [ns],
64
71
  # Instead, round the values to [ms] precision.
@@ -209,6 +216,9 @@ def read_dataframe(
209
216
  warning will be raised.
210
217
  - **ignore**: invalid WKB geometries will be returned as ``None``
211
218
  without a warning.
219
+ - **fix**: an effort is made to fix invalid input geometries (currently
220
+ just unclosed rings). If this is not possible, they are returned as
221
+ ``None`` without a warning. Requires GEOS >= 3.11 and shapely >= 2.1.
212
222
 
213
223
  arrow_to_pandas_kwargs : dict, optional (default: None)
214
224
  When `use_arrow` is True, these kwargs will be passed to the `to_pandas`_
@@ -282,14 +292,42 @@ def read_dataframe(
282
292
  )
283
293
 
284
294
  if use_arrow:
295
+ import pyarrow as pa
296
+
285
297
  meta, table = result
286
298
 
287
299
  # split_blocks and self_destruct decrease memory usage, but have as side effect
288
300
  # that accessing table afterwards causes crash, so del table to avoid.
289
301
  kwargs = {"self_destruct": True}
302
+ if PANDAS_GE_30:
303
+ # starting with pyarrow 19.0, pyarrow will correctly handle this themselves,
304
+ # so only use types_mapper as workaround for older versions
305
+ if not PYARROW_GE_19:
306
+ kwargs["types_mapper"] = {
307
+ pa.string(): pd.StringDtype(na_value=np.nan),
308
+ pa.large_string(): pd.StringDtype(na_value=np.nan),
309
+ pa.json_(): pd.StringDtype(na_value=np.nan),
310
+ }.get
311
+ # TODO enable the below block when upstream issue to accept extension types
312
+ # is fixed
313
+ # else:
314
+ # # for newer pyarrow, still include mapping for json
315
+ # # GDAL 3.11 started to emit this extension type, but pyarrow does not
316
+ # # yet support it properly in the conversion to pandas
317
+ # kwargs["types_mapper"] = {
318
+ # pa.json_(): pd.StringDtype(na_value=np.nan),
319
+ # }.get
290
320
  if arrow_to_pandas_kwargs is not None:
291
321
  kwargs.update(arrow_to_pandas_kwargs)
292
- df = table.to_pandas(**kwargs)
322
+
323
+ try:
324
+ df = table.to_pandas(**kwargs)
325
+ except UnicodeDecodeError as ex:
326
+ # Arrow does not support reading data in a non-UTF-8 encoding
327
+ raise DataSourceError(
328
+ "The file being read is not encoded in UTF-8; please use_arrow=False"
329
+ ) from ex
330
+
293
331
  del table
294
332
 
295
333
  if fid_as_index:
@@ -333,7 +371,6 @@ def read_dataframe(
333
371
  return gp.GeoDataFrame(df, geometry=geometry, crs=meta["crs"])
334
372
 
335
373
 
336
- # TODO: handle index properly
337
374
  def write_dataframe(
338
375
  df,
339
376
  path,
@@ -469,47 +506,9 @@ def write_dataframe(
469
506
  if len(geometry_columns) > 0:
470
507
  geometry_column = geometry_columns[0]
471
508
  geometry = df[geometry_column]
472
- fields = [c for c in df.columns if not c == geometry_column]
473
509
  else:
474
510
  geometry_column = None
475
511
  geometry = None
476
- fields = list(df.columns)
477
-
478
- # TODO: may need to fill in pd.NA, etc
479
- field_data = []
480
- field_mask = []
481
- # dict[str, np.array(int)] special case for dt-tz fields
482
- gdal_tz_offsets = {}
483
- for name in fields:
484
- col = df[name]
485
- if isinstance(col.dtype, pd.DatetimeTZDtype):
486
- # Deal with datetimes with timezones by passing down timezone separately
487
- # pass down naive datetime
488
- naive = col.dt.tz_localize(None)
489
- values = naive.values
490
- # compute offset relative to UTC explicitly
491
- tz_offset = naive - col.dt.tz_convert("UTC").dt.tz_localize(None)
492
- # Convert to GDAL timezone offset representation.
493
- # GMT is represented as 100 and offsets are represented by adding /
494
- # subtracting 1 for every 15 minutes different from GMT.
495
- # https://gdal.org/development/rfc/rfc56_millisecond_precision.html#core-changes
496
- # Convert each row offset to a signed multiple of 15m and add to GMT value
497
- gdal_offset_representation = tz_offset // pd.Timedelta("15m") + 100
498
- gdal_tz_offsets[name] = gdal_offset_representation.values
499
- else:
500
- values = col.values
501
- if isinstance(values, pd.api.extensions.ExtensionArray):
502
- from pandas.arrays import BooleanArray, FloatingArray, IntegerArray
503
-
504
- if isinstance(values, (IntegerArray, FloatingArray, BooleanArray)):
505
- field_data.append(values._data)
506
- field_mask.append(values._mask)
507
- else:
508
- field_data.append(np.asarray(values))
509
- field_mask.append(np.asarray(values.isna()))
510
- else:
511
- field_data.append(values)
512
- field_mask.append(None)
513
512
 
514
513
  # Determine geometry_type and/or promote_to_multi
515
514
  if geometry_column is not None:
@@ -622,6 +621,15 @@ def write_dataframe(
622
621
 
623
622
  table = pa.Table.from_pandas(df, preserve_index=False)
624
623
 
624
+ # Null arrow columns are not supported by GDAL, so convert to string
625
+ for field_index, field in enumerate(table.schema):
626
+ if field.type == pa.null():
627
+ table = table.set_column(
628
+ field_index,
629
+ field.with_type(pa.string()),
630
+ table[field_index].cast(pa.string()),
631
+ )
632
+
625
633
  if geometry_column is not None:
626
634
  # ensure that the geometry column is binary (for all-null geometries,
627
635
  # this could be a wrong type)
@@ -658,6 +666,46 @@ def write_dataframe(
658
666
  # If there is geometry data, prepare it to be written
659
667
  if geometry_column is not None:
660
668
  geometry = to_wkb(geometry.values)
669
+ fields = [c for c in df.columns if not c == geometry_column]
670
+ else:
671
+ fields = list(df.columns)
672
+
673
+ # Convert data to numpy arrays for writing
674
+ # TODO: may need to fill in pd.NA, etc
675
+ field_data = []
676
+ field_mask = []
677
+ # dict[str, np.array(int)] special case for dt-tz fields
678
+ gdal_tz_offsets = {}
679
+ for name in fields:
680
+ col = df[name]
681
+ if isinstance(col.dtype, pd.DatetimeTZDtype):
682
+ # Deal with datetimes with timezones by passing down timezone separately
683
+ # pass down naive datetime
684
+ naive = col.dt.tz_localize(None)
685
+ values = naive.values
686
+ # compute offset relative to UTC explicitly
687
+ tz_offset = naive - col.dt.tz_convert("UTC").dt.tz_localize(None)
688
+ # Convert to GDAL timezone offset representation.
689
+ # GMT is represented as 100 and offsets are represented by adding /
690
+ # subtracting 1 for every 15 minutes different from GMT.
691
+ # https://gdal.org/development/rfc/rfc56_millisecond_precision.html#core-changes
692
+ # Convert each row offset to a signed multiple of 15m and add to GMT value
693
+ gdal_offset_representation = tz_offset // pd.Timedelta("15m") + 100
694
+ gdal_tz_offsets[name] = gdal_offset_representation.values
695
+ else:
696
+ values = col.values
697
+ if isinstance(values, pd.api.extensions.ExtensionArray):
698
+ from pandas.arrays import BooleanArray, FloatingArray, IntegerArray
699
+
700
+ if isinstance(values, (IntegerArray, FloatingArray, BooleanArray)):
701
+ field_data.append(values._data)
702
+ field_mask.append(values._mask)
703
+ else:
704
+ field_data.append(np.asarray(values))
705
+ field_mask.append(np.asarray(values.isna()))
706
+ else:
707
+ field_data.append(values)
708
+ field_mask.append(None)
661
709
 
662
710
  write(
663
711
  path,
@@ -7,7 +7,7 @@
7
7
 
8
8
  <ITRF2000> +proj=helmert +x=0.0007 +y=0.0012 +z=-0.0261 +s=0.00212 +dx=0.0001 +dy=0.0001 +dz=-0.0019 +ds=0.00011 +t_epoch=2010.0 +convention=position_vector
9
9
 
10
- <ITRF97> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +d=0.0038 +rz=0.00026 +dx0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
10
+ <ITRF97> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
11
11
 
12
12
  <ITRF96> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
13
13
 
@@ -0,0 +1,91 @@
1
+ # ITRF2020 params are in mm/year, PJ_helmert uses m/year
2
+
3
+ # Generated with generate_itrf2020.py from EPSG database
4
+
5
+ <ITRF2014> +proj=helmert +x=-0.0014 +y=-0.0009 +z=0.0014 +s=-0.00042 +dy=-0.0001 +dz=0.0002 +t_epoch=2015 +convention=position_vector
6
+
7
+ <ITRF2008> +proj=helmert +x=0.0002 +y=0.001 +z=0.0033 +s=-0.00029 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector
8
+
9
+ <ITRF2005> +proj=helmert +x=0.0027 +y=0.0001 +z=-0.0014 +s=0.00065 +dx=0.0003 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector
10
+
11
+ <ITRF2000> +proj=helmert +x=-0.0002 +y=0.0008 +z=-0.0342 +s=0.00225 +dx=0.0001 +dz=-0.0017 +ds=0.00011 +t_epoch=2015 +convention=position_vector
12
+
13
+ <ITRF97> +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
14
+
15
+ <ITRF96> +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
16
+
17
+ <ITRF94> +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
18
+
19
+ <ITRF93> +proj=helmert +x=-0.0658 +y=0.0019 +z=-0.0713 +rx=-0.00336 +ry=-0.00433 +rz=0.00075 +s=0.00447 +dx=-0.0028 +dy=-0.0002 +dz=-0.0023 +drx=-0.00011 +dry=-0.00019 +drz=7e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
20
+
21
+ <ITRF92> +proj=helmert +x=0.0145 +y=-0.0019 +z=-0.0859 +rz=0.00036 +s=0.00327 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
22
+
23
+ <ITRF91> +proj=helmert +x=0.0265 +y=0.0121 +z=-0.0919 +rz=0.00036 +s=0.00467 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
24
+
25
+ <ITRF90> +proj=helmert +x=0.0245 +y=0.0081 +z=-0.1079 +rz=0.00036 +s=0.00497 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
26
+
27
+ <ITRF89> +proj=helmert +x=0.0295 +y=0.0321 +z=-0.1459 +rz=0.00036 +s=0.00837 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
28
+
29
+ <ITRF88> +proj=helmert +x=0.0245 +y=-0.0039 +z=-0.1699 +rx=0.0001 +rz=0.00036 +s=0.01147 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
30
+
31
+ # ITRF2020 Plate Motion Model parameters
32
+ #
33
+ # As described in https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2023GL106373
34
+ # (and also in https://itrf.ign.fr/docs/solutions/itrf2020/ITRF2020-PMM.dat, but with
35
+ # different units)
36
+
37
+ <AMUR> +proj=helmert +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector
38
+
39
+ <ANTA> +proj=helmert +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector
40
+
41
+ <ARAB> +proj=helmert +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector
42
+
43
+ <AUST> +proj=helmert +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector
44
+
45
+ <CARB> +proj=helmert +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector
46
+
47
+ <EURA> +proj=helmert +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector
48
+
49
+ <INDI> +proj=helmert +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector
50
+
51
+ <NAZC> +proj=helmert +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector
52
+
53
+ <NOAM> +proj=helmert +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector
54
+
55
+ <NUBI> +proj=helmert +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector
56
+
57
+ <PCFC> +proj=helmert +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector
58
+
59
+ <SOAM> +proj=helmert +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector
60
+
61
+ <SOMA> +proj=helmert +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector
62
+
63
+ # Plate names suffixed by _T (for Translation) that includes the translation
64
+ # rates +dx=0.00037 +dy=0.00035 +dz=0.00074 given by Table 2 of the ITRF2020 plate motion model
65
+ # paper
66
+
67
+ <AMUR_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector
68
+
69
+ <ANTA_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector
70
+
71
+ <ARAB_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector
72
+
73
+ <AUST_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector
74
+
75
+ <CARB_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector
76
+
77
+ <EURA_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector
78
+
79
+ <INDI_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector
80
+
81
+ <NAZC_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector
82
+
83
+ <NOAM_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector
84
+
85
+ <NUBI_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector
86
+
87
+ <PCFC_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector
88
+
89
+ <SOAM_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector
90
+
91
+ <SOMA_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector
@@ -1,9 +1,9 @@
1
1
  # Version checking for PROJ
2
2
 
3
- set (PACKAGE_VERSION "9.4.1")
3
+ set (PACKAGE_VERSION "9.6.0")
4
4
  set (PACKAGE_VERSION_MAJOR "9")
5
- set (PACKAGE_VERSION_MINOR "4")
6
- set (PACKAGE_VERSION_PATCH "1")
5
+ set (PACKAGE_VERSION_MINOR "6")
6
+ set (PACKAGE_VERSION_PATCH "0")
7
7
 
8
8
  # These variable definitions parallel those in PROJ's
9
9
  # cmake/CMakeLists.txt.
@@ -27,7 +27,7 @@ if("TRUE")
27
27
  endif()
28
28
  cmake_policy(POP)
29
29
 
30
- find_dependency(SQLite3)
30
+ find_dependency(unofficial-sqlite3)
31
31
 
32
32
  if(DEFINED PROJ_CONFIG_FIND_TIFF_DEP)
33
33
  find_dependency(TIFF)