pyogrio 0.10.0__cp311-cp311-win_amd64.whl → 0.11.0__cp311-cp311-win_amd64.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 (87) hide show
  1. pyogrio/__init__.py +13 -14
  2. pyogrio/_compat.py +8 -0
  3. pyogrio/_err.c +9881 -4061
  4. pyogrio/_err.cp311-win_amd64.pyd +0 -0
  5. pyogrio/_geometry.c +372 -204
  6. pyogrio/_geometry.cp311-win_amd64.pyd +0 -0
  7. pyogrio/_io.c +7119 -6034
  8. pyogrio/_io.cp311-win_amd64.pyd +0 -0
  9. pyogrio/_ogr.c +1317 -1232
  10. pyogrio/_ogr.cp311-win_amd64.pyd +0 -0
  11. pyogrio/_version.py +3 -3
  12. pyogrio/_vsi.c +417 -424
  13. pyogrio/_vsi.cp311-win_amd64.pyd +0 -0
  14. pyogrio/gdal_data/GDAL-targets.cmake +2 -2
  15. pyogrio/gdal_data/GDALConfigVersion.cmake +3 -3
  16. pyogrio/gdal_data/gdalinfo_output.schema.json +3 -3
  17. pyogrio/gdal_data/gdaltileindex.xsd +1 -17
  18. pyogrio/gdal_data/gdalvrt.xsd +48 -41
  19. pyogrio/gdal_data/nitf_spec.xml +1 -17
  20. pyogrio/gdal_data/nitf_spec.xsd +1 -17
  21. pyogrio/gdal_data/ogrvrt.xsd +1 -17
  22. pyogrio/gdal_data/osmconf.ini +3 -1
  23. pyogrio/gdal_data/pdfcomposition.xsd +1 -17
  24. pyogrio/gdal_data/template_tiles.mapml +28 -0
  25. pyogrio/gdal_data/vcpkg.spdx.json +28 -23
  26. pyogrio/gdal_data/vcpkg_abi_info.txt +29 -28
  27. pyogrio/gdal_data/vdv452.xml +1 -17
  28. pyogrio/gdal_data/vdv452.xsd +1 -17
  29. pyogrio/geopandas.py +91 -43
  30. pyogrio/proj_data/ITRF2014 +1 -1
  31. pyogrio/proj_data/ITRF2020 +91 -0
  32. pyogrio/proj_data/proj-config-version.cmake +3 -3
  33. pyogrio/proj_data/proj-config.cmake +1 -1
  34. pyogrio/proj_data/proj-targets-release.cmake +3 -2
  35. pyogrio/proj_data/proj-targets.cmake +2 -2
  36. pyogrio/proj_data/proj.db +0 -0
  37. pyogrio/proj_data/proj.ini +11 -3
  38. pyogrio/proj_data/proj4-targets-release.cmake +3 -2
  39. pyogrio/proj_data/proj4-targets.cmake +2 -2
  40. pyogrio/proj_data/usage +7 -2
  41. pyogrio/proj_data/vcpkg.spdx.json +26 -21
  42. pyogrio/proj_data/vcpkg_abi_info.txt +17 -16
  43. pyogrio/tests/conftest.py +8 -0
  44. pyogrio/tests/test_arrow.py +3 -0
  45. pyogrio/tests/test_core.py +8 -4
  46. pyogrio/tests/test_geopandas_io.py +250 -42
  47. pyogrio/tests/test_path.py +10 -0
  48. pyogrio/tests/test_raw_io.py +6 -2
  49. pyogrio/util.py +15 -2
  50. pyogrio-0.11.0.dist-info/DELVEWHEEL +2 -0
  51. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info}/METADATA +32 -37
  52. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info}/RECORD +75 -71
  53. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info}/WHEEL +1 -1
  54. pyogrio.libs/{Lerc-089e3fef3df84b17326dcddbf1dedaa4.dll → Lerc-0a4c85fb364eca6153da109568898e6c.dll} +0 -0
  55. pyogrio.libs/{gdal-debee5933f0da7bb90b4bcd009023377.dll → gdal-34e3e080255b205ef706390e097fa4dc.dll} +0 -0
  56. pyogrio.libs/geos-d8f20037634583c2efcd6ea1f4153169.dll +0 -0
  57. pyogrio.libs/geos_c-046e8885887192fced9516bda554471d.dll +0 -0
  58. pyogrio.libs/{geotiff-c8fe8a095520a4ea4e465d27e06add3a.dll → geotiff-1f2f76a5d30685a8e0497d9dbf8a79cf.dll} +0 -0
  59. pyogrio.libs/{iconv-2-27352d156a5467ca5383d3951093ea5a.dll → iconv-2-4b71ebbdf6834234e0c64cb2439b77cf.dll} +0 -0
  60. pyogrio.libs/{jpeg62-e56b6f95a95af498f4623b8da4cebd46.dll → jpeg62-bf2a75b1f2695748cd86238ddb19c65b.dll} +0 -0
  61. pyogrio.libs/json-c-4bc6781090e73c9b22d8dc057618a277.dll +0 -0
  62. pyogrio.libs/libcrypto-3-x64-c8f1692ed45cf55faecce2c448056b2e.dll +0 -0
  63. pyogrio.libs/libcurl-f3604410cd467a44d927794ebdce81b8.dll +0 -0
  64. pyogrio.libs/libexpat-385074fd54deb4b640baafa42cbb3146.dll +0 -0
  65. pyogrio.libs/liblzma-8968f0bfd463b7fe612b20d07adc3c1e.dll +0 -0
  66. pyogrio.libs/libpng16-44105208fe941d03e9f0c17bdbb952f7.dll +0 -0
  67. pyogrio.libs/libssl-3-x64-58c364315f431ab1f0e48b311b8cf105.dll +0 -0
  68. pyogrio.libs/msvcp140-99aa35e2033bb8d388bc35c8a68b77e3.dll +0 -0
  69. pyogrio.libs/proj_9-ee59474f99643c112eb02aa34a910237.dll +0 -0
  70. pyogrio.libs/{qhull_r-516897f855568caab1ab1fe37912766c.dll → qhull_r-eaac2f11a3d8241f082e54447c7504d7.dll} +0 -0
  71. pyogrio.libs/sqlite3-dc748e3452944fd41001abacdd783569.dll +0 -0
  72. pyogrio.libs/tiff-c409ddbe87b39639b83fee50d4aea318.dll +0 -0
  73. pyogrio.libs/{zlib1-e5af16a15c63f05bd82d90396807ae5b.dll → zlib1-094085b7b78666197dcc8e1fce2d835d.dll} +0 -0
  74. pyogrio-0.10.0.dist-info/DELVEWHEEL +0 -2
  75. pyogrio.libs/geos-ace4c5b5c1f569bb4213e7bbd0b0322e.dll +0 -0
  76. pyogrio.libs/geos_c-7478ca0a86136b280d9b2d245c6f6627.dll +0 -0
  77. pyogrio.libs/json-c-c84940e2654a4f8468bfcf2ce992aa93.dll +0 -0
  78. pyogrio.libs/libcurl-d69cfd4ad487d53d58743b6778ec85e7.dll +0 -0
  79. pyogrio.libs/libexpat-6576a8d02641b6a3dbad35901ec200a7.dll +0 -0
  80. pyogrio.libs/liblzma-9ee4accb476ec1ae24e924953140273d.dll +0 -0
  81. pyogrio.libs/libpng16-7c36142dda59f186f6bb683e8dae2bfe.dll +0 -0
  82. pyogrio.libs/msvcp140-98b3e5b80de1e5e9d1703b786d795623.dll +0 -0
  83. pyogrio.libs/proj-a408c5327f3fd2f5fabe8c56815beed7.dll +0 -0
  84. pyogrio.libs/sqlite3-9bc109d8536d5ed9666332fec94485fc.dll +0 -0
  85. pyogrio.libs/tiff-9b3f605fffe0bccc0a964c374ee4f820.dll +0 -0
  86. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info/licenses}/LICENSE +0 -0
  87. {pyogrio-0.10.0.dist-info → pyogrio-0.11.0.dist-info}/top_level.txt +0 -0
@@ -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)
@@ -9,11 +9,12 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
9
9
  set_property(TARGET PROJ::proj APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
10
10
  set_target_properties(PROJ::proj PROPERTIES
11
11
  IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/proj.lib"
12
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/proj.dll"
12
+ IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE "unofficial::sqlite3::sqlite3"
13
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/proj_9.dll"
13
14
  )
14
15
 
15
16
  list(APPEND _cmake_import_check_targets PROJ::proj )
16
- list(APPEND _cmake_import_check_files_for_PROJ::proj "${_IMPORT_PREFIX}/lib/proj.lib" "${_IMPORT_PREFIX}/bin/proj.dll" )
17
+ list(APPEND _cmake_import_check_files_for_PROJ::proj "${_IMPORT_PREFIX}/lib/proj.lib" "${_IMPORT_PREFIX}/bin/proj_9.dll" )
17
18
 
18
19
  # Commands beyond this point should not need to know the version.
19
20
  set(CMAKE_IMPORT_FILE_VERSION)
@@ -1,13 +1,13 @@
1
1
  # Generated by CMake
2
2
 
3
3
  if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
4
- message(FATAL_ERROR "CMake >= 2.8.0 required")
4
+ message(FATAL_ERROR "CMake >= 2.8.3 required")
5
5
  endif()
6
6
  if(CMAKE_VERSION VERSION_LESS "2.8.3")
7
7
  message(FATAL_ERROR "CMake >= 2.8.3 required")
8
8
  endif()
9
9
  cmake_policy(PUSH)
10
- cmake_policy(VERSION 2.8.3...3.28)
10
+ cmake_policy(VERSION 2.8.3...3.29)
11
11
  #----------------------------------------------------------------
12
12
  # Generated CMake target import file.
13
13
  #----------------------------------------------------------------
pyogrio/proj_data/proj.db CHANGED
Binary file
@@ -23,13 +23,13 @@ cache_enabled = on
23
23
  cache_size_MB = 300
24
24
 
25
25
  ; Time-to-live delay in seconds before already accessed remote resources are
26
- ; acessed again to check if they have been updated.
26
+ ; accessed again to check if they have been updated.
27
27
  cache_ttl_sec = 86400
28
28
 
29
29
  ; Can be set to on so that by default the lack of a known resource files needed
30
30
  ; for the best transformation PROJ would normally use causes an error, or off
31
31
  ; to accept missing resource files without errors or warnings.
32
- ; This default value itself is overriden by the PROJ_ONLY_BEST_DEFAULT environment
32
+ ; This default value itself is overridden by the PROJ_ONLY_BEST_DEFAULT environment
33
33
  ; variable if set, and then by the ONLY_BEST setting that can be
34
34
  ; passed to the proj_create_crs_to_crs() method, or with the --only-best
35
35
  ; option of the cs2cs program.
@@ -38,10 +38,18 @@ cache_ttl_sec = 86400
38
38
  only_best_default = off
39
39
 
40
40
  ; Filename of the Certificate Authority (CA) bundle.
41
- ; Can be overriden with the PROJ_CURL_CA_BUNDLE / CURL_CA_BUNDLE environment variable.
41
+ ; Can be overridden with the PROJ_CURL_CA_BUNDLE / CURL_CA_BUNDLE environment variable.
42
42
  ; (added in PROJ 9.0)
43
43
  ; ca_bundle_path = /path/to/cabundle.pem
44
44
 
45
+ ; When this is set to on, the operating systems native CA store will be used for certificate verification
46
+ ; If you set this option to on and also set ca_bundle_path then during verification those certificates are
47
+ ; searched in addition to the native CA store.
48
+ ; (added in PROJ 9.6)
49
+ ; Valid values = on, off
50
+ ;native_ca = on
51
+
52
+
45
53
  ; Transverse Mercator (and UTM) default algorithm: auto, evenden_snyder or poder_engsager
46
54
  ; * evenden_snyder is the fastest, but less accurate far from central meridian
47
55
  ; * poder_engsager is slower, but more accurate far from central meridian
@@ -9,11 +9,12 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
9
9
  set_property(TARGET PROJ4::proj APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
10
10
  set_target_properties(PROJ4::proj PROPERTIES
11
11
  IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/proj.lib"
12
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/proj.dll"
12
+ IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE "unofficial::sqlite3::sqlite3"
13
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/proj_9.dll"
13
14
  )
14
15
 
15
16
  list(APPEND _cmake_import_check_targets PROJ4::proj )
16
- list(APPEND _cmake_import_check_files_for_PROJ4::proj "${_IMPORT_PREFIX}/lib/proj.lib" "${_IMPORT_PREFIX}/bin/proj.dll" )
17
+ list(APPEND _cmake_import_check_files_for_PROJ4::proj "${_IMPORT_PREFIX}/lib/proj.lib" "${_IMPORT_PREFIX}/bin/proj_9.dll" )
17
18
 
18
19
  # Commands beyond this point should not need to know the version.
19
20
  set(CMAKE_IMPORT_FILE_VERSION)
@@ -1,13 +1,13 @@
1
1
  # Generated by CMake
2
2
 
3
3
  if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
4
- message(FATAL_ERROR "CMake >= 2.8.0 required")
4
+ message(FATAL_ERROR "CMake >= 2.8.3 required")
5
5
  endif()
6
6
  if(CMAKE_VERSION VERSION_LESS "2.8.3")
7
7
  message(FATAL_ERROR "CMake >= 2.8.3 required")
8
8
  endif()
9
9
  cmake_policy(PUSH)
10
- cmake_policy(VERSION 2.8.3...3.28)
10
+ cmake_policy(VERSION 2.8.3...3.29)
11
11
  #----------------------------------------------------------------
12
12
  # Generated CMake target import file.
13
13
  #----------------------------------------------------------------
pyogrio/proj_data/usage CHANGED
@@ -1,4 +1,9 @@
1
1
  proj provides CMake targets:
2
2
 
3
- find_package(PROJ CONFIG REQUIRED)
4
- target_link_libraries(main PRIVATE PROJ::proj)
3
+ find_package(PROJ CONFIG REQUIRED)
4
+ target_link_libraries(main PRIVATE PROJ::proj)
5
+
6
+ proj provides pkg-config modules:
7
+
8
+ # Coordinate transformation software library
9
+ proj
@@ -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/proj-x64-windows-dynamic-release-9.4.1-095f755e-004d-4a27-9645-4fbfcf353ec5",
7
- "name": "proj:x64-windows-dynamic-release@9.4.1 3221250292d4cd48d645445f204396e392ced5a9f49a37c6db6c1d43e529dde7",
6
+ "documentNamespace": "https://spdx.org/spdxdocs/proj-x64-windows-dynamic-release-9.6.0-0559eca9-1f3d-480e-a8dd-f2116495b329",
7
+ "name": "proj:x64-windows-dynamic-release@9.6.0 1bd513a77c4e5f6d9018d5699a29f9d0ae06d9622957bcacdb70c0d429bd7588",
8
8
  "creationInfo": {
9
9
  "creators": [
10
- "Tool: vcpkg-2024-08-01-fd884a0d390d12783076341bd43d77c3a6a15658"
10
+ "Tool: vcpkg-2025-04-16-f9b6c6917b23c1ccf16c1a9f015ebabf8f615045"
11
11
  ],
12
- "created": "2024-09-05T06:36:23Z"
12
+ "created": "2025-05-07T14:26:56Z"
13
13
  },
14
14
  "relationships": [
15
15
  {
@@ -81,14 +81,19 @@
81
81
  "spdxElementId": "SPDXRef-file-5",
82
82
  "relationshipType": "CONTAINED_BY",
83
83
  "relatedSpdxElement": "SPDXRef-port"
84
+ },
85
+ {
86
+ "spdxElementId": "SPDXRef-file-5",
87
+ "relationshipType": "DEPENDENCY_MANIFEST_OF",
88
+ "relatedSpdxElement": "SPDXRef-port"
84
89
  }
85
90
  ],
86
91
  "packages": [
87
92
  {
88
93
  "name": "proj",
89
94
  "SPDXID": "SPDXRef-port",
90
- "versionInfo": "9.4.1",
91
- "downloadLocation": "git+https://github.com/Microsoft/vcpkg@dafa38417689eb52c17a425ace8e1f3ecfb74045",
95
+ "versionInfo": "9.6.0",
96
+ "downloadLocation": "git+https://github.com/Microsoft/vcpkg@157177ebd5778822eaf744dd5c725e553758a866",
92
97
  "homepage": "https://proj.org/",
93
98
  "licenseConcluded": "MIT",
94
99
  "licenseDeclared": "NOASSERTION",
@@ -99,7 +104,7 @@
99
104
  {
100
105
  "name": "proj:x64-windows-dynamic-release",
101
106
  "SPDXID": "SPDXRef-binary",
102
- "versionInfo": "3221250292d4cd48d645445f204396e392ced5a9f49a37c6db6c1d43e529dde7",
107
+ "versionInfo": "1bd513a77c4e5f6d9018d5699a29f9d0ae06d9622957bcacdb70c0d429bd7588",
103
108
  "downloadLocation": "NONE",
104
109
  "licenseConcluded": "MIT",
105
110
  "licenseDeclared": "NOASSERTION",
@@ -107,23 +112,23 @@
107
112
  "comment": "This is a binary package built by vcpkg."
108
113
  },
109
114
  {
110
- "SPDXID": "SPDXRef-resource-1",
115
+ "SPDXID": "SPDXRef-resource-0",
111
116
  "name": "OSGeo/PROJ",
112
- "downloadLocation": "git+https://github.com/OSGeo/PROJ@9.4.1",
117
+ "downloadLocation": "git+https://github.com/OSGeo/PROJ@9.6.0",
113
118
  "licenseConcluded": "NOASSERTION",
114
119
  "licenseDeclared": "NOASSERTION",
115
120
  "copyrightText": "NOASSERTION",
116
121
  "checksums": [
117
122
  {
118
123
  "algorithm": "SHA512",
119
- "checksumValue": "4b3ceb9e3b2213b0bb2fc839f4dd70e08ee53323465c7bb473131907e4b66c836623da115c7413dfd8bafd0a992fa173003063e2233ab577139ab8462655b6cc"
124
+ "checksumValue": "45d8bfb883431c62c2627cecf583a4374efda7f109c2b43d3fe8ef18136f30cf57682d6e6c44256ba099533754392c87f71e940a41018a577f540310001e0f05"
120
125
  }
121
126
  ]
122
127
  }
123
128
  ],
124
129
  "files": [
125
130
  {
126
- "fileName": "./C:/vcpkg/buildtrees/versioning_/versions/proj/dafa38417689eb52c17a425ace8e1f3ecfb74045/fix-proj4-targets-cmake.patch",
131
+ "fileName": "./fix-proj4-targets-cmake.patch",
127
132
  "SPDXID": "SPDXRef-file-0",
128
133
  "checksums": [
129
134
  {
@@ -135,60 +140,60 @@
135
140
  "copyrightText": "NOASSERTION"
136
141
  },
137
142
  {
138
- "fileName": "./C:/vcpkg/buildtrees/versioning_/versions/proj/dafa38417689eb52c17a425ace8e1f3ecfb74045/fix-win-output-name.patch",
143
+ "fileName": "./portfile.cmake",
139
144
  "SPDXID": "SPDXRef-file-1",
140
145
  "checksums": [
141
146
  {
142
147
  "algorithm": "SHA256",
143
- "checksumValue": "706e536cfe9a90c1b071ab5b00932fa96bb35c67fcb0f96c0fc4feb7c0b44011"
148
+ "checksumValue": "5fd54e02ca8ceda95178cb097182d81c5e10590cb15f74c1f67ed328eab84af2"
144
149
  }
145
150
  ],
146
151
  "licenseConcluded": "NOASSERTION",
147
152
  "copyrightText": "NOASSERTION"
148
153
  },
149
154
  {
150
- "fileName": "./C:/vcpkg/buildtrees/versioning_/versions/proj/dafa38417689eb52c17a425ace8e1f3ecfb74045/portfile.cmake",
155
+ "fileName": "./remove_toolset_restriction.patch",
151
156
  "SPDXID": "SPDXRef-file-2",
152
157
  "checksums": [
153
158
  {
154
159
  "algorithm": "SHA256",
155
- "checksumValue": "c1e2909ff16c46a449fbb7e71e14ea3d33103491f21ce5191d899cafded1822f"
160
+ "checksumValue": "25c1c986673bd539f5ec920684a08b38d0d37d9e24b6793e5b79dbd717bde04e"
156
161
  }
157
162
  ],
158
163
  "licenseConcluded": "NOASSERTION",
159
164
  "copyrightText": "NOASSERTION"
160
165
  },
161
166
  {
162
- "fileName": "./C:/vcpkg/buildtrees/versioning_/versions/proj/dafa38417689eb52c17a425ace8e1f3ecfb74045/remove_toolset_restriction.patch",
167
+ "fileName": "./sqlite.diff",
163
168
  "SPDXID": "SPDXRef-file-3",
164
169
  "checksums": [
165
170
  {
166
171
  "algorithm": "SHA256",
167
- "checksumValue": "25c1c986673bd539f5ec920684a08b38d0d37d9e24b6793e5b79dbd717bde04e"
172
+ "checksumValue": "75049bf707593bb9a22a6f77ccc062fe1343484a12920adc7be5c29c14746857"
168
173
  }
169
174
  ],
170
175
  "licenseConcluded": "NOASSERTION",
171
176
  "copyrightText": "NOASSERTION"
172
177
  },
173
178
  {
174
- "fileName": "./C:/vcpkg/buildtrees/versioning_/versions/proj/dafa38417689eb52c17a425ace8e1f3ecfb74045/usage",
179
+ "fileName": "./usage",
175
180
  "SPDXID": "SPDXRef-file-4",
176
181
  "checksums": [
177
182
  {
178
183
  "algorithm": "SHA256",
179
- "checksumValue": "26169363c27e71a44cba9d703b22bbd13c191ab5e2d0612b3dd35c735c971fe6"
184
+ "checksumValue": "ae06beae83376cd9f11db8c2596bd038f89ae1e2cd32b82ee333f1572070370a"
180
185
  }
181
186
  ],
182
187
  "licenseConcluded": "NOASSERTION",
183
188
  "copyrightText": "NOASSERTION"
184
189
  },
185
190
  {
186
- "fileName": "./C:/vcpkg/buildtrees/versioning_/versions/proj/dafa38417689eb52c17a425ace8e1f3ecfb74045/vcpkg.json",
191
+ "fileName": "./vcpkg.json",
187
192
  "SPDXID": "SPDXRef-file-5",
188
193
  "checksums": [
189
194
  {
190
195
  "algorithm": "SHA256",
191
- "checksumValue": "0dbf128c799775bc808b756ed9800d1fd349f7d41b874ad78a204d17988b8737"
196
+ "checksumValue": "88ecc073bf74d5a0a114bb1357499f6210c84a4f5a8b7beed2af94907f2f8802"
192
197
  }
193
198
  ],
194
199
  "licenseConcluded": "NOASSERTION",