pyogrio 0.7.1__cp312-cp312-macosx_11_0_arm64.whl → 0.8.0__cp312-cp312-macosx_11_0_arm64.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.
- pyogrio/.dylibs/{libgdal.33.3.7.2.dylib → libgdal.34.3.8.5.dylib} +0 -0
- pyogrio/__init__.py +4 -0
- pyogrio/_compat.py +7 -1
- pyogrio/_err.cpython-312-darwin.so +0 -0
- pyogrio/_err.pyx +7 -3
- pyogrio/_geometry.cpython-312-darwin.so +0 -0
- pyogrio/_io.cpython-312-darwin.so +0 -0
- pyogrio/_io.pyx +900 -242
- pyogrio/_ogr.cpython-312-darwin.so +0 -0
- pyogrio/_ogr.pxd +65 -12
- pyogrio/_ogr.pyx +8 -24
- pyogrio/_version.py +3 -3
- pyogrio/_vsi.cpython-312-darwin.so +0 -0
- pyogrio/_vsi.pxd +4 -0
- pyogrio/_vsi.pyx +140 -0
- pyogrio/core.py +43 -44
- pyogrio/gdal_data/GDAL-targets-release.cmake +3 -3
- pyogrio/gdal_data/GDAL-targets.cmake +10 -6
- pyogrio/gdal_data/GDALConfigVersion.cmake +3 -3
- pyogrio/gdal_data/gdalinfo_output.schema.json +2 -0
- pyogrio/gdal_data/gdalvrt.xsd +163 -0
- pyogrio/gdal_data/ogrinfo_output.schema.json +12 -1
- pyogrio/gdal_data/vcpkg.spdx.json +22 -22
- pyogrio/gdal_data/vcpkg_abi_info.txt +27 -26
- pyogrio/geopandas.py +131 -30
- pyogrio/proj_data/ITRF2008 +2 -2
- pyogrio/proj_data/proj-config-version.cmake +2 -2
- pyogrio/proj_data/proj-config.cmake +2 -1
- pyogrio/proj_data/proj-targets.cmake +13 -13
- pyogrio/proj_data/proj.db +0 -0
- pyogrio/proj_data/proj4-targets.cmake +13 -13
- pyogrio/proj_data/vcpkg.spdx.json +19 -41
- pyogrio/proj_data/vcpkg_abi_info.txt +14 -15
- pyogrio/raw.py +438 -116
- pyogrio/tests/conftest.py +75 -6
- pyogrio/tests/test_arrow.py +841 -7
- pyogrio/tests/test_core.py +99 -7
- pyogrio/tests/test_geopandas_io.py +744 -119
- pyogrio/tests/test_path.py +22 -3
- pyogrio/tests/test_raw_io.py +276 -50
- pyogrio/util.py +41 -19
- {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/METADATA +3 -2
- {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/RECORD +46 -44
- {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/WHEEL +1 -1
- pyogrio/tests/win32.py +0 -86
- {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/LICENSE +0 -0
- {pyogrio-0.7.1.dist-info → pyogrio-0.8.0.dist-info}/top_level.txt +0 -0
pyogrio/geopandas.py
CHANGED
|
@@ -2,14 +2,14 @@ import os
|
|
|
2
2
|
|
|
3
3
|
import numpy as np
|
|
4
4
|
|
|
5
|
-
from pyogrio._compat import HAS_GEOPANDAS, PANDAS_GE_20
|
|
5
|
+
from pyogrio._compat import HAS_GEOPANDAS, PANDAS_GE_15, PANDAS_GE_20, PANDAS_GE_22
|
|
6
6
|
from pyogrio.raw import (
|
|
7
7
|
DRIVERS_NO_MIXED_SINGLE_MULTI,
|
|
8
8
|
DRIVERS_NO_MIXED_DIMENSIONS,
|
|
9
|
-
detect_write_driver,
|
|
10
9
|
read,
|
|
11
10
|
read_arrow,
|
|
12
11
|
write,
|
|
12
|
+
_get_write_path_driver,
|
|
13
13
|
)
|
|
14
14
|
from pyogrio.errors import DataSourceError
|
|
15
15
|
import warnings
|
|
@@ -33,7 +33,9 @@ def _stringify_path(path):
|
|
|
33
33
|
def _try_parse_datetime(ser):
|
|
34
34
|
import pandas as pd # only called when pandas is known to be installed
|
|
35
35
|
|
|
36
|
-
if
|
|
36
|
+
if PANDAS_GE_22:
|
|
37
|
+
datetime_kwargs = dict(format="ISO8601")
|
|
38
|
+
elif PANDAS_GE_20:
|
|
37
39
|
datetime_kwargs = dict(format="ISO8601", errors="ignore")
|
|
38
40
|
else:
|
|
39
41
|
datetime_kwargs = dict(yearfirst=True)
|
|
@@ -48,10 +50,13 @@ def _try_parse_datetime(ser):
|
|
|
48
50
|
try:
|
|
49
51
|
res = pd.to_datetime(ser, **datetime_kwargs)
|
|
50
52
|
except Exception:
|
|
51
|
-
|
|
53
|
+
res = ser
|
|
52
54
|
# if object dtype, try parse as utc instead
|
|
53
55
|
if res.dtype == "object":
|
|
54
|
-
|
|
56
|
+
try:
|
|
57
|
+
res = pd.to_datetime(ser, utc=True, **datetime_kwargs)
|
|
58
|
+
except Exception:
|
|
59
|
+
pass
|
|
55
60
|
|
|
56
61
|
if res.dtype != "object":
|
|
57
62
|
# GDAL only supports ms precision, convert outputs to match.
|
|
@@ -101,13 +106,16 @@ def read_dataframe(
|
|
|
101
106
|
of the layer in the data source. Defaults to first layer in data source.
|
|
102
107
|
encoding : str, optional (default: None)
|
|
103
108
|
If present, will be used as the encoding for reading string values from
|
|
104
|
-
the data source
|
|
105
|
-
|
|
109
|
+
the data source. By default will automatically try to detect the native
|
|
110
|
+
encoding and decode to ``UTF-8``.
|
|
106
111
|
columns : list-like, optional (default: all columns)
|
|
107
112
|
List of column names to import from the data source. Column names must
|
|
108
113
|
exactly match the names in the data source, and will be returned in
|
|
109
114
|
the order they occur in the data source. To avoid reading any columns,
|
|
110
|
-
pass an empty list-like.
|
|
115
|
+
pass an empty list-like. If combined with ``where`` parameter, must
|
|
116
|
+
include columns referenced in the ``where`` expression or the data may
|
|
117
|
+
not be correctly read; the data source may return empty results or
|
|
118
|
+
raise an exception (behavior varies by driver).
|
|
111
119
|
read_geometry : bool, optional (default: True)
|
|
112
120
|
If True, will read geometry into a GeoSeries. If False, a Pandas DataFrame
|
|
113
121
|
will be returned instead.
|
|
@@ -152,7 +160,12 @@ def read_dataframe(
|
|
|
152
160
|
the starting index is driver and file specific (e.g. typically 0 for
|
|
153
161
|
Shapefile and 1 for GeoPackage, but can still depend on the specific
|
|
154
162
|
file). The performance of reading a large number of features usings FIDs
|
|
155
|
-
is also driver specific
|
|
163
|
+
is also driver specific and depends on the value of ``use_arrow``. The order
|
|
164
|
+
of the rows returned is undefined. If you would like to sort based on FID, use
|
|
165
|
+
``fid_as_index=True`` to have the index of the GeoDataFrame returned set to the
|
|
166
|
+
FIDs of the features read. If ``use_arrow=True``, the number of FIDs is limited
|
|
167
|
+
to 4997 for drivers with 'OGRSQL' as default SQL dialect. To read a larger
|
|
168
|
+
number of FIDs, set ``user_arrow=False``.
|
|
156
169
|
sql : str, optional (default: None)
|
|
157
170
|
The SQL statement to execute. Look at the sql_dialect parameter for more
|
|
158
171
|
information on the syntax to use for the query. When combined with other
|
|
@@ -275,7 +288,11 @@ def read_dataframe(
|
|
|
275
288
|
# Index not asked, no geometry column and no attribute columns: return empty
|
|
276
289
|
return pd.DataFrame()
|
|
277
290
|
elif geometry_name in df.columns:
|
|
278
|
-
|
|
291
|
+
wkb_values = df.pop(geometry_name)
|
|
292
|
+
if PANDAS_GE_15 and wkb_values.dtype != object:
|
|
293
|
+
# for example ArrowDtype will otherwise create numpy array with pd.NA
|
|
294
|
+
wkb_values = wkb_values.to_numpy(na_value=None)
|
|
295
|
+
df["geometry"] = from_wkb(wkb_values, crs=meta["crs"])
|
|
279
296
|
if force_2d:
|
|
280
297
|
df["geometry"] = shapely.force_2d(df["geometry"])
|
|
281
298
|
return gp.GeoDataFrame(df, geometry="geometry")
|
|
@@ -314,6 +331,7 @@ def write_dataframe(
|
|
|
314
331
|
promote_to_multi=None,
|
|
315
332
|
nan_as_null=True,
|
|
316
333
|
append=False,
|
|
334
|
+
use_arrow=None,
|
|
317
335
|
dataset_metadata=None,
|
|
318
336
|
layer_metadata=None,
|
|
319
337
|
metadata=None,
|
|
@@ -331,16 +349,20 @@ def write_dataframe(
|
|
|
331
349
|
all values will be converted to strings to be written to the
|
|
332
350
|
output file, except None and np.nan, which will be set to NULL
|
|
333
351
|
in the output file.
|
|
334
|
-
path : str
|
|
335
|
-
path to file
|
|
336
|
-
|
|
337
|
-
|
|
352
|
+
path : str or io.BytesIO
|
|
353
|
+
path to output file on writeable file system or an io.BytesIO object to
|
|
354
|
+
allow writing to memory
|
|
355
|
+
NOTE: support for writing to memory is limited to specific drivers.
|
|
356
|
+
layer : str, optional (default: None)
|
|
357
|
+
layer name to create. If writing to memory and layer name is not
|
|
358
|
+
provided, it layer name will be set to a UUID4 value.
|
|
338
359
|
driver : string, optional (default: None)
|
|
339
|
-
The OGR format driver used to write the vector file. By default
|
|
340
|
-
|
|
360
|
+
The OGR format driver used to write the vector file. By default attempts
|
|
361
|
+
to infer driver from path. Must be provided to write to memory.
|
|
341
362
|
encoding : str, optional (default: None)
|
|
342
363
|
If present, will be used as the encoding for writing string values to
|
|
343
|
-
the file.
|
|
364
|
+
the file. Use with caution, only certain drivers support encodings
|
|
365
|
+
other than UTF-8.
|
|
344
366
|
geometry_type : string, optional (default: None)
|
|
345
367
|
By default, the geometry type of the layer will be inferred from the
|
|
346
368
|
data, after applying the promote_to_multi logic. If the data only contains a
|
|
@@ -372,8 +394,17 @@ def write_dataframe(
|
|
|
372
394
|
append : bool, optional (default: False)
|
|
373
395
|
If True, the data source specified by path already exists, and the
|
|
374
396
|
driver supports appending to an existing data source, will cause the
|
|
375
|
-
data to be appended to the existing records in the data source.
|
|
397
|
+
data to be appended to the existing records in the data source. Not
|
|
398
|
+
supported for writing to in-memory files.
|
|
376
399
|
NOTE: append support is limited to specific drivers and GDAL versions.
|
|
400
|
+
use_arrow : bool, optional (default: False)
|
|
401
|
+
Whether to use Arrow as the transfer mechanism of the data to write
|
|
402
|
+
from Python to GDAL (requires GDAL >= 3.8 and `pyarrow` to be
|
|
403
|
+
installed). When enabled, this provides a further speed-up.
|
|
404
|
+
Defaults to False, but this default can also be globally overridden
|
|
405
|
+
by setting the ``PYOGRIO_USE_ARROW=1`` environment variable.
|
|
406
|
+
Using Arrow does not support writing an object-dtype column with
|
|
407
|
+
mixed types.
|
|
377
408
|
dataset_metadata : dict, optional (default: None)
|
|
378
409
|
Metadata to be stored at the dataset level in the output file; limited
|
|
379
410
|
to drivers that support writing metadata, such as GPKG, and silently
|
|
@@ -385,10 +416,10 @@ def write_dataframe(
|
|
|
385
416
|
metadata : dict, optional (default: None)
|
|
386
417
|
alias of layer_metadata
|
|
387
418
|
dataset_options : dict, optional
|
|
388
|
-
Dataset creation
|
|
419
|
+
Dataset creation options (format specific) passed to OGR. Specify as
|
|
389
420
|
a key-value dictionary.
|
|
390
421
|
layer_options : dict, optional
|
|
391
|
-
Layer creation
|
|
422
|
+
Layer creation options (format specific) passed to OGR. Specify as
|
|
392
423
|
a key-value dictionary.
|
|
393
424
|
**kwargs
|
|
394
425
|
Additional driver-specific dataset or layer creation options passed
|
|
@@ -408,13 +439,12 @@ def write_dataframe(
|
|
|
408
439
|
import pandas as pd
|
|
409
440
|
from pyproj.enums import WktVersion # if geopandas is available so is pyproj
|
|
410
441
|
|
|
411
|
-
path = str(path)
|
|
412
|
-
|
|
413
442
|
if not isinstance(df, pd.DataFrame):
|
|
414
443
|
raise ValueError("'df' must be a DataFrame or GeoDataFrame")
|
|
415
444
|
|
|
416
|
-
if
|
|
417
|
-
|
|
445
|
+
if use_arrow is None:
|
|
446
|
+
use_arrow = bool(int(os.environ.get("PYOGRIO_USE_ARROW", "0")))
|
|
447
|
+
path, driver = _get_write_path_driver(path, driver, append=append)
|
|
418
448
|
|
|
419
449
|
geometry_columns = df.columns[df.dtypes == "geometry"]
|
|
420
450
|
if len(geometry_columns) > 1:
|
|
@@ -452,7 +482,7 @@ def write_dataframe(
|
|
|
452
482
|
# https://gdal.org/development/rfc/rfc56_millisecond_precision.html#core-changes
|
|
453
483
|
# Convert each row offset to a signed multiple of 15m and add to GMT value
|
|
454
484
|
gdal_offset_representation = tz_offset // pd.Timedelta("15m") + 100
|
|
455
|
-
gdal_tz_offsets[name] = gdal_offset_representation
|
|
485
|
+
gdal_tz_offsets[name] = gdal_offset_representation.values
|
|
456
486
|
else:
|
|
457
487
|
values = col.values
|
|
458
488
|
if isinstance(values, pd.api.extensions.ExtensionArray):
|
|
@@ -469,6 +499,9 @@ def write_dataframe(
|
|
|
469
499
|
field_mask.append(None)
|
|
470
500
|
|
|
471
501
|
# Determine geometry_type and/or promote_to_multi
|
|
502
|
+
if geometry_column is not None:
|
|
503
|
+
geometry_types_all = geometry.geom_type
|
|
504
|
+
|
|
472
505
|
if geometry_column is not None and (
|
|
473
506
|
geometry_type is None or promote_to_multi is None
|
|
474
507
|
):
|
|
@@ -478,9 +511,7 @@ def write_dataframe(
|
|
|
478
511
|
# If there is data, infer layer geometry type + promote_to_multi
|
|
479
512
|
if not df.empty:
|
|
480
513
|
# None/Empty geometries sometimes report as Z incorrectly, so ignore them
|
|
481
|
-
has_z_arr = geometry[
|
|
482
|
-
(geometry != np.array(None)) & (~geometry.is_empty)
|
|
483
|
-
].has_z
|
|
514
|
+
has_z_arr = geometry[geometry.notna() & (~geometry.is_empty)].has_z
|
|
484
515
|
has_z = has_z_arr.any()
|
|
485
516
|
all_z = has_z_arr.all()
|
|
486
517
|
|
|
@@ -489,7 +520,7 @@ def write_dataframe(
|
|
|
489
520
|
f"Mixed 2D and 3D coordinates are not supported by {driver}"
|
|
490
521
|
)
|
|
491
522
|
|
|
492
|
-
geometry_types = pd.Series(
|
|
523
|
+
geometry_types = pd.Series(geometry_types_all.unique()).dropna().values
|
|
493
524
|
if len(geometry_types) == 1:
|
|
494
525
|
tmp_geometry_type = geometry_types[0]
|
|
495
526
|
if promote_to_multi and tmp_geometry_type in (
|
|
@@ -533,10 +564,80 @@ def write_dataframe(
|
|
|
533
564
|
# if possible use EPSG codes instead
|
|
534
565
|
epsg = geometry.crs.to_epsg()
|
|
535
566
|
if epsg:
|
|
536
|
-
crs = f"EPSG:{epsg}"
|
|
567
|
+
crs = f"EPSG:{epsg}" # noqa: E231
|
|
537
568
|
else:
|
|
538
569
|
crs = geometry.crs.to_wkt(WktVersion.WKT1_GDAL)
|
|
539
570
|
|
|
571
|
+
if use_arrow:
|
|
572
|
+
import pyarrow as pa
|
|
573
|
+
from pyogrio.raw import write_arrow
|
|
574
|
+
|
|
575
|
+
if geometry_column is not None:
|
|
576
|
+
# Convert to multi type
|
|
577
|
+
if promote_to_multi:
|
|
578
|
+
import shapely
|
|
579
|
+
|
|
580
|
+
mask_points = geometry_types_all == "Point"
|
|
581
|
+
mask_linestrings = geometry_types_all == "LineString"
|
|
582
|
+
mask_polygons = geometry_types_all == "Polygon"
|
|
583
|
+
|
|
584
|
+
if mask_points.any():
|
|
585
|
+
geometry[mask_points] = shapely.multipoints(
|
|
586
|
+
np.atleast_2d(geometry[mask_points]), axis=0
|
|
587
|
+
)
|
|
588
|
+
|
|
589
|
+
if mask_linestrings.any():
|
|
590
|
+
geometry[mask_linestrings] = shapely.multilinestrings(
|
|
591
|
+
np.atleast_2d(geometry[mask_linestrings]), axis=0
|
|
592
|
+
)
|
|
593
|
+
|
|
594
|
+
if mask_polygons.any():
|
|
595
|
+
geometry[mask_polygons] = shapely.multipolygons(
|
|
596
|
+
np.atleast_2d(geometry[mask_polygons]), axis=0
|
|
597
|
+
)
|
|
598
|
+
|
|
599
|
+
geometry = to_wkb(geometry.values)
|
|
600
|
+
df = df.copy(deep=False)
|
|
601
|
+
# convert to plain DataFrame to avoid warning from geopandas about
|
|
602
|
+
# writing non-geometries to the geometry column
|
|
603
|
+
df = pd.DataFrame(df, copy=False)
|
|
604
|
+
df[geometry_column] = geometry
|
|
605
|
+
|
|
606
|
+
table = pa.Table.from_pandas(df, preserve_index=False)
|
|
607
|
+
|
|
608
|
+
if geometry_column is not None:
|
|
609
|
+
# ensure that the geometry column is binary (for all-null geometries,
|
|
610
|
+
# this could be a wrong type)
|
|
611
|
+
geom_field = table.schema.field(geometry_column)
|
|
612
|
+
if not (
|
|
613
|
+
pa.types.is_binary(geom_field.type)
|
|
614
|
+
or pa.types.is_large_binary(geom_field.type)
|
|
615
|
+
):
|
|
616
|
+
table = table.set_column(
|
|
617
|
+
table.schema.get_field_index(geometry_column),
|
|
618
|
+
geom_field.with_type(pa.binary()),
|
|
619
|
+
table[geometry_column].cast(pa.binary()),
|
|
620
|
+
)
|
|
621
|
+
|
|
622
|
+
write_arrow(
|
|
623
|
+
table,
|
|
624
|
+
path,
|
|
625
|
+
layer=layer,
|
|
626
|
+
driver=driver,
|
|
627
|
+
geometry_name=geometry_column,
|
|
628
|
+
geometry_type=geometry_type,
|
|
629
|
+
crs=crs,
|
|
630
|
+
encoding=encoding,
|
|
631
|
+
append=append,
|
|
632
|
+
dataset_metadata=dataset_metadata,
|
|
633
|
+
layer_metadata=layer_metadata,
|
|
634
|
+
metadata=metadata,
|
|
635
|
+
dataset_options=dataset_options,
|
|
636
|
+
layer_options=layer_options,
|
|
637
|
+
**kwargs,
|
|
638
|
+
)
|
|
639
|
+
return
|
|
640
|
+
|
|
540
641
|
# If there is geometry data, prepare it to be written
|
|
541
642
|
if geometry_column is not None:
|
|
542
643
|
geometry = to_wkb(geometry.values)
|
pyogrio/proj_data/ITRF2008
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|
|
43
43
|
<CARB> +proj=helmert +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
|
|
44
44
|
|
|
45
|
-
<EURA> +proj=helmert +drx=-0.000083 +dry
|
|
45
|
+
<EURA> +proj=helmert +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector
|
|
46
46
|
|
|
47
47
|
<INDI> +proj=helmert +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
|
|
48
48
|
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
|
|
76
76
|
<CARB_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
|
|
77
77
|
|
|
78
|
-
<EURA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry
|
|
78
|
+
<EURA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector
|
|
79
79
|
|
|
80
80
|
<INDI_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
|
|
81
81
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Version checking for PROJ
|
|
2
2
|
|
|
3
|
-
set (PACKAGE_VERSION "9.
|
|
3
|
+
set (PACKAGE_VERSION "9.4.0")
|
|
4
4
|
set (PACKAGE_VERSION_MAJOR "9")
|
|
5
|
-
set (PACKAGE_VERSION_MINOR "
|
|
5
|
+
set (PACKAGE_VERSION_MINOR "4")
|
|
6
6
|
set (PACKAGE_VERSION_PATCH "0")
|
|
7
7
|
|
|
8
8
|
# These variable definitions parallel those in PROJ's
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
|
|
4
4
|
message(FATAL_ERROR "CMake >= 2.8.0 required")
|
|
5
5
|
endif()
|
|
6
|
-
if(CMAKE_VERSION VERSION_LESS "2.8.
|
|
7
|
-
message(FATAL_ERROR "CMake >= 2.8.
|
|
6
|
+
if(CMAKE_VERSION VERSION_LESS "2.8.12")
|
|
7
|
+
message(FATAL_ERROR "CMake >= 2.8.12 required")
|
|
8
8
|
endif()
|
|
9
9
|
cmake_policy(PUSH)
|
|
10
|
-
cmake_policy(VERSION 2.8.
|
|
10
|
+
cmake_policy(VERSION 2.8.12...3.27)
|
|
11
11
|
#----------------------------------------------------------------
|
|
12
12
|
# Generated CMake target import file.
|
|
13
13
|
#----------------------------------------------------------------
|
|
@@ -60,13 +60,9 @@ add_library(PROJ::proj STATIC IMPORTED)
|
|
|
60
60
|
set_target_properties(PROJ::proj PROPERTIES
|
|
61
61
|
INTERFACE_COMPILE_DEFINITIONS "PROJ_DLL="
|
|
62
62
|
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
63
|
-
INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:
|
|
63
|
+
INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:SQLite::SQLite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
|
|
64
64
|
)
|
|
65
65
|
|
|
66
|
-
if(CMAKE_VERSION VERSION_LESS 2.8.12)
|
|
67
|
-
message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
|
|
68
|
-
endif()
|
|
69
|
-
|
|
70
66
|
# Load information for each installed configuration.
|
|
71
67
|
file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/proj-targets-*.cmake")
|
|
72
68
|
foreach(_cmake_config_file IN LISTS _cmake_config_files)
|
|
@@ -80,9 +76,12 @@ set(_IMPORT_PREFIX)
|
|
|
80
76
|
|
|
81
77
|
# Loop over all imported files and verify that they actually exist
|
|
82
78
|
foreach(_cmake_target IN LISTS _cmake_import_check_targets)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
if(CMAKE_VERSION VERSION_LESS "3.28"
|
|
80
|
+
OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
|
|
81
|
+
OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
|
|
82
|
+
foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
|
|
83
|
+
if(NOT EXISTS "${_cmake_file}")
|
|
84
|
+
message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
|
|
86
85
|
\"${_cmake_file}\"
|
|
87
86
|
but this file does not exist. Possible reasons include:
|
|
88
87
|
* The file was deleted, renamed, or moved to another location.
|
|
@@ -91,8 +90,9 @@ but this file does not exist. Possible reasons include:
|
|
|
91
90
|
\"${CMAKE_CURRENT_LIST_FILE}\"
|
|
92
91
|
but not all the files it references.
|
|
93
92
|
")
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
endif()
|
|
94
|
+
endforeach()
|
|
95
|
+
endif()
|
|
96
96
|
unset(_cmake_file)
|
|
97
97
|
unset("_cmake_import_check_files_for_${_cmake_target}")
|
|
98
98
|
endforeach()
|
pyogrio/proj_data/proj.db
CHANGED
|
Binary file
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
|
|
4
4
|
message(FATAL_ERROR "CMake >= 2.8.0 required")
|
|
5
5
|
endif()
|
|
6
|
-
if(CMAKE_VERSION VERSION_LESS "2.8.
|
|
7
|
-
message(FATAL_ERROR "CMake >= 2.8.
|
|
6
|
+
if(CMAKE_VERSION VERSION_LESS "2.8.12")
|
|
7
|
+
message(FATAL_ERROR "CMake >= 2.8.12 required")
|
|
8
8
|
endif()
|
|
9
9
|
cmake_policy(PUSH)
|
|
10
|
-
cmake_policy(VERSION 2.8.
|
|
10
|
+
cmake_policy(VERSION 2.8.12...3.27)
|
|
11
11
|
#----------------------------------------------------------------
|
|
12
12
|
# Generated CMake target import file.
|
|
13
13
|
#----------------------------------------------------------------
|
|
@@ -60,13 +60,9 @@ add_library(PROJ4::proj STATIC IMPORTED)
|
|
|
60
60
|
set_target_properties(PROJ4::proj PROPERTIES
|
|
61
61
|
INTERFACE_COMPILE_DEFINITIONS "PROJ_DLL="
|
|
62
62
|
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
63
|
-
INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:
|
|
63
|
+
INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:-lm>;\$<LINK_ONLY:-ldl>;\$<LINK_ONLY:SQLite::SQLite3>;\$<LINK_ONLY:>;\$<LINK_ONLY:TIFF::TIFF>;\$<LINK_ONLY:CURL::libcurl>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:ws2_32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:wldap32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:advapi32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:crypt32>>;\$<LINK_ONLY:\$<\$<CXX_COMPILER_ID:MSVC>:normaliz>>"
|
|
64
64
|
)
|
|
65
65
|
|
|
66
|
-
if(CMAKE_VERSION VERSION_LESS 2.8.12)
|
|
67
|
-
message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
|
|
68
|
-
endif()
|
|
69
|
-
|
|
70
66
|
# Load information for each installed configuration.
|
|
71
67
|
file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/proj4-targets-*.cmake")
|
|
72
68
|
foreach(_cmake_config_file IN LISTS _cmake_config_files)
|
|
@@ -80,9 +76,12 @@ set(_IMPORT_PREFIX)
|
|
|
80
76
|
|
|
81
77
|
# Loop over all imported files and verify that they actually exist
|
|
82
78
|
foreach(_cmake_target IN LISTS _cmake_import_check_targets)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
if(CMAKE_VERSION VERSION_LESS "3.28"
|
|
80
|
+
OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
|
|
81
|
+
OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
|
|
82
|
+
foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
|
|
83
|
+
if(NOT EXISTS "${_cmake_file}")
|
|
84
|
+
message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
|
|
86
85
|
\"${_cmake_file}\"
|
|
87
86
|
but this file does not exist. Possible reasons include:
|
|
88
87
|
* The file was deleted, renamed, or moved to another location.
|
|
@@ -91,8 +90,9 @@ but this file does not exist. Possible reasons include:
|
|
|
91
90
|
\"${CMAKE_CURRENT_LIST_FILE}\"
|
|
92
91
|
but not all the files it references.
|
|
93
92
|
")
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
endif()
|
|
94
|
+
endforeach()
|
|
95
|
+
endif()
|
|
96
96
|
unset(_cmake_file)
|
|
97
97
|
unset("_cmake_import_check_files_for_${_cmake_target}")
|
|
98
98
|
endforeach()
|
|
@@ -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-arm64-osx-dynamic-release-9.
|
|
7
|
-
"name": "proj:arm64-osx-dynamic-release@9.
|
|
6
|
+
"documentNamespace": "https://spdx.org/spdxdocs/proj-arm64-osx-dynamic-release-9.4.0-9491cde3-4c6b-4488-85dd-f6d39095c75d",
|
|
7
|
+
"name": "proj:arm64-osx-dynamic-release@9.4.0 ae315e03ec207af28b043c414cbeaeef6f4674e495ebabcedb1050d41ed50047",
|
|
8
8
|
"creationInfo": {
|
|
9
9
|
"creators": [
|
|
10
|
-
"Tool: vcpkg-
|
|
10
|
+
"Tool: vcpkg-710a3116bbd615864eef5f9010af178034cb9b44"
|
|
11
11
|
],
|
|
12
|
-
"created": "
|
|
12
|
+
"created": "2024-04-17T23:25:17Z"
|
|
13
13
|
},
|
|
14
14
|
"relationships": [
|
|
15
15
|
{
|
|
@@ -47,11 +47,6 @@
|
|
|
47
47
|
"relationshipType": "CONTAINS",
|
|
48
48
|
"relatedSpdxElement": "SPDXRef-file-5"
|
|
49
49
|
},
|
|
50
|
-
{
|
|
51
|
-
"spdxElementId": "SPDXRef-port",
|
|
52
|
-
"relationshipType": "CONTAINS",
|
|
53
|
-
"relatedSpdxElement": "SPDXRef-file-6"
|
|
54
|
-
},
|
|
55
50
|
{
|
|
56
51
|
"spdxElementId": "SPDXRef-binary",
|
|
57
52
|
"relationshipType": "GENERATED_FROM",
|
|
@@ -86,19 +81,14 @@
|
|
|
86
81
|
"spdxElementId": "SPDXRef-file-5",
|
|
87
82
|
"relationshipType": "CONTAINED_BY",
|
|
88
83
|
"relatedSpdxElement": "SPDXRef-port"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
"spdxElementId": "SPDXRef-file-6",
|
|
92
|
-
"relationshipType": "CONTAINED_BY",
|
|
93
|
-
"relatedSpdxElement": "SPDXRef-port"
|
|
94
84
|
}
|
|
95
85
|
],
|
|
96
86
|
"packages": [
|
|
97
87
|
{
|
|
98
88
|
"name": "proj",
|
|
99
89
|
"SPDXID": "SPDXRef-port",
|
|
100
|
-
"versionInfo": "9.
|
|
101
|
-
"downloadLocation": "git+https://github.com/Microsoft/vcpkg@
|
|
90
|
+
"versionInfo": "9.4.0",
|
|
91
|
+
"downloadLocation": "git+https://github.com/Microsoft/vcpkg@62e9ace469641b907291184ebc7e76d96f629881",
|
|
102
92
|
"homepage": "https://proj.org/",
|
|
103
93
|
"licenseConcluded": "MIT",
|
|
104
94
|
"licenseDeclared": "NOASSERTION",
|
|
@@ -109,7 +99,7 @@
|
|
|
109
99
|
{
|
|
110
100
|
"name": "proj:arm64-osx-dynamic-release",
|
|
111
101
|
"SPDXID": "SPDXRef-binary",
|
|
112
|
-
"versionInfo": "
|
|
102
|
+
"versionInfo": "ae315e03ec207af28b043c414cbeaeef6f4674e495ebabcedb1050d41ed50047",
|
|
113
103
|
"downloadLocation": "NONE",
|
|
114
104
|
"licenseConcluded": "MIT",
|
|
115
105
|
"licenseDeclared": "NOASSERTION",
|
|
@@ -119,21 +109,21 @@
|
|
|
119
109
|
{
|
|
120
110
|
"SPDXID": "SPDXRef-resource-1",
|
|
121
111
|
"name": "OSGeo/PROJ",
|
|
122
|
-
"downloadLocation": "git+https://github.com/OSGeo/PROJ@9.
|
|
112
|
+
"downloadLocation": "git+https://github.com/OSGeo/PROJ@9.4.0",
|
|
123
113
|
"licenseConcluded": "NOASSERTION",
|
|
124
114
|
"licenseDeclared": "NOASSERTION",
|
|
125
115
|
"copyrightText": "NOASSERTION",
|
|
126
116
|
"checksums": [
|
|
127
117
|
{
|
|
128
118
|
"algorithm": "SHA512",
|
|
129
|
-
"checksumValue": "
|
|
119
|
+
"checksumValue": "5bc53723a81d9950599d6c47a837de5e9052aa56f943951e3ad0911cbeb71585bac648f37b9b626f32bb5d0b481ce5aef9be0833910e53b4b015b573808b8981"
|
|
130
120
|
}
|
|
131
121
|
]
|
|
132
122
|
}
|
|
133
123
|
],
|
|
134
124
|
"files": [
|
|
135
125
|
{
|
|
136
|
-
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/
|
|
126
|
+
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/usage",
|
|
137
127
|
"SPDXID": "SPDXRef-file-0",
|
|
138
128
|
"checksums": [
|
|
139
129
|
{
|
|
@@ -145,68 +135,56 @@
|
|
|
145
135
|
"copyrightText": "NOASSERTION"
|
|
146
136
|
},
|
|
147
137
|
{
|
|
148
|
-
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/
|
|
138
|
+
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/portfile.cmake",
|
|
149
139
|
"SPDXID": "SPDXRef-file-1",
|
|
150
140
|
"checksums": [
|
|
151
141
|
{
|
|
152
142
|
"algorithm": "SHA256",
|
|
153
|
-
"checksumValue": "
|
|
143
|
+
"checksumValue": "58b4048cfc81891c1e32e41bc00b52ea7ae2821bd577b46ab63d2c962ef8747d"
|
|
154
144
|
}
|
|
155
145
|
],
|
|
156
146
|
"licenseConcluded": "NOASSERTION",
|
|
157
147
|
"copyrightText": "NOASSERTION"
|
|
158
148
|
},
|
|
159
149
|
{
|
|
160
|
-
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/
|
|
150
|
+
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/vcpkg.json",
|
|
161
151
|
"SPDXID": "SPDXRef-file-2",
|
|
162
152
|
"checksums": [
|
|
163
153
|
{
|
|
164
154
|
"algorithm": "SHA256",
|
|
165
|
-
"checksumValue": "
|
|
155
|
+
"checksumValue": "d31d1d3beb5ef0890e4b5db1ee5b72a925a58aa53bfaee688d4b5af1cea2bba4"
|
|
166
156
|
}
|
|
167
157
|
],
|
|
168
158
|
"licenseConcluded": "NOASSERTION",
|
|
169
159
|
"copyrightText": "NOASSERTION"
|
|
170
160
|
},
|
|
171
161
|
{
|
|
172
|
-
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/
|
|
162
|
+
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/remove_toolset_restriction.patch",
|
|
173
163
|
"SPDXID": "SPDXRef-file-3",
|
|
174
164
|
"checksums": [
|
|
175
165
|
{
|
|
176
166
|
"algorithm": "SHA256",
|
|
177
|
-
"checksumValue": "
|
|
167
|
+
"checksumValue": "25c1c986673bd539f5ec920684a08b38d0d37d9e24b6793e5b79dbd717bde04e"
|
|
178
168
|
}
|
|
179
169
|
],
|
|
180
170
|
"licenseConcluded": "NOASSERTION",
|
|
181
171
|
"copyrightText": "NOASSERTION"
|
|
182
172
|
},
|
|
183
173
|
{
|
|
184
|
-
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/
|
|
174
|
+
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/fix-proj4-targets-cmake.patch",
|
|
185
175
|
"SPDXID": "SPDXRef-file-4",
|
|
186
176
|
"checksums": [
|
|
187
177
|
{
|
|
188
178
|
"algorithm": "SHA256",
|
|
189
|
-
"checksumValue": "
|
|
179
|
+
"checksumValue": "d76e1d419d3367dda3381fd11a637f3465bc838d611fa8ceaca20048c1b3cd6e"
|
|
190
180
|
}
|
|
191
181
|
],
|
|
192
182
|
"licenseConcluded": "NOASSERTION",
|
|
193
183
|
"copyrightText": "NOASSERTION"
|
|
194
184
|
},
|
|
195
185
|
{
|
|
196
|
-
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/
|
|
186
|
+
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/62e9ace469641b907291184ebc7e76d96f629881/fix-win-output-name.patch",
|
|
197
187
|
"SPDXID": "SPDXRef-file-5",
|
|
198
|
-
"checksums": [
|
|
199
|
-
{
|
|
200
|
-
"algorithm": "SHA256",
|
|
201
|
-
"checksumValue": "0bcc51d69830a495a955cb97a8a1f91d9cec0410cbd8198f82f4fe60169d696f"
|
|
202
|
-
}
|
|
203
|
-
],
|
|
204
|
-
"licenseConcluded": "NOASSERTION",
|
|
205
|
-
"copyrightText": "NOASSERTION"
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
"fileName": ".//usr/local/share/vcpkg/buildtrees/versioning_/versions/proj/6e31164b906c96903b8352e6a9211ae019672ac4/fix-win-output-name.patch",
|
|
209
|
-
"SPDXID": "SPDXRef-file-6",
|
|
210
188
|
"checksums": [
|
|
211
189
|
{
|
|
212
190
|
"algorithm": "SHA256",
|