GDAL 3.9.1__tar.gz → 3.9.3__tar.gz
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.
- {gdal-3.9.1 → gdal-3.9.3}/PKG-INFO +2 -2
- {gdal-3.9.1 → gdal-3.9.3}/README.rst +1 -1
- {gdal-3.9.1 → gdal-3.9.3}/extensions/gdal_wrap.cpp +21 -18
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/GDAL.egg-info/PKG-INFO +2 -2
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/__init__.py +1 -1
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal2tiles.py +17 -11
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_retile.py +40 -1
- {gdal-3.9.1 → gdal-3.9.3}/osgeo/gdal.py +7 -7
- {gdal-3.9.1 → gdal-3.9.3}/setup.py +9 -1
- {gdal-3.9.1 → gdal-3.9.3}/extensions/gdal_array_wrap.cpp +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/extensions/gdalconst_wrap.c +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/extensions/gnm_wrap.cpp +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/extensions/ogr_wrap.cpp +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/extensions/osr_wrap.cpp +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/GDAL.egg-info/SOURCES.txt +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/GDAL.egg-info/dependency_links.txt +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/GDAL.egg-info/entry_points.txt +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/GDAL.egg-info/not-zip-safe +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/GDAL.egg-info/requires.txt +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/GDAL.egg-info/top_level.txt +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/__init__.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/array_util.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/base.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/batch_creator.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/color_palette.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/color_table.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/extent_util.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/gdal_argparse.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/numpy_util.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/osr_util.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/progress.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/raster_creation.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/rectangle.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/auxiliary/util.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal2xyz.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_calc.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_edit.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_fillnodata.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_merge.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_pansharpen.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_polygonize.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_proximity.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdal_sieve.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdalattachpct.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdalcompare.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/gdalmove.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/ogr_layer_algebra.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/ogrmerge.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/pct2rgb.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/rgb2pct.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/__init__.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/assemblepoly.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/build_jp2_from_xml.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/classify.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/crs2crs2grid.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/densify.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/dump_jp2.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/epsg_tr.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/esri2wkt.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/fft.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/fix_gpkg.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gcps2ogr.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gcps2vec.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gcps2wld.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal2grd.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_auth.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_cp.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_create_pdf.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_ls.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_lut.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_mkdir.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_remove_towgs84.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_rm.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_rmdir.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdal_vrtmerge.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdalbuildvrtofvrt.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdalchksum.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdalcopyproj.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdalfilter.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdalident.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdalimport.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdalinfo.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/gdallocationinfo.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/get_soundg.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/histrep.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/hsv_merge.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/jpeg_in_tiff_extract.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/load2odbc.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/loslas2ntv2.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/magphase.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/make_fuzzer_friendly_archive.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/mkgraticule.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/ogr2vrt.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/ogr_build_junction_table.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/ogr_dispatch.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/ogrinfo.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/ogrupdate.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/rel.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/tigerpoly.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/tile_extent_from_raster.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/tolatlong.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/val_repl.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/validate_cloud_optimized_geotiff.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/validate_geoparquet.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/validate_gpkg.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/validate_jp2.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/vec_tr.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/vec_tr_spat.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/wcs_virtds_params.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal2tiles.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal2xyz.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_calc.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_edit.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_fillnodata.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_merge.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_pansharpen.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_polygonize.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_proximity.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_retile.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdal_sieve.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdalattachpct.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdalcompare.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/gdalmove.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/ogr_layer_algebra.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/ogrmerge.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/pct2rgb.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/gdal-utils/scripts/rgb2pct.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/osgeo/__init__.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/osgeo/gdal_array.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/osgeo/gdalconst.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/osgeo/gdalnumeric.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/osgeo/gnm.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/osgeo/ogr.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/osgeo/osr.py +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/pyproject.toml +0 -0
- {gdal-3.9.1 → gdal-3.9.3}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: GDAL
|
|
3
|
-
Version: 3.9.
|
|
3
|
+
Version: 3.9.3
|
|
4
4
|
Summary: GDAL: Geospatial Data Abstraction Library
|
|
5
5
|
Home-page: http://www.gdal.org
|
|
6
6
|
Author: Frank Warmerdam, Howard Butler, Even Rouault
|
|
@@ -44,7 +44,7 @@ reference documentation, but the https://gdal.org/api/python_bindings.html#tutor
|
|
|
44
44
|
Dependencies
|
|
45
45
|
------------
|
|
46
46
|
|
|
47
|
-
* libgdal (3.9.
|
|
47
|
+
* libgdal (3.9.3 or greater) and header files (gdal-devel)
|
|
48
48
|
* numpy (1.0.0 or greater) and header files (numpy-devel) (not explicitly
|
|
49
49
|
required, but many examples and utilities will not work without it)
|
|
50
50
|
|
|
@@ -13,7 +13,7 @@ reference documentation, but the https://gdal.org/api/python_bindings.html#tutor
|
|
|
13
13
|
Dependencies
|
|
14
14
|
------------
|
|
15
15
|
|
|
16
|
-
* libgdal (3.9.
|
|
16
|
+
* libgdal (3.9.3 or greater) and header files (gdal-devel)
|
|
17
17
|
* numpy (1.0.0 or greater) and header files (numpy-devel) (not explicitly
|
|
18
18
|
required, but many examples and utilities will not work without it)
|
|
19
19
|
|
|
@@ -6622,8 +6622,8 @@ SWIGINTERN CPLErr GDALMDArrayHS_Read(GDALMDArrayHS *self,int nDims1,GUIntBig *ar
|
|
|
6622
6622
|
SWIGINTERN CPLErr GDALMDArrayHS_WriteStringArray(GDALMDArrayHS *self,int nDims1,GUIntBig *array_start_idx,int nDims2,GUIntBig *count,int nDims3,GIntBig *array_step,GDALExtendedDataTypeHS *buffer_datatype,char **options){
|
|
6623
6623
|
|
|
6624
6624
|
const int nExpectedDims = (int)GDALMDArrayGetDimensionCount(self);
|
|
6625
|
-
std::vector<size_t> count_internal(nExpectedDims);
|
|
6626
|
-
if( nExpectedDims
|
|
6625
|
+
std::vector<size_t> count_internal(nExpectedDims + 1);
|
|
6626
|
+
if( nExpectedDims > 1 )
|
|
6627
6627
|
{
|
|
6628
6628
|
CPLError(CE_Failure, CPLE_AppDefined,
|
|
6629
6629
|
"Unsupported number of dimensions");
|
|
@@ -6638,23 +6638,26 @@ SWIGINTERN CPLErr GDALMDArrayHS_WriteStringArray(GDALMDArrayHS *self,int nDims1,
|
|
|
6638
6638
|
return CE_Failure;
|
|
6639
6639
|
}
|
|
6640
6640
|
}
|
|
6641
|
-
if(
|
|
6641
|
+
if( nExpectedDims == 1 )
|
|
6642
6642
|
{
|
|
6643
|
-
|
|
6644
|
-
|
|
6645
|
-
|
|
6646
|
-
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
6650
|
-
|
|
6651
|
-
|
|
6652
|
-
|
|
6653
|
-
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
|
|
6657
|
-
|
|
6643
|
+
if( nDims1 != 1 )
|
|
6644
|
+
{
|
|
6645
|
+
CPLError(CE_Failure, CPLE_AppDefined,
|
|
6646
|
+
"Wrong number of values in array_start_idx");
|
|
6647
|
+
return CE_Failure;
|
|
6648
|
+
}
|
|
6649
|
+
if( nDims2 != 1 )
|
|
6650
|
+
{
|
|
6651
|
+
CPLError(CE_Failure, CPLE_AppDefined,
|
|
6652
|
+
"Wrong number of values in count");
|
|
6653
|
+
return CE_Failure;
|
|
6654
|
+
}
|
|
6655
|
+
if( nDims3 != 1 )
|
|
6656
|
+
{
|
|
6657
|
+
CPLError(CE_Failure, CPLE_AppDefined,
|
|
6658
|
+
"Wrong number of values in array_step");
|
|
6659
|
+
return CE_Failure;
|
|
6660
|
+
}
|
|
6658
6661
|
}
|
|
6659
6662
|
|
|
6660
6663
|
CPLErr eErr = GDALMDArrayWrite(self,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: GDAL
|
|
3
|
-
Version: 3.9.
|
|
3
|
+
Version: 3.9.3
|
|
4
4
|
Summary: GDAL: Geospatial Data Abstraction Library
|
|
5
5
|
Home-page: http://www.gdal.org
|
|
6
6
|
Author: Frank Warmerdam, Howard Butler, Even Rouault
|
|
@@ -44,7 +44,7 @@ reference documentation, but the https://gdal.org/api/python_bindings.html#tutor
|
|
|
44
44
|
Dependencies
|
|
45
45
|
------------
|
|
46
46
|
|
|
47
|
-
* libgdal (3.9.
|
|
47
|
+
* libgdal (3.9.3 or greater) and header files (gdal-devel)
|
|
48
48
|
* numpy (1.0.0 or greater) and header files (numpy-devel) (not explicitly
|
|
49
49
|
required, but many examples and utilities will not work without it)
|
|
50
50
|
|
|
@@ -895,13 +895,22 @@ def scale_query_to_tile(dsquery, dstile, options, tilefilename=""):
|
|
|
895
895
|
options.excluded_values or options.nodata_values_pct_threshold < 100
|
|
896
896
|
):
|
|
897
897
|
|
|
898
|
+
warp_options = "-r average"
|
|
899
|
+
|
|
900
|
+
assert options.nodata_values_pct_threshold is not None
|
|
901
|
+
warp_options += (
|
|
902
|
+
f" -wo NODATA_VALUES_PCT_THRESHOLD={options.nodata_values_pct_threshold}"
|
|
903
|
+
)
|
|
904
|
+
|
|
905
|
+
if options.excluded_values:
|
|
906
|
+
assert options.excluded_values_pct_threshold is not None
|
|
907
|
+
warp_options += f" -wo EXCLUDED_VALUES={options.excluded_values}"
|
|
908
|
+
warp_options += f" -wo EXCLUDED_VALUES_PCT_THRESHOLD={options.excluded_values_pct_threshold}"
|
|
909
|
+
|
|
898
910
|
gdal.Warp(
|
|
899
911
|
dstile,
|
|
900
912
|
dsquery,
|
|
901
|
-
options=
|
|
902
|
-
+ f"-wo EXCLUDED_VALUES={options.excluded_values} "
|
|
903
|
-
+ f"-wo EXCLUDED_VALUES_PCT_THRESHOLD={options.excluded_values_pct_threshold} "
|
|
904
|
-
+ f"-wo NODATA_VALUES_PCT_THRESHOLD={options.nodata_values_pct_threshold}",
|
|
913
|
+
options=warp_options,
|
|
905
914
|
)
|
|
906
915
|
|
|
907
916
|
elif options.resampling == "average":
|
|
@@ -3979,13 +3988,10 @@ function ExtDraggableObject(src, opt_drag) {
|
|
|
3979
3988
|
|
|
3980
3989
|
// Base layers
|
|
3981
3990
|
// .. OpenStreetMap
|
|
3982
|
-
var osm = L.tileLayer('
|
|
3991
|
+
var osm = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors', minZoom: %(minzoom)s, maxZoom: %(maxzoom)s});
|
|
3983
3992
|
|
|
3984
3993
|
// .. CartoDB Positron
|
|
3985
|
-
var cartodb = L.tileLayer('
|
|
3986
|
-
|
|
3987
|
-
// .. OSM Toner
|
|
3988
|
-
var toner = L.tileLayer('http://{s}.tile.stamen.com/toner/{z}/{x}/{y}.png', {attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="http://openstreetmap.org">OpenStreetMap</a>, under <a href="http://www.openstreetmap.org/copyright">ODbL</a>.', minZoom: %(minzoom)s, maxZoom: %(maxzoom)s});
|
|
3994
|
+
var cartodb = L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, © <a href="https://carto.com/attribution">CartoDB</a>', minZoom: %(minzoom)s, maxZoom: %(maxzoom)s});
|
|
3989
3995
|
|
|
3990
3996
|
// .. White background
|
|
3991
3997
|
var white = L.tileLayer("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX///+nxBvIAAAAH0lEQVQYGe3BAQ0AAADCIPunfg43YAAAAAAAAAAA5wIhAAAB9aK9BAAAAABJRU5ErkJggg==", {minZoom: %(minzoom)s, maxZoom: %(maxzoom)s});
|
|
@@ -4002,7 +4008,7 @@ function ExtDraggableObject(src, opt_drag) {
|
|
|
4002
4008
|
layers: [osm]
|
|
4003
4009
|
});
|
|
4004
4010
|
|
|
4005
|
-
var basemaps = {"OpenStreetMap": osm, "CartoDB Positron": cartodb, "
|
|
4011
|
+
var basemaps = {"OpenStreetMap": osm, "CartoDB Positron": cartodb, "Without background": white}
|
|
4006
4012
|
var overlaymaps = {"Layer": lyr}
|
|
4007
4013
|
|
|
4008
4014
|
// Title
|
|
@@ -4018,7 +4024,7 @@ function ExtDraggableObject(src, opt_drag) {
|
|
|
4018
4024
|
title.addTo(map);
|
|
4019
4025
|
|
|
4020
4026
|
// Note
|
|
4021
|
-
var src = 'Generated by <a href="https://gdal.org/programs/gdal2tiles.html">GDAL2Tiles</a>, Copyright © 2008 <a href="http://www.klokan.cz/">Klokan Petr Pridal</a>, <a href="https://gdal.org">GDAL</a> & <a href="
|
|
4027
|
+
var src = 'Generated by <a href="https://gdal.org/programs/gdal2tiles.html">GDAL2Tiles</a>, Copyright © 2008 <a href="http://www.klokan.cz/">Klokan Petr Pridal</a>, <a href="https://gdal.org">GDAL</a> & <a href="https://www.osgeo.org/">OSGeo</a> <a href="https://summerofcode.withgoogle.com/">GSoC</a>';
|
|
4022
4028
|
var title = L.control({position: 'bottomleft'});
|
|
4023
4029
|
title.onAdd = function(map) {
|
|
4024
4030
|
this._div = L.DomUtil.create('div', 'ctl src');
|
|
@@ -337,13 +337,52 @@ def getTileIndexFromFiles(g):
|
|
|
337
337
|
ogrTileIndexDS = createTileIndex(
|
|
338
338
|
g.Verbose, "TileIndex", g.TileIndexFieldName, None, g.TileIndexDriverTyp
|
|
339
339
|
)
|
|
340
|
+
firstTile = True
|
|
341
|
+
globalSRS = None
|
|
340
342
|
for inputTile in g.Names:
|
|
341
343
|
|
|
342
344
|
fhInputTile = gdal.Open(inputTile)
|
|
343
345
|
if fhInputTile is None:
|
|
344
346
|
return None
|
|
345
347
|
|
|
346
|
-
|
|
348
|
+
# Check the geotransform has no rotational terms.
|
|
349
|
+
gt = fhInputTile.GetGeoTransform()
|
|
350
|
+
if gt[2] != 0 or gt[4] != 0:
|
|
351
|
+
print(
|
|
352
|
+
"File %s has a geotransform matrix with rotational terms, which is not supported. You may need to use gdalwarp before."
|
|
353
|
+
% inputTile,
|
|
354
|
+
file=sys.stderr,
|
|
355
|
+
)
|
|
356
|
+
return None
|
|
357
|
+
|
|
358
|
+
# Check SRS consistency among tiles
|
|
359
|
+
srs = fhInputTile.GetSpatialRef()
|
|
360
|
+
if firstTile:
|
|
361
|
+
globalSRS = srs
|
|
362
|
+
else:
|
|
363
|
+
if globalSRS is not None and srs is None:
|
|
364
|
+
print(
|
|
365
|
+
"File %s has no SRS whether other tiles have one." % inputTile,
|
|
366
|
+
file=sys.stderr,
|
|
367
|
+
)
|
|
368
|
+
return None
|
|
369
|
+
elif globalSRS is None and srs is not None:
|
|
370
|
+
print(
|
|
371
|
+
"File %s has a SRS whether other tiles do not." % inputTile,
|
|
372
|
+
file=sys.stderr,
|
|
373
|
+
)
|
|
374
|
+
return None
|
|
375
|
+
elif (
|
|
376
|
+
globalSRS is not None and srs is not None and not globalSRS.IsSame(srs)
|
|
377
|
+
):
|
|
378
|
+
print(
|
|
379
|
+
"File %s has a SRS different from other tiles." % inputTile,
|
|
380
|
+
file=sys.stderr,
|
|
381
|
+
)
|
|
382
|
+
return None
|
|
383
|
+
|
|
384
|
+
firstTile = False
|
|
385
|
+
dec = AffineTransformDecorator(gt)
|
|
347
386
|
points = dec.pointsFor(fhInputTile.RasterXSize, fhInputTile.RasterYSize)
|
|
348
387
|
|
|
349
388
|
addFeature(
|
|
@@ -1067,7 +1067,7 @@ def WarpOptions(options=None, format=None,
|
|
|
1067
1067
|
if transformerOptions is not None:
|
|
1068
1068
|
if isinstance(transformerOptions, dict):
|
|
1069
1069
|
for k, v in transformerOptions.items():
|
|
1070
|
-
new_options += ['-to',
|
|
1070
|
+
new_options += ['-to', f'{k}={v}']
|
|
1071
1071
|
else:
|
|
1072
1072
|
for opt in transformerOptions:
|
|
1073
1073
|
new_options += ['-to', opt]
|
|
@@ -2333,15 +2333,15 @@ def Footprint(destNameOrDestDS, srcDS, **kwargs):
|
|
|
2333
2333
|
|
|
2334
2334
|
1. Special mode to get deserialized GeoJSON (in EPSG:4326 if dstSRS not specified):
|
|
2335
2335
|
|
|
2336
|
-
>>> deserialized_geojson = gdal.
|
|
2336
|
+
>>> deserialized_geojson = gdal.Footprint(None, src_ds, format="GeoJSON")
|
|
2337
2337
|
|
|
2338
2338
|
2. Special mode to get WKT:
|
|
2339
2339
|
|
|
2340
|
-
>>> wkt = gdal.
|
|
2340
|
+
>>> wkt = gdal.Footprint(None, src_ds, format="WKT")
|
|
2341
2341
|
|
|
2342
2342
|
3. Get result in a GeoPackage
|
|
2343
2343
|
|
|
2344
|
-
>>> gdal.
|
|
2344
|
+
>>> gdal.Footprint("out.gpkg", src_ds, format="GPKG")
|
|
2345
2345
|
|
|
2346
2346
|
"""
|
|
2347
2347
|
|
|
@@ -6271,13 +6271,13 @@ class MDArray(object):
|
|
|
6271
6271
|
if not buffer_datatype:
|
|
6272
6272
|
buffer_datatype = self.GetDataType()
|
|
6273
6273
|
|
|
6274
|
-
|
|
6274
|
+
is_0d_or_1d_string = self.GetDataType().GetClass() == GEDTC_STRING and buffer_datatype.GetClass() == GEDTC_STRING and dimCount <= 1
|
|
6275
6275
|
|
|
6276
6276
|
if not array_start_idx:
|
|
6277
6277
|
array_start_idx = [0] * dimCount
|
|
6278
6278
|
|
|
6279
6279
|
if not count:
|
|
6280
|
-
if
|
|
6280
|
+
if is_0d_or_1d_string:
|
|
6281
6281
|
assert type(buffer) == type([])
|
|
6282
6282
|
count = [ len(buffer) ]
|
|
6283
6283
|
else:
|
|
@@ -6296,7 +6296,7 @@ class MDArray(object):
|
|
|
6296
6296
|
stride *= cnt
|
|
6297
6297
|
buffer_stride.reverse()
|
|
6298
6298
|
|
|
6299
|
-
if
|
|
6299
|
+
if is_0d_or_1d_string:
|
|
6300
6300
|
return _gdal.MDArray_WriteStringArray(self, array_start_idx, count, array_step, buffer_datatype, buffer)
|
|
6301
6301
|
|
|
6302
6302
|
return _gdal.MDArray_Write(self, array_start_idx, count, array_step, buffer_stride, buffer_datatype, buffer)
|
|
@@ -17,7 +17,7 @@ from setuptools import setup
|
|
|
17
17
|
from setuptools import find_packages
|
|
18
18
|
from setuptools import Extension
|
|
19
19
|
|
|
20
|
-
version = '3.9.
|
|
20
|
+
version = '3.9.3'
|
|
21
21
|
|
|
22
22
|
# If CXX is defined in the environment, it will be used to link the .so
|
|
23
23
|
# but setuptools will be confused if it is made of several words like 'ccache g++'
|
|
@@ -317,6 +317,14 @@ class gdal_ext(build_ext):
|
|
|
317
317
|
# the Extension() instantiations below because we want to use the same
|
|
318
318
|
# logic to resolve the location of gdal-config throughout.
|
|
319
319
|
ext.extra_compile_args.extend(self.extra_cflags)
|
|
320
|
+
|
|
321
|
+
# Work around "swig/python detected a memory leak" bug
|
|
322
|
+
# Cf https://github.com/swig/swig/issues/2638#issuecomment-2345002698
|
|
323
|
+
if self.get_compiler() == 'msvc':
|
|
324
|
+
ext.extra_compile_args.append("/DSWIG_PYTHON_SILENT_MEMLEAK")
|
|
325
|
+
else:
|
|
326
|
+
ext.extra_compile_args.append("-DSWIG_PYTHON_SILENT_MEMLEAK")
|
|
327
|
+
|
|
320
328
|
return build_ext.build_extension(self, ext)
|
|
321
329
|
|
|
322
330
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gdal-3.9.1 → gdal-3.9.3}/gdal-utils/osgeo_utils/samples/validate_cloud_optimized_geotiff.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|