@cpp.js/package-gdal 1.0.0-beta.22 → 1.0.0
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.
- package/CHANGELOG.md +38 -0
- package/README.md +1 -1
- package/cppjs.build.js +1 -0
- package/dist/prebuilt/Android-arm64-v8a/include/gdal_version.h +3 -3
- package/dist/prebuilt/Android-arm64-v8a/include/ogr_api.h +4 -4
- package/dist/prebuilt/Android-arm64-v8a/include/ogr_feature.h +2 -2
- package/dist/prebuilt/Android-arm64-v8a/lib/cmake/gdal/GDALConfigVersion.cmake +3 -3
- package/dist/prebuilt/Android-arm64-v8a/lib/libgdal.so +0 -0
- package/dist/prebuilt/Android-arm64-v8a/lib/pkgconfig/gdal.pc +1 -1
- package/dist/prebuilt/Android-arm64-v8a/share/gdal/gdalvrt.xsd +30 -24
- package/dist/prebuilt/Android-x86_64/include/cpl_atomic_ops.h +90 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_auto_close.h +73 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_compressor.h +112 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_config.h +215 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_config_extras.h +34 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_conv.h +417 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_csv.h +71 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_error.h +344 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_hash_set.h +83 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_http.h +319 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_json.h +301 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_list.h +59 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_minixml.h +211 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_multiproc.h +241 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_port.h +1182 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_progress.h +49 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_quad_tree.h +105 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_spawn.h +60 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_string.h +863 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_time.h +29 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_virtualmem.h +365 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_vsi.h +830 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_vsi_error.h +55 -0
- package/dist/prebuilt/Android-x86_64/include/cpl_vsi_virtual.h +580 -0
- package/dist/prebuilt/Android-x86_64/include/cplkeywordparser.h +61 -0
- package/dist/prebuilt/Android-x86_64/include/gdal.h +2667 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_alg.h +717 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_alg_priv.h +386 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_csv.h +25 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_frmts.h +236 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_mdreader.h +240 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_pam.h +461 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_priv.h +4599 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_proxy.h +470 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_rat.h +390 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_simplesurf.h +579 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_utils.h +313 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_version.h +33 -0
- package/dist/prebuilt/Android-x86_64/include/gdal_vrt.h +89 -0
- package/dist/prebuilt/Android-x86_64/include/gdalcachedpixelaccessor.h +439 -0
- package/dist/prebuilt/Android-x86_64/include/gdalgeorefpamdataset.h +73 -0
- package/dist/prebuilt/Android-x86_64/include/gdalgrid.h +102 -0
- package/dist/prebuilt/Android-x86_64/include/gdalgrid_priv.h +67 -0
- package/dist/prebuilt/Android-x86_64/include/gdaljp2abstractdataset.h +61 -0
- package/dist/prebuilt/Android-x86_64/include/gdaljp2metadata.h +237 -0
- package/dist/prebuilt/Android-x86_64/include/gdalpansharpen.h +258 -0
- package/dist/prebuilt/Android-x86_64/include/gdalsubdatasetinfo.h +104 -0
- package/dist/prebuilt/Android-x86_64/include/gdalwarper.h +622 -0
- package/dist/prebuilt/Android-x86_64/include/gnm.h +750 -0
- package/dist/prebuilt/Android-x86_64/include/gnm_api.h +101 -0
- package/dist/prebuilt/Android-x86_64/include/gnmgraph.h +258 -0
- package/dist/prebuilt/Android-x86_64/include/memdataset.h +176 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_api.h +1024 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_core.h +1321 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_feature.h +1981 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_featurestyle.h +858 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_geocoding.h +46 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_geomcoordinateprecision.h +79 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_geometry.h +4346 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_p.h +324 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_recordbatch.h +125 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_spatialref.h +1007 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_srs_api.h +1088 -0
- package/dist/prebuilt/Android-x86_64/include/ogr_swq.h +529 -0
- package/dist/prebuilt/Android-x86_64/include/ogrsf_frmts.h +746 -0
- package/dist/prebuilt/Android-x86_64/include/rawdataset.h +255 -0
- package/dist/prebuilt/Android-x86_64/include/vrtdataset.h +2426 -0
- package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDAL-targets-release.cmake +19 -0
- package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDAL-targets.cmake +106 -0
- package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDALConfig.cmake +21 -0
- package/dist/prebuilt/Android-x86_64/lib/cmake/gdal/GDALConfigVersion.cmake +85 -0
- package/dist/prebuilt/Android-x86_64/lib/gdalplugins/drivers.ini +290 -0
- package/dist/prebuilt/Android-x86_64/lib/libgdal.so +0 -0
- package/dist/prebuilt/Android-x86_64/lib/pkgconfig/gdal.pc +17 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoBW.svg +138 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoColor.svg +126 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/GDALLogoGS.svg +126 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/LICENSE.TXT +467 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/MM_m_idofic.csv +321 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/cubewerx_extra.wkt +48 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/default.rsc +0 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ecw_cs.wkt +1453 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/epsg.wkt +1 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/esri_StatePlane_extra.wkt +631 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gdalicon.png +0 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gdalinfo_output.schema.json +346 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gdalmdiminfo_output.schema.json +321 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gdaltileindex.xsd +253 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gdalvrt.xsd +887 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gfs.xsd +246 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gml_registry.xml +117 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gml_registry.xsd +66 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_center.csv +251 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_process.csv +102 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_subcenter.csv +63 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_0.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_1.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_13.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_14.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_15.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_16.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_17.csv +11 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_18.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_19.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_190.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_191.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_2.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_20.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_21.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_3.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_4.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_5.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_6.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_0_7.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_0.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_1.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_191.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_2.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_3.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_10_4.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_0.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_1.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_1_2.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_0.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_1.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_20_2.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_0.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_3.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_4.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_5.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_2_6.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_0.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_1.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_2.csv +28 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_3.csv +8 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_4.csv +14 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_5.csv +11 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_3_6.csv +11 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_0.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_1.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_10.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_2.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_3.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_4.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_5.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_6.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_7.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_8.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_4_9.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_Canada.csv +5 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_HPC.csv +2 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_MRMS.csv +175 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_NCEP.csv +401 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_NDFD.csv +38 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_2_local_index.csv +7 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_4_5.csv +261 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/grib2_table_versions.csv +3 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gt_datum.csv +229 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/gt_ellips.csv +24 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/header.dxf +1124 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_BasicPropertyUnit.gfs +57 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralBoundary.gfs +60 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralParcel.gfs +81 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/inspire_cp_CadastralZoning.gfs +161 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmArea.gfs +59 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmBdry.gfs +49 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_AdmPt.gfs +59 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_BldA.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_BldL.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_Cntr.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_CommBdry.gfs +49 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_CommPt.gfs +59 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_Cstline.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_ElevPt.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_GCP.gfs +94 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_LeveeEdge.gfs +49 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RailCL.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdASL.gfs +44 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdArea.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdCompt.gfs +59 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdEdg.gfs +59 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdMgtBdry.gfs +49 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RdSgmtA.gfs +59 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_RvrMgtBdry.gfs +49 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBAPt.gfs +49 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBArea.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_SBBdry.gfs +44 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WA.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WL.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WStrA.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/jpfgdgml_WStrL.gfs +54 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/nitf_spec.xml +3290 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/nitf_spec.xsd +173 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ogrinfo_output.schema.json +528 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ogrvrt.xsd +530 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/osmconf.ini +134 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ozi_datum.csv +131 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ozi_ellips.csv +35 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/pci_datum.txt +530 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/pci_ellips.txt +129 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/pdfcomposition.xsd +705 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_ob_v1.gfs +1455 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_st_uvoh_v1.gfs +86 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_st_v1.gfs +1489 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/ruian_vf_v1.gfs +2126 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/s57agencies.csv +249 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/s57attributes.csv +484 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/s57expectedinput.csv +1008 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/s57objectclasses.csv +287 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/seed_2d.dgn +0 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/seed_3d.dgn +0 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/stateplane.csv +259 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/tms_LINZAntarticaMapTileGrid.json +190 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/tms_MapML_APSTILE.json +268 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/tms_MapML_CBMTILE.json +346 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/tms_NZTM2000.json +243 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/trailer.dxf +434 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/vdv452.xml +351 -0
- package/dist/prebuilt/Android-x86_64/share/gdal/vdv452.xsd +47 -0
- package/dist/prebuilt/Emscripten-x86_64/include/gdal_version.h +3 -3
- package/dist/prebuilt/Emscripten-x86_64/include/ogr_api.h +4 -4
- package/dist/prebuilt/Emscripten-x86_64/include/ogr_feature.h +2 -2
- package/dist/prebuilt/Emscripten-x86_64/lib/cmake/gdal/GDALConfigVersion.cmake +3 -3
- package/dist/prebuilt/Emscripten-x86_64/lib/cmake/gdal/thirdparty/FindDotnet.cmake +33 -36
- package/dist/prebuilt/Emscripten-x86_64/lib/libgdal.a +0 -0
- package/dist/prebuilt/Emscripten-x86_64/lib/pkgconfig/gdal.pc +1 -1
- package/dist/prebuilt/Emscripten-x86_64/share/gdal/gdalvrt.xsd +30 -24
- package/dist/prebuilt/iOS-iphoneos/include/gdal_version.h +3 -3
- package/dist/prebuilt/iOS-iphoneos/include/ogr_api.h +4 -4
- package/dist/prebuilt/iOS-iphoneos/include/ogr_feature.h +2 -2
- package/dist/prebuilt/iOS-iphoneos/share/gdal/gdalvrt.xsd +30 -24
- package/dist/prebuilt/iOS-iphonesimulator/include/gdal_version.h +3 -3
- package/dist/prebuilt/iOS-iphonesimulator/include/ogr_api.h +4 -4
- package/dist/prebuilt/iOS-iphonesimulator/include/ogr_feature.h +2 -2
- package/dist/prebuilt/iOS-iphonesimulator/share/gdal/gdalvrt.xsd +30 -24
- package/gdal.xcframework/ios-arm64_arm64e/Headers/gdal_version.h +3 -3
- package/gdal.xcframework/ios-arm64_arm64e/Headers/ogr_api.h +4 -4
- package/gdal.xcframework/ios-arm64_arm64e/Headers/ogr_feature.h +2 -2
- package/gdal.xcframework/ios-arm64_arm64e/libgdal.a +0 -0
- package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/gdal_version.h +3 -3
- package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/ogr_api.h +4 -4
- package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/Headers/ogr_feature.h +2 -2
- package/gdal.xcframework/ios-arm64_arm64e_x86_64-simulator/libgdal.a +0 -0
- package/package.json +13 -13
- package/dist/prebuilt/Emscripten-x86_64/lib/cmake/gdal/packages/FindDB2.cmake +0 -103
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
*
|
|
3
|
+
* Project: GDAL
|
|
4
|
+
* Purpose: Fast access to individual pixels in a GDALRasterBand
|
|
5
|
+
* Author: Even Rouault <even dot rouault at spatialys.com>
|
|
6
|
+
*
|
|
7
|
+
******************************************************************************
|
|
8
|
+
* Copyright (c) 2022, Planet Labs
|
|
9
|
+
*
|
|
10
|
+
* SPDX-License-Identifier: MIT
|
|
11
|
+
****************************************************************************/
|
|
12
|
+
|
|
13
|
+
#ifndef GDAL_CACHED_PIXEL_ACCESSOR_INCLUDED
|
|
14
|
+
#define GDAL_CACHED_PIXEL_ACCESSOR_INCLUDED
|
|
15
|
+
|
|
16
|
+
#include "gdal_priv.h"
|
|
17
|
+
#include "cpl_error.h"
|
|
18
|
+
|
|
19
|
+
#include <algorithm>
|
|
20
|
+
#include <array>
|
|
21
|
+
#include <vector>
|
|
22
|
+
|
|
23
|
+
/************************************************************************/
|
|
24
|
+
/* GDALCachedPixelAccessor */
|
|
25
|
+
/************************************************************************/
|
|
26
|
+
|
|
27
|
+
/** Class to have reasonably fast random pixel access to a raster band, when
|
|
28
|
+
* accessing multiple pixels that are close to each other.
|
|
29
|
+
*
|
|
30
|
+
* This gives faster access than using GDALRasterBand::RasterIO() with
|
|
31
|
+
* a 1x1 window.
|
|
32
|
+
*
|
|
33
|
+
* @since GDAL 3.5
|
|
34
|
+
*/
|
|
35
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT = 4>
|
|
36
|
+
class GDALCachedPixelAccessor
|
|
37
|
+
{
|
|
38
|
+
GDALRasterBand *m_poBand = nullptr;
|
|
39
|
+
|
|
40
|
+
struct CachedTile
|
|
41
|
+
{
|
|
42
|
+
std::vector<Type> m_data{};
|
|
43
|
+
int m_nTileX = -1;
|
|
44
|
+
int m_nTileY = -1;
|
|
45
|
+
bool m_bModified = false;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
int m_nCachedTileCount = 0;
|
|
49
|
+
std::array<CachedTile, CACHED_TILE_COUNT> m_aCachedTiles{};
|
|
50
|
+
|
|
51
|
+
bool LoadTile(int nTileX, int nTileY);
|
|
52
|
+
bool FlushTile(int iSlot);
|
|
53
|
+
|
|
54
|
+
Type GetSlowPath(int nTileX, int nTileY, int nXInTile, int nYInTile,
|
|
55
|
+
bool *pbSuccess);
|
|
56
|
+
bool SetSlowPath(int nTileX, int nTileY, int nXInTile, int nYInTile,
|
|
57
|
+
Type val);
|
|
58
|
+
|
|
59
|
+
GDALCachedPixelAccessor(const GDALCachedPixelAccessor &) = delete;
|
|
60
|
+
GDALCachedPixelAccessor &
|
|
61
|
+
operator=(const GDALCachedPixelAccessor &) = delete;
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
explicit GDALCachedPixelAccessor(GDALRasterBand *poBand);
|
|
65
|
+
~GDALCachedPixelAccessor();
|
|
66
|
+
|
|
67
|
+
/** Assign the raster band if not known at construction time. */
|
|
68
|
+
void SetBand(GDALRasterBand *poBand)
|
|
69
|
+
{
|
|
70
|
+
m_poBand = poBand;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
Type Get(int nX, int nY, bool *pbSuccess = nullptr);
|
|
74
|
+
bool Set(int nX, int nY, Type val);
|
|
75
|
+
|
|
76
|
+
bool FlushCache();
|
|
77
|
+
void ResetModifiedFlag();
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/************************************************************************/
|
|
81
|
+
/* GDALCachedPixelAccessor() */
|
|
82
|
+
/************************************************************************/
|
|
83
|
+
|
|
84
|
+
/** Constructor.
|
|
85
|
+
*
|
|
86
|
+
* The template accepts the following parameters:
|
|
87
|
+
* - Type: should be one of GByte, GUInt16, GInt16, GUInt32, GInt32, GUInt64,
|
|
88
|
+
* GInt64, float or double
|
|
89
|
+
* - TILE_SIZE: the tile size for the cache of GDALCachedPixelAccessor.
|
|
90
|
+
* Use a power of two for faster computation.
|
|
91
|
+
* It doesn't need to be the same of the underlying raster
|
|
92
|
+
* - CACHED_TILE_COUNT: number of tiles to cache. Should be >= 1. Defaults to 4.
|
|
93
|
+
*
|
|
94
|
+
* @param poBand Raster band.
|
|
95
|
+
*/
|
|
96
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
97
|
+
GDALCachedPixelAccessor<Type, TILE_SIZE, CACHED_TILE_COUNT>::
|
|
98
|
+
GDALCachedPixelAccessor(GDALRasterBand *poBand)
|
|
99
|
+
: m_poBand(poBand)
|
|
100
|
+
{
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/************************************************************************/
|
|
104
|
+
/* ~GDALCachedPixelAccessor() */
|
|
105
|
+
/************************************************************************/
|
|
106
|
+
|
|
107
|
+
/** Destructor.
|
|
108
|
+
*
|
|
109
|
+
* Will call FlushCache()
|
|
110
|
+
*/
|
|
111
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
112
|
+
GDALCachedPixelAccessor<Type, TILE_SIZE,
|
|
113
|
+
CACHED_TILE_COUNT>::~GDALCachedPixelAccessor()
|
|
114
|
+
{
|
|
115
|
+
FlushCache();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/************************************************************************/
|
|
119
|
+
/* Get() */
|
|
120
|
+
/************************************************************************/
|
|
121
|
+
|
|
122
|
+
/** Get the value of a pixel.
|
|
123
|
+
*
|
|
124
|
+
* No bound checking of nX, nY is done.
|
|
125
|
+
*
|
|
126
|
+
* @param nX X coordinate (between 0 and GetXSize()-1)
|
|
127
|
+
* @param nY Y coordinate (between 0 and GetYSize()-1)
|
|
128
|
+
* @param[out] pbSuccess Optional pointer to a success flag
|
|
129
|
+
* @return the pixel value
|
|
130
|
+
*/
|
|
131
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
132
|
+
inline Type GDALCachedPixelAccessor<Type, TILE_SIZE, CACHED_TILE_COUNT>::Get(
|
|
133
|
+
int nX, int nY, bool *pbSuccess)
|
|
134
|
+
{
|
|
135
|
+
const int nTileX = nX / TILE_SIZE;
|
|
136
|
+
const int nTileY = nY / TILE_SIZE;
|
|
137
|
+
const int nXInTile = nX % TILE_SIZE;
|
|
138
|
+
const int nYInTile = nY % TILE_SIZE;
|
|
139
|
+
if (m_aCachedTiles[0].m_nTileX == nTileX &&
|
|
140
|
+
m_aCachedTiles[0].m_nTileY == nTileY)
|
|
141
|
+
{
|
|
142
|
+
if (pbSuccess)
|
|
143
|
+
*pbSuccess = true;
|
|
144
|
+
return m_aCachedTiles[0].m_data[nYInTile * TILE_SIZE + nXInTile];
|
|
145
|
+
}
|
|
146
|
+
return GetSlowPath(nTileX, nTileY, nXInTile, nYInTile, pbSuccess);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/************************************************************************/
|
|
150
|
+
/* GetSlowPath() */
|
|
151
|
+
/************************************************************************/
|
|
152
|
+
|
|
153
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
154
|
+
Type GDALCachedPixelAccessor<Type, TILE_SIZE, CACHED_TILE_COUNT>::GetSlowPath(
|
|
155
|
+
int nTileX, int nTileY, int nXInTile, int nYInTile, bool *pbSuccess)
|
|
156
|
+
{
|
|
157
|
+
for (int i = 1; i < m_nCachedTileCount; ++i)
|
|
158
|
+
{
|
|
159
|
+
const auto &cachedTile = m_aCachedTiles[i];
|
|
160
|
+
if (cachedTile.m_nTileX == nTileX && cachedTile.m_nTileY == nTileY)
|
|
161
|
+
{
|
|
162
|
+
const auto ret = cachedTile.m_data[nYInTile * TILE_SIZE + nXInTile];
|
|
163
|
+
CachedTile tmp = std::move(m_aCachedTiles[i]);
|
|
164
|
+
for (int j = i; j >= 1; --j)
|
|
165
|
+
m_aCachedTiles[j] = std::move(m_aCachedTiles[j - 1]);
|
|
166
|
+
m_aCachedTiles[0] = std::move(tmp);
|
|
167
|
+
if (pbSuccess)
|
|
168
|
+
*pbSuccess = true;
|
|
169
|
+
return ret;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (!LoadTile(nTileX, nTileY))
|
|
173
|
+
{
|
|
174
|
+
if (pbSuccess)
|
|
175
|
+
*pbSuccess = false;
|
|
176
|
+
return 0;
|
|
177
|
+
}
|
|
178
|
+
if (pbSuccess)
|
|
179
|
+
*pbSuccess = true;
|
|
180
|
+
return m_aCachedTiles[0].m_data[nYInTile * TILE_SIZE + nXInTile];
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/************************************************************************/
|
|
184
|
+
/* Set() */
|
|
185
|
+
/************************************************************************/
|
|
186
|
+
|
|
187
|
+
/** Set the value of a pixel.
|
|
188
|
+
*
|
|
189
|
+
* The actual modification of the underlying raster is deferred until the tile
|
|
190
|
+
* is implicit flushed while loading a new tile, or an explicit call to
|
|
191
|
+
* FlushCache().
|
|
192
|
+
*
|
|
193
|
+
* The destructor of GDALCachedPixelAccessor will take care of calling
|
|
194
|
+
* FlushCache(), if the user hasn't done it explicitly.
|
|
195
|
+
*
|
|
196
|
+
* No bound checking of nX, nY is done.
|
|
197
|
+
*
|
|
198
|
+
* @param nX X coordinate (between 0 and GetXSize()-1)
|
|
199
|
+
* @param nY Y coordinate (between 0 and GetYSize()-1)
|
|
200
|
+
* @param val pixel value
|
|
201
|
+
* @return true if success
|
|
202
|
+
*/
|
|
203
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
204
|
+
inline bool
|
|
205
|
+
GDALCachedPixelAccessor<Type, TILE_SIZE, CACHED_TILE_COUNT>::Set(int nX, int nY,
|
|
206
|
+
Type val)
|
|
207
|
+
{
|
|
208
|
+
const int nTileX = nX / TILE_SIZE;
|
|
209
|
+
const int nTileY = nY / TILE_SIZE;
|
|
210
|
+
const int nXInTile = nX % TILE_SIZE;
|
|
211
|
+
const int nYInTile = nY % TILE_SIZE;
|
|
212
|
+
if (m_aCachedTiles[0].m_nTileX == nTileX &&
|
|
213
|
+
m_aCachedTiles[0].m_nTileY == nTileY)
|
|
214
|
+
{
|
|
215
|
+
m_aCachedTiles[0].m_data[nYInTile * TILE_SIZE + nXInTile] = val;
|
|
216
|
+
m_aCachedTiles[0].m_bModified = true;
|
|
217
|
+
return true;
|
|
218
|
+
}
|
|
219
|
+
return SetSlowPath(nTileX, nTileY, nXInTile, nYInTile, val);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/************************************************************************/
|
|
223
|
+
/* SetSlowPath() */
|
|
224
|
+
/************************************************************************/
|
|
225
|
+
|
|
226
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
227
|
+
bool GDALCachedPixelAccessor<Type, TILE_SIZE, CACHED_TILE_COUNT>::SetSlowPath(
|
|
228
|
+
int nTileX, int nTileY, int nXInTile, int nYInTile, Type val)
|
|
229
|
+
{
|
|
230
|
+
for (int i = 1; i < m_nCachedTileCount; ++i)
|
|
231
|
+
{
|
|
232
|
+
auto &cachedTile = m_aCachedTiles[i];
|
|
233
|
+
if (cachedTile.m_nTileX == nTileX && cachedTile.m_nTileY == nTileY)
|
|
234
|
+
{
|
|
235
|
+
cachedTile.m_data[nYInTile * TILE_SIZE + nXInTile] = val;
|
|
236
|
+
cachedTile.m_bModified = true;
|
|
237
|
+
if (i > 0)
|
|
238
|
+
{
|
|
239
|
+
CachedTile tmp = std::move(m_aCachedTiles[i]);
|
|
240
|
+
for (int j = i; j >= 1; --j)
|
|
241
|
+
m_aCachedTiles[j] = std::move(m_aCachedTiles[j - 1]);
|
|
242
|
+
m_aCachedTiles[0] = std::move(tmp);
|
|
243
|
+
}
|
|
244
|
+
return true;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
if (!LoadTile(nTileX, nTileY))
|
|
248
|
+
{
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
m_aCachedTiles[0].m_data[nYInTile * TILE_SIZE + nXInTile] = val;
|
|
252
|
+
m_aCachedTiles[0].m_bModified = true;
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/************************************************************************/
|
|
257
|
+
/* FlushCache() */
|
|
258
|
+
/************************************************************************/
|
|
259
|
+
|
|
260
|
+
/** Flush content of modified tiles and drop caches
|
|
261
|
+
*
|
|
262
|
+
* @return true if success
|
|
263
|
+
*/
|
|
264
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
265
|
+
bool GDALCachedPixelAccessor<Type, TILE_SIZE, CACHED_TILE_COUNT>::FlushCache()
|
|
266
|
+
{
|
|
267
|
+
bool bRet = true;
|
|
268
|
+
for (int i = 0; i < m_nCachedTileCount; ++i)
|
|
269
|
+
{
|
|
270
|
+
if (!FlushTile(i))
|
|
271
|
+
bRet = false;
|
|
272
|
+
m_aCachedTiles[i].m_nTileX = -1;
|
|
273
|
+
m_aCachedTiles[i].m_nTileY = -1;
|
|
274
|
+
}
|
|
275
|
+
return bRet;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/************************************************************************/
|
|
279
|
+
/* ResetModifiedFlag() */
|
|
280
|
+
/************************************************************************/
|
|
281
|
+
|
|
282
|
+
/** Reset the modified flag for cached tiles.
|
|
283
|
+
*/
|
|
284
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
285
|
+
void GDALCachedPixelAccessor<Type, TILE_SIZE,
|
|
286
|
+
CACHED_TILE_COUNT>::ResetModifiedFlag()
|
|
287
|
+
{
|
|
288
|
+
for (int i = 0; i < m_nCachedTileCount; ++i)
|
|
289
|
+
{
|
|
290
|
+
m_aCachedTiles[i].m_bModified = false;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/************************************************************************/
|
|
295
|
+
/* GDALCachedPixelAccessorGetDataType */
|
|
296
|
+
/************************************************************************/
|
|
297
|
+
|
|
298
|
+
/*! @cond Doxygen_Suppress */
|
|
299
|
+
template <class T> struct GDALCachedPixelAccessorGetDataType
|
|
300
|
+
{
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
template <> struct GDALCachedPixelAccessorGetDataType<GByte>
|
|
304
|
+
{
|
|
305
|
+
static constexpr GDALDataType DataType = GDT_Byte;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
template <> struct GDALCachedPixelAccessorGetDataType<GInt8>
|
|
309
|
+
{
|
|
310
|
+
static constexpr GDALDataType DataType = GDT_Int8;
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
template <> struct GDALCachedPixelAccessorGetDataType<GUInt16>
|
|
314
|
+
{
|
|
315
|
+
static constexpr GDALDataType DataType = GDT_UInt16;
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
template <> struct GDALCachedPixelAccessorGetDataType<GInt16>
|
|
319
|
+
{
|
|
320
|
+
static constexpr GDALDataType DataType = GDT_Int16;
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
template <> struct GDALCachedPixelAccessorGetDataType<GUInt32>
|
|
324
|
+
{
|
|
325
|
+
static constexpr GDALDataType DataType = GDT_UInt32;
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
template <> struct GDALCachedPixelAccessorGetDataType<GInt32>
|
|
329
|
+
{
|
|
330
|
+
static constexpr GDALDataType DataType = GDT_Int32;
|
|
331
|
+
};
|
|
332
|
+
#if SIZEOF_UNSIGNED_LONG == 8
|
|
333
|
+
// std::uint64_t on Linux 64-bit resolves as unsigned long
|
|
334
|
+
template <> struct GDALCachedPixelAccessorGetDataType<unsigned long>
|
|
335
|
+
{
|
|
336
|
+
static constexpr GDALDataType DataType = GDT_UInt64;
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
template <> struct GDALCachedPixelAccessorGetDataType<long>
|
|
340
|
+
{
|
|
341
|
+
static constexpr GDALDataType DataType = GDT_Int64;
|
|
342
|
+
};
|
|
343
|
+
#endif
|
|
344
|
+
template <> struct GDALCachedPixelAccessorGetDataType<GUInt64>
|
|
345
|
+
{
|
|
346
|
+
static constexpr GDALDataType DataType = GDT_UInt64;
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
template <> struct GDALCachedPixelAccessorGetDataType<GInt64>
|
|
350
|
+
{
|
|
351
|
+
static constexpr GDALDataType DataType = GDT_Int64;
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
template <> struct GDALCachedPixelAccessorGetDataType<float>
|
|
355
|
+
{
|
|
356
|
+
static constexpr GDALDataType DataType = GDT_Float32;
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
template <> struct GDALCachedPixelAccessorGetDataType<double>
|
|
360
|
+
{
|
|
361
|
+
static constexpr GDALDataType DataType = GDT_Float64;
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
/*! @endcond */
|
|
365
|
+
|
|
366
|
+
/************************************************************************/
|
|
367
|
+
/* LoadTile() */
|
|
368
|
+
/************************************************************************/
|
|
369
|
+
|
|
370
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
371
|
+
bool GDALCachedPixelAccessor<Type, TILE_SIZE, CACHED_TILE_COUNT>::LoadTile(
|
|
372
|
+
int nTileX, int nTileY)
|
|
373
|
+
{
|
|
374
|
+
if (m_nCachedTileCount == CACHED_TILE_COUNT)
|
|
375
|
+
{
|
|
376
|
+
if (!FlushTile(CACHED_TILE_COUNT - 1))
|
|
377
|
+
return false;
|
|
378
|
+
CachedTile tmp = std::move(m_aCachedTiles[CACHED_TILE_COUNT - 1]);
|
|
379
|
+
for (int i = CACHED_TILE_COUNT - 1; i >= 1; --i)
|
|
380
|
+
m_aCachedTiles[i] = std::move(m_aCachedTiles[i - 1]);
|
|
381
|
+
m_aCachedTiles[0] = std::move(tmp);
|
|
382
|
+
}
|
|
383
|
+
else
|
|
384
|
+
{
|
|
385
|
+
if (m_nCachedTileCount > 0)
|
|
386
|
+
std::swap(m_aCachedTiles[0], m_aCachedTiles[m_nCachedTileCount]);
|
|
387
|
+
m_aCachedTiles[0].m_data.resize(TILE_SIZE * TILE_SIZE);
|
|
388
|
+
m_nCachedTileCount++;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
#if 0
|
|
392
|
+
CPLDebug("GDAL", "Load tile(%d, %d) of band %d of dataset %s",
|
|
393
|
+
nTileX, nTileY, m_poBand->GetBand(),
|
|
394
|
+
m_poBand->GetDataset() ? m_poBand->GetDataset()->GetDescription() : "(unknown)");
|
|
395
|
+
#endif
|
|
396
|
+
CPLAssert(!m_aCachedTiles[0].m_bModified);
|
|
397
|
+
const int nXOff = nTileX * TILE_SIZE;
|
|
398
|
+
const int nYOff = nTileY * TILE_SIZE;
|
|
399
|
+
const int nReqXSize = std::min(m_poBand->GetXSize() - nXOff, TILE_SIZE);
|
|
400
|
+
const int nReqYSize = std::min(m_poBand->GetYSize() - nYOff, TILE_SIZE);
|
|
401
|
+
if (m_poBand->RasterIO(
|
|
402
|
+
GF_Read, nXOff, nYOff, nReqXSize, nReqYSize,
|
|
403
|
+
m_aCachedTiles[0].m_data.data(), nReqXSize, nReqYSize,
|
|
404
|
+
GDALCachedPixelAccessorGetDataType<Type>::DataType, sizeof(Type),
|
|
405
|
+
TILE_SIZE * sizeof(Type), nullptr) != CE_None)
|
|
406
|
+
{
|
|
407
|
+
m_aCachedTiles[0].m_nTileX = -1;
|
|
408
|
+
m_aCachedTiles[0].m_nTileY = -1;
|
|
409
|
+
return false;
|
|
410
|
+
}
|
|
411
|
+
m_aCachedTiles[0].m_nTileX = nTileX;
|
|
412
|
+
m_aCachedTiles[0].m_nTileY = nTileY;
|
|
413
|
+
return true;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/************************************************************************/
|
|
417
|
+
/* FlushTile() */
|
|
418
|
+
/************************************************************************/
|
|
419
|
+
|
|
420
|
+
template <class Type, int TILE_SIZE, int CACHED_TILE_COUNT>
|
|
421
|
+
bool GDALCachedPixelAccessor<Type, TILE_SIZE, CACHED_TILE_COUNT>::FlushTile(
|
|
422
|
+
int iSlot)
|
|
423
|
+
{
|
|
424
|
+
if (!m_aCachedTiles[iSlot].m_bModified)
|
|
425
|
+
return true;
|
|
426
|
+
|
|
427
|
+
m_aCachedTiles[iSlot].m_bModified = false;
|
|
428
|
+
const int nXOff = m_aCachedTiles[iSlot].m_nTileX * TILE_SIZE;
|
|
429
|
+
const int nYOff = m_aCachedTiles[iSlot].m_nTileY * TILE_SIZE;
|
|
430
|
+
const int nReqXSize = std::min(m_poBand->GetXSize() - nXOff, TILE_SIZE);
|
|
431
|
+
const int nReqYSize = std::min(m_poBand->GetYSize() - nYOff, TILE_SIZE);
|
|
432
|
+
return m_poBand->RasterIO(
|
|
433
|
+
GF_Write, nXOff, nYOff, nReqXSize, nReqYSize,
|
|
434
|
+
m_aCachedTiles[iSlot].m_data.data(), nReqXSize, nReqYSize,
|
|
435
|
+
GDALCachedPixelAccessorGetDataType<Type>::DataType, sizeof(Type),
|
|
436
|
+
TILE_SIZE * sizeof(Type), nullptr) == CE_None;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
#endif // GDAL_PIXEL_ACCESSOR_INCLUDED
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
* $Id$
|
|
3
|
+
*
|
|
4
|
+
* Project: GDAL
|
|
5
|
+
* Purpose: GDALPamDataset with internal storage for georeferencing, with
|
|
6
|
+
* priority for PAM over internal georeferencing
|
|
7
|
+
* Author: Even Rouault <even dot rouault at spatialys.com>
|
|
8
|
+
*
|
|
9
|
+
******************************************************************************
|
|
10
|
+
* Copyright (c) 2013, Even Rouault <even dot rouault at spatialys.com>
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: MIT
|
|
13
|
+
****************************************************************************/
|
|
14
|
+
|
|
15
|
+
#ifndef GDAL_GEOREF_PAM_DATASET_H_INCLUDED
|
|
16
|
+
#define GDAL_GEOREF_PAM_DATASET_H_INCLUDED
|
|
17
|
+
|
|
18
|
+
#ifndef DOXYGEN_SKIP
|
|
19
|
+
|
|
20
|
+
#include "gdal_pam.h"
|
|
21
|
+
|
|
22
|
+
class CPL_DLL GDALGeorefPamDataset : public GDALPamDataset
|
|
23
|
+
{
|
|
24
|
+
protected:
|
|
25
|
+
bool bGeoTransformValid;
|
|
26
|
+
double adfGeoTransform[6];
|
|
27
|
+
OGRSpatialReference m_oSRS{};
|
|
28
|
+
int nGCPCount;
|
|
29
|
+
GDAL_GCP *pasGCPList;
|
|
30
|
+
char **m_papszRPC;
|
|
31
|
+
bool m_bPixelIsPoint;
|
|
32
|
+
|
|
33
|
+
int m_nGeoTransformGeorefSrcIndex;
|
|
34
|
+
int m_nGCPGeorefSrcIndex;
|
|
35
|
+
int m_nProjectionGeorefSrcIndex;
|
|
36
|
+
int m_nRPCGeorefSrcIndex;
|
|
37
|
+
int m_nPixelIsPointGeorefSrcIndex;
|
|
38
|
+
|
|
39
|
+
int GetPAMGeorefSrcIndex() const;
|
|
40
|
+
mutable bool m_bGotPAMGeorefSrcIndex;
|
|
41
|
+
mutable int m_nPAMGeorefSrcIndex;
|
|
42
|
+
|
|
43
|
+
bool m_bPAMLoaded;
|
|
44
|
+
char **m_papszMainMD;
|
|
45
|
+
|
|
46
|
+
CPL_DISALLOW_COPY_ASSIGN(GDALGeorefPamDataset)
|
|
47
|
+
|
|
48
|
+
public:
|
|
49
|
+
GDALGeorefPamDataset();
|
|
50
|
+
~GDALGeorefPamDataset() override;
|
|
51
|
+
|
|
52
|
+
CPLErr TryLoadXML(CSLConstList papszSiblingFiles = nullptr) override;
|
|
53
|
+
|
|
54
|
+
CPLErr GetGeoTransform(double *) override;
|
|
55
|
+
|
|
56
|
+
const OGRSpatialReference *GetSpatialRef() const override;
|
|
57
|
+
|
|
58
|
+
int GetGCPCount() override;
|
|
59
|
+
const OGRSpatialReference *GetGCPSpatialRef() const override;
|
|
60
|
+
const GDAL_GCP *GetGCPs() override;
|
|
61
|
+
|
|
62
|
+
char **GetMetadata(const char *pszDomain = "") override;
|
|
63
|
+
const char *GetMetadataItem(const char *pszName,
|
|
64
|
+
const char *pszDomain = "") override;
|
|
65
|
+
CPLErr SetMetadata(char **papszMetadata,
|
|
66
|
+
const char *pszDomain = "") override;
|
|
67
|
+
CPLErr SetMetadataItem(const char *pszName, const char *pszValue,
|
|
68
|
+
const char *pszDomain = "") override;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
#endif /* #ifndef DOXYGEN_SKIP */
|
|
72
|
+
|
|
73
|
+
#endif /* GDAL_GEOREF_PAM_DATASET_H_INCLUDED */
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
* $Id$
|
|
3
|
+
*
|
|
4
|
+
* Project: GDAL Gridding API.
|
|
5
|
+
* Purpose: Prototypes, and definitions for of GDAL scattered data gridder.
|
|
6
|
+
* Author: Andrey Kiselev, dron@ak4719.spb.edu
|
|
7
|
+
*
|
|
8
|
+
******************************************************************************
|
|
9
|
+
* Copyright (c) 2007, Andrey Kiselev <dron@ak4719.spb.edu>
|
|
10
|
+
* Copyright (c) 2012, Even Rouault <even dot rouault at spatialys.com>
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: MIT
|
|
13
|
+
****************************************************************************/
|
|
14
|
+
|
|
15
|
+
#ifndef GDALGRID_H_INCLUDED
|
|
16
|
+
#define GDALGRID_H_INCLUDED
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* \file gdalgrid.h
|
|
20
|
+
*
|
|
21
|
+
* GDAL gridder related entry points and definitions.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#include "gdal_alg.h"
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* GridCreate Algorithm names
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
static const char szAlgNameInvDist[] = "invdist";
|
|
31
|
+
static const char szAlgNameInvDistNearestNeighbor[] = "invdistnn";
|
|
32
|
+
static const char szAlgNameAverage[] = "average";
|
|
33
|
+
static const char szAlgNameNearest[] = "nearest";
|
|
34
|
+
static const char szAlgNameMinimum[] = "minimum";
|
|
35
|
+
static const char szAlgNameMaximum[] = "maximum";
|
|
36
|
+
static const char szAlgNameRange[] = "range";
|
|
37
|
+
static const char szAlgNameCount[] = "count";
|
|
38
|
+
static const char szAlgNameAverageDistance[] = "average_distance";
|
|
39
|
+
static const char szAlgNameAverageDistancePts[] = "average_distance_pts";
|
|
40
|
+
static const char szAlgNameLinear[] = "linear";
|
|
41
|
+
|
|
42
|
+
CPL_C_START
|
|
43
|
+
|
|
44
|
+
/*! @cond Doxygen_Suppress */
|
|
45
|
+
typedef CPLErr (*GDALGridFunction)(const void *, GUInt32, const double *,
|
|
46
|
+
const double *, const double *, double,
|
|
47
|
+
double, double *, void *);
|
|
48
|
+
/*! @endcond */
|
|
49
|
+
|
|
50
|
+
CPLErr GDALGridInverseDistanceToAPower(const void *, GUInt32, const double *,
|
|
51
|
+
const double *, const double *, double,
|
|
52
|
+
double, double *, void *);
|
|
53
|
+
CPLErr GDALGridInverseDistanceToAPowerNearestNeighbor(const void *, GUInt32,
|
|
54
|
+
const double *,
|
|
55
|
+
const double *,
|
|
56
|
+
const double *, double,
|
|
57
|
+
double, double *, void *);
|
|
58
|
+
CPLErr GDALGridInverseDistanceToAPowerNoSearch(const void *, GUInt32,
|
|
59
|
+
const double *, const double *,
|
|
60
|
+
const double *, double, double,
|
|
61
|
+
double *, void *);
|
|
62
|
+
CPLErr GDALGridMovingAverage(const void *, GUInt32, const double *,
|
|
63
|
+
const double *, const double *, double, double,
|
|
64
|
+
double *, void *);
|
|
65
|
+
CPLErr GDALGridNearestNeighbor(const void *, GUInt32, const double *,
|
|
66
|
+
const double *, const double *, double, double,
|
|
67
|
+
double *, void *);
|
|
68
|
+
CPLErr GDALGridDataMetricMinimum(const void *, GUInt32, const double *,
|
|
69
|
+
const double *, const double *, double, double,
|
|
70
|
+
double *, void *);
|
|
71
|
+
CPLErr GDALGridDataMetricMaximum(const void *, GUInt32, const double *,
|
|
72
|
+
const double *, const double *, double, double,
|
|
73
|
+
double *, void *);
|
|
74
|
+
CPLErr GDALGridDataMetricRange(const void *, GUInt32, const double *,
|
|
75
|
+
const double *, const double *, double, double,
|
|
76
|
+
double *, void *);
|
|
77
|
+
CPLErr GDALGridDataMetricCount(const void *, GUInt32, const double *,
|
|
78
|
+
const double *, const double *, double, double,
|
|
79
|
+
double *, void *);
|
|
80
|
+
CPLErr GDALGridDataMetricAverageDistance(const void *, GUInt32, const double *,
|
|
81
|
+
const double *, const double *, double,
|
|
82
|
+
double, double *, void *);
|
|
83
|
+
CPLErr GDALGridDataMetricAverageDistancePts(const void *, GUInt32,
|
|
84
|
+
const double *, const double *,
|
|
85
|
+
const double *, double, double,
|
|
86
|
+
double *, void *);
|
|
87
|
+
CPLErr GDALGridLinear(const void *, GUInt32, const double *, const double *,
|
|
88
|
+
const double *, double, double, double *, void *);
|
|
89
|
+
|
|
90
|
+
#ifndef GDAL_COMPILATION
|
|
91
|
+
/* ParseAlgorithmAndOptions() is used by PostGIS Raster, hence this alias */
|
|
92
|
+
|
|
93
|
+
/** Compatibility deprecated alias for GDALGridParseAlgorithmAndOptions() */
|
|
94
|
+
#define ParseAlgorithmAndOptions GDALGridParseAlgorithmAndOptions
|
|
95
|
+
#endif
|
|
96
|
+
|
|
97
|
+
CPLErr CPL_DLL GDALGridParseAlgorithmAndOptions(const char *,
|
|
98
|
+
GDALGridAlgorithm *, void **);
|
|
99
|
+
|
|
100
|
+
CPL_C_END
|
|
101
|
+
|
|
102
|
+
#endif /* GDALGRID_H_INCLUDED */
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
* $Id$
|
|
3
|
+
*
|
|
4
|
+
* Project: GDAL Gridding API.
|
|
5
|
+
* Purpose: Prototypes, and definitions for of GDAL scattered data gridder.
|
|
6
|
+
* Author: Even Rouault, <even dot rouault at spatialys.com>
|
|
7
|
+
*
|
|
8
|
+
******************************************************************************
|
|
9
|
+
* Copyright (c) 2013, Even Rouault <even dot rouault at spatialys.com>
|
|
10
|
+
*
|
|
11
|
+
* SPDX-License-Identifier: MIT
|
|
12
|
+
****************************************************************************/
|
|
13
|
+
|
|
14
|
+
#ifndef GDALGRID_PRIV_H
|
|
15
|
+
#define GDALGRID_PRIV_H
|
|
16
|
+
|
|
17
|
+
#include "cpl_error.h"
|
|
18
|
+
#include "cpl_quad_tree.h"
|
|
19
|
+
|
|
20
|
+
#include "gdal_alg.h"
|
|
21
|
+
|
|
22
|
+
//! @cond Doxygen_Suppress
|
|
23
|
+
|
|
24
|
+
typedef struct
|
|
25
|
+
{
|
|
26
|
+
const double *padfX;
|
|
27
|
+
const double *padfY;
|
|
28
|
+
} GDALGridXYArrays;
|
|
29
|
+
|
|
30
|
+
typedef struct
|
|
31
|
+
{
|
|
32
|
+
GDALGridXYArrays *psXYArrays;
|
|
33
|
+
int i;
|
|
34
|
+
} GDALGridPoint;
|
|
35
|
+
|
|
36
|
+
typedef struct
|
|
37
|
+
{
|
|
38
|
+
CPLQuadTree *hQuadTree;
|
|
39
|
+
double dfInitialSearchRadius;
|
|
40
|
+
float *pafX; // Aligned to be usable with AVX
|
|
41
|
+
float *pafY;
|
|
42
|
+
float *pafZ;
|
|
43
|
+
GDALTriangulation *psTriangulation;
|
|
44
|
+
int nInitialFacetIdx;
|
|
45
|
+
/*! Weighting power divided by 2 (pre-computation). */
|
|
46
|
+
double dfPowerDiv2PreComp;
|
|
47
|
+
/*! The radius of search circle squared (pre-computation). */
|
|
48
|
+
double dfRadiusPower2PreComp;
|
|
49
|
+
} GDALGridExtraParameters;
|
|
50
|
+
|
|
51
|
+
#ifdef HAVE_SSE_AT_COMPILE_TIME
|
|
52
|
+
CPLErr GDALGridInverseDistanceToAPower2NoSmoothingNoSearchSSE(
|
|
53
|
+
const void *poOptions, GUInt32 nPoints, const double *unused_padfX,
|
|
54
|
+
const double *unused_padfY, const double *unused_padfZ, double dfXPoint,
|
|
55
|
+
double dfYPoint, double *pdfValue, void *hExtraParamsIn);
|
|
56
|
+
#endif
|
|
57
|
+
|
|
58
|
+
#ifdef HAVE_AVX_AT_COMPILE_TIME
|
|
59
|
+
CPLErr GDALGridInverseDistanceToAPower2NoSmoothingNoSearchAVX(
|
|
60
|
+
const void *poOptions, GUInt32 nPoints, const double *unused_padfX,
|
|
61
|
+
const double *unused_padfY, const double *unused_padfZ, double dfXPoint,
|
|
62
|
+
double dfYPoint, double *pdfValue, void *hExtraParamsIn);
|
|
63
|
+
#endif
|
|
64
|
+
|
|
65
|
+
//! @endcond
|
|
66
|
+
|
|
67
|
+
#endif // GDALGRID_PRIV_H
|