diff --git a/BuildTools/CommonDistFiles/osx/proj/CH b/BuildTools/CommonDistFiles/osx/proj/CH index af77ae48f..794d5b94e 100644 --- a/BuildTools/CommonDistFiles/osx/proj/CH +++ b/BuildTools/CommonDistFiles/osx/proj/CH @@ -18,6 +18,6 @@ # +origin=Swisstopo +lastupdate=2012-02-27 # CH1903/LV03 -<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENYX06_etrs.gsb +no_defs +<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENyx06_ETRS.gsb +no_defs # CH1903 -<1903> +proj=longlat +ellps=bessel +nadgrids=CHENYX06_etrs.gsb +no_defs <> +<1903> +proj=longlat +ellps=bessel +nadgrids=CHENyx06_ETRS.gsb +no_defs <> diff --git a/BuildTools/CommonDistFiles/osx/proj/proj.db b/BuildTools/CommonDistFiles/osx/proj/proj.db index 9432be53d..a6055469e 100644 Binary files a/BuildTools/CommonDistFiles/osx/proj/proj.db and b/BuildTools/CommonDistFiles/osx/proj/proj.db differ diff --git a/BuildTools/CommonDistFiles/osx/proj/projjson.schema.json b/BuildTools/CommonDistFiles/osx/proj/projjson.schema.json index bdb97bd5c..6ed97b7bc 100644 --- a/BuildTools/CommonDistFiles/osx/proj/projjson.schema.json +++ b/BuildTools/CommonDistFiles/osx/proj/projjson.schema.json @@ -1,7 +1,7 @@ { - "$id": "https://proj.org/schemas/v0.2/projjson.schema.json", + "$id": "https://proj.org/schemas/v0.4/projjson.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", - "description": "Schema for PROJJSON (v0.2.1)", + "description": "Schema for PROJJSON (v0.4)", "$comment": "This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_CURRENT_VERSION accordingly in io.cpp", "oneOf": [ @@ -111,12 +111,20 @@ "bound_crs": { "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], "properties": { "$schema" : { "type": "string" }, "type": { "type": "string", "enum": ["BoundCRS"] }, + "name": { "type": "string" }, "source_crs": { "$ref": "#/definitions/crs" }, "target_crs": { "$ref": "#/definitions/crs" }, - "transformation": { "$ref": "#/definitions/abridged_transformation" } + "transformation": { "$ref": "#/definitions/abridged_transformation" }, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} }, "required" : [ "source_crs", "target_crs", "transformation" ], "additionalProperties": false @@ -604,7 +612,12 @@ "authority": { "type": "string" }, "code": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] - } + }, + "version": { + "oneOf": [ { "type": "string" }, { "type": "number" } ] + }, + "authority_citation": { "type": "string" }, + "uri": { "type": "string" } }, "required" : [ "authority", "code" ], "additionalProperties": false diff --git a/BuildTools/CommonDistFiles/osx/proj/triangulation.schema.json b/BuildTools/CommonDistFiles/osx/proj/triangulation.schema.json index d3f8004d5..8203f5d91 100644 --- a/BuildTools/CommonDistFiles/osx/proj/triangulation.schema.json +++ b/BuildTools/CommonDistFiles/osx/proj/triangulation.schema.json @@ -13,7 +13,7 @@ "format_version": { "type": "string", "enum": [ - "1.0" + "1.0", "1.1" ] }, "name": { @@ -28,6 +28,14 @@ "$ref": "#/definitions/datetime", "description": "The date on which this version of the triangulation was published (or possibly the date on which it takes effect?)" }, + "fallback_strategy": { + "type": "string", + "enum": [ + "none", + "nearest_side", + "nearest_centroid" + ] + }, "license": { "type": "string", "description": "License under which the file is published" diff --git a/BuildTools/CommonDistFiles/proj/BETA2007.gsb b/BuildTools/CommonDistFiles/proj/BETA2007.gsb deleted file mode 100644 index 69cd33461..000000000 Binary files a/BuildTools/CommonDistFiles/proj/BETA2007.gsb and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/CH b/BuildTools/CommonDistFiles/proj/CH index af77ae48f..794d5b94e 100644 --- a/BuildTools/CommonDistFiles/proj/CH +++ b/BuildTools/CommonDistFiles/proj/CH @@ -18,6 +18,6 @@ # +origin=Swisstopo +lastupdate=2012-02-27 # CH1903/LV03 -<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENYX06_etrs.gsb +no_defs +<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENyx06_ETRS.gsb +no_defs # CH1903 -<1903> +proj=longlat +ellps=bessel +nadgrids=CHENYX06_etrs.gsb +no_defs <> +<1903> +proj=longlat +ellps=bessel +nadgrids=CHENyx06_ETRS.gsb +no_defs <> diff --git a/BuildTools/CommonDistFiles/proj/FL b/BuildTools/CommonDistFiles/proj/FL deleted file mode 100644 index d00abd35f..000000000 Binary files a/BuildTools/CommonDistFiles/proj/FL and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/ITRF2014 b/BuildTools/CommonDistFiles/proj/ITRF2014 index 557ce60a3..26c2cefff 100644 --- a/BuildTools/CommonDistFiles/proj/ITRF2014 +++ b/BuildTools/CommonDistFiles/proj/ITRF2014 @@ -32,24 +32,24 @@ # Z. Altamimi et al, 2017, ITRF2014 plate motion model, # doi: 10.1093/gji/ggx136 - +proj=helmert +drx=−0.000248 +dry=−0.000324 +drz=0.000675 +convention=position_vector + +proj=helmert +drx=-0.000248 +dry=-0.000324 +drz=0.000675 +convention=position_vector - +proj=helmert +drx=0.001154 +dry=−0.000136 +drz=0.001444 +convention=position_vector + +proj=helmert +drx=0.001154 +dry=-0.000136 +drz=0.001444 +convention=position_vector +proj=helmert +drx=0.001510 +dry=0.001182 +drz=0.001215 +convention=position_vector - +proj=helmert +drx=−0.000085 +dry=−0.000531 +drz=0.000770 +convention=position_vector + +proj=helmert +drx=-0.000085 +dry=-0.000531 +drz=0.000770 +convention=position_vector - +proj=helmert +drx=0.001154 +dry=−0.000005 +drz=0.001454 +convention=position_vector + +proj=helmert +drx=0.001154 +dry=-0.000005 +drz=0.001454 +convention=position_vector - +proj=helmert +drx=−0.000333 +dry=−0.001544 +drz=0.001623 +convention=position_vector + +proj=helmert +drx=-0.000333 +dry=-0.001544 +drz=0.001623 +convention=position_vector +proj=helmert +drx=0.000024 +dry=-0.000694 +drz=-0.000063 +convention=position_vector - +proj=helmert +drx=0.000099 +dry=−0.000614 +drz=0.000733 +convention=position_vector + +proj=helmert +drx=0.000099 +dry=-0.000614 +drz=0.000733 +convention=position_vector - +proj=helmert +drx=−0.000409 +dry=0.001047 +drz=-0.002169 +convention=position_vector + +proj=helmert +drx=-0.000409 +dry=0.001047 +drz=-0.002169 +convention=position_vector - +proj=helmert +drx=−0.000270 +dry=−0.000301 +drz=−0.000140 +convention=position_vector + +proj=helmert +drx=-0.000270 +dry=-0.000301 +drz=-0.000140 +convention=position_vector - +proj=helmert +drx=−0.000121 +dry=−0.000794 +drz=0.000884 +convention=position_vector + +proj=helmert +drx=-0.000121 +dry=-0.000794 +drz=0.000884 +convention=position_vector diff --git a/BuildTools/CommonDistFiles/proj/MD b/BuildTools/CommonDistFiles/proj/MD deleted file mode 100644 index c8500e974..000000000 Binary files a/BuildTools/CommonDistFiles/proj/MD and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/README.DATUMGRID b/BuildTools/CommonDistFiles/proj/README.DATUMGRID deleted file mode 100644 index 982cb701a..000000000 --- a/BuildTools/CommonDistFiles/proj/README.DATUMGRID +++ /dev/null @@ -1,158 +0,0 @@ -# PROJ-DATUMGRID - -The files in this package can be unpacked in the PROJ data directory. -For an installed PROJ this may be /usr/local/share/proj or /usr/share/proj -on unix style operating systems. - -Note that this package includes "CTable2" format grid shift files for -NAD27 in the USA and require PROJ 4.8.0 or newer. On the plus side there -is no need to compile ascii files into binary files with this version as -CTable2 files are not system dependent (as distinct from the CTable files -produced in PROJ 4.7.0 and older). - -## About the Datum Grid package - -The datum grid package for PROJ is maintained on the OSGeo proj-datumgrid -repository on [GitHub](https://github.com/OSGeo/proj-datumgrid). -All grids in the package are released under -permissive licenses. New grids are accepted into the package as long as -they are released under a license that is compatible with the [Open Source -Definition](https://opensource.org/osd-annotated) and the source of the grid -is clearly stated and verifiable. Suitable licenses include: - - * Public domain - * X/MIT - * BSD 2/3/4 clause - * CC0 - * CC-BY (v3.0 or later) - * CC-BY-SA (v3.0 or later) - -## Horizontal grids - -2-dimensional transformation grids for horizontal datum shifts. - -### Canada: NAD27 -> NAD83 - -*Source*: [Natural Resources Canada](http://www.nrcan.gc.ca/earth-sciences/geomatics/geodetic-reference-systems/18766) -*Format* NTv1 -*License*: Public Domain -* ntv1_can.dat - -Grid conversion from NAD27 to NAD83 in Canada - -### France: NTF -> RGF93 - -Grid transformation from NTF to RGF93 in France. - -*Source*: [IGN](http://www.ign.fr/) -*Format*: NTv2 -*License*: Public Domain - -* ntf_r93.gsb - -### Germany: DE_DHDN -> ETRS89 - -*Source*: [BKG](http://crs.bkg.bund.de/crseu/crs/descrtrans/BeTA/de_dhdn2etrs_beta.php) -*Format*: NTv2 -*License*: Free redistribution is allowed and welcome - -Grid transformation from DE_DHDN to ETRS89 in Germany. - -* BETA2007.gsb - -### New Zealand: NZGD49 -> NZGD2000 - -*Source*: [LINZ](https://www.linz.govt.nz/data/geodetic-system/download-geodetic-software/gd2000it-download) -*Format*: NTv2 -*License*: [Creative Commons Attribution 3.0 New Zealand](https://creativecommons.org/licenses/by/3.0/nz/) - -This grid file was computed by Land Information New Zealand at approximately -a 20 km interval for the conversion between NZGD49 and NZGD2000. - -* nzgd2kgrid0005.gsb - -### USA: NAD27 -> NAD83 - -*Source*: USGS -*Format*: CTable2 -*License*: Public Domain - -* alaska - Alaska -* conus - Conterminous U.S. -* hawaii - Hawaii -* prvi - Puerto Rico, Virgin Is. -* stgeorge - St. George Is, Alaska -* stlrnc - St. Lawrence Is., Alaska -* stpaul - St. Paul Is., Alaska - -### USA: NAD83 -> NAD83 - -*Source*: USGS -*Format*: CTable2 -*License*: Public Domain - -Grid data for high precision conversion of geographic coordinates from -NAD83 to NAD83. - -* FL - Florida -* MD - Maryland -* TN - Tennessee -* WI - Wisconsin -* WO - Washington, Oregon, N. California - -## Vertical grids - -1-dimensional transformation grids for vertical datum shifts. - -### Worldwide: EGM96 geoid model - -*Source*: [NGA](http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/egm96.html) -*Format*: GTX -*License*: Public Domain - -15 minute worldwide geoid undulation grid that transforms WGS84 ellipsoidal heights to physical heights. - -* egm96_15.gtx - -# Regional PROJ resource packages - -In addition to the core proj-datumgrid package, regional collections of grids -and init-files also exist. These includes grids and init-files that are not -essential for the functionality of PROJ but still of general interest to -PROJ-users in the package-specific regions. - -The regional packages can be downloaded from the -[OSGeo download server](http://download.osgeo.org/proj/). - -### Europe - -The regional package for Europe includes resources for the following -countries: - -* Denmark -* Ireland+Northern Ireland -* The Faroe Islands -* The Nordic+Baltic countries - -More information about the included grids and init files can be found in -[README.EUROPE](https://raw.githubusercontent.com/OSGeo/proj-datumgrid/master/europe/README.EUROPE) - -### North America - -The regional package for North America includes resources for the following -countries: - -* Greenland - -More information about the included grids and init files can be found in -[README.NORTHAMERICA](https://raw.githubusercontent.com/OSGeo/proj-datumgrid/master/north-america/README.NORTHAMERICA) - -### Oceania - -The regional package for Oceania includes resources for the following -countries: - -* Australia - -More information about the included grids can be found in -[README.OCEANIA](https://raw.githubusercontent.com/OSGeo/proj-datumgrid/master/oceania/README.OCEANIA) diff --git a/BuildTools/CommonDistFiles/proj/TN b/BuildTools/CommonDistFiles/proj/TN deleted file mode 100644 index 4ae7fa987..000000000 Binary files a/BuildTools/CommonDistFiles/proj/TN and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/WI b/BuildTools/CommonDistFiles/proj/WI deleted file mode 100644 index 0adeb130f..000000000 Binary files a/BuildTools/CommonDistFiles/proj/WI and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/WO b/BuildTools/CommonDistFiles/proj/WO deleted file mode 100644 index e666a4a4b..000000000 Binary files a/BuildTools/CommonDistFiles/proj/WO and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/alaska b/BuildTools/CommonDistFiles/proj/alaska deleted file mode 100644 index bb6be2ffb..000000000 Binary files a/BuildTools/CommonDistFiles/proj/alaska and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/conus b/BuildTools/CommonDistFiles/proj/conus deleted file mode 100644 index 44b4900f3..000000000 Binary files a/BuildTools/CommonDistFiles/proj/conus and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/deformation_model.schema.json b/BuildTools/CommonDistFiles/proj/deformation_model.schema.json new file mode 100644 index 000000000..d7a6d162c --- /dev/null +++ b/BuildTools/CommonDistFiles/proj/deformation_model.schema.json @@ -0,0 +1,582 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Schema for deformation models", + "type": "object", + "properties": { + "file_type": { + "type": "string", + "enum": [ + "deformation_model_master_file" + ], + "description": "File type. Always \"deformation_model_master_file\"" + }, + "format_version": { + "type": "string", + "enum": [ + "1.0" + ] + }, + "name": { + "type": "string", + "description": "A brief descriptive name of the deformation model" + }, + "version": { + "type": "string", + "description": "A string identifying the version of the deformation model. The format for specifying version will be defined by the agency responsible for the deformation model" + }, + "publication_date": { + "$ref": "#/definitions/datetime", + "description": "The date on which this version of the deformation model was published (or possibly the date on which it takes effect?)" + }, + "license": { + "type": "string", + "description": "License under which the model is published" + }, + "description": { + "type": "string", + "description": "A text description of the model" + }, + "authority": { + "type": "object", + "description": "Basic information about the agency responsible for the data set", + "properties": { + "name": { + "type": "string", + "description": "The name of the agency" + }, + "url": { + "type": "string", + "description": "The url of the agency website", + "format": "uri" + }, + "address": { + "type": "string", + "description": "The postal address of the agency" + }, + "email": { + "type": "string", + "description": "An email contact address for the agency", + "format": "email" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "links": { + "type": "array", + "description": "Links to related information", + "items": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL holding the information", + "format": "uri" + }, + "rel": { + "type": "string", + "description": "The relationship to the dataset. Proposed relationships are:\n- \"about\": a web page for human consumption describing the model\n- \"source\": the authoritative source data from which the deformation model is built.\n- \"metadata\": ISO 19115 XML metadata regarding the deformation model." + }, + "type": { + "type": "string", + "description": "MIME type" + }, + "title": { + "type": "string", + "description": "Description of the link" + } + }, + "required": [ + "href" + ], + "additionalProperties": false + } + }, + "source_crs": { + "$ref": "#/definitions/crs", + "description": "The coordinate reference system to which the deformation model applies" + }, + "target_crs": { + "$ref": "#/definitions/crs", + "description": "For a time dependent coordinate transformation the coordinate reference system resulting from applying the deformation" + }, + "definition_crs": { + "$ref": "#/definitions/crs", + "description": "The coordinate reference system used to define the component spatial models. This proposal only supports using the same value for the source and definition coordinate reference system." + }, + "reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "A nominal reference epoch of the deformation model. This is not necessarily used to calculate the deformation model - each component defines its own time function." + }, + "uncertainty_reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "The uncertainties of the deformation model are calculated in terms of this epoch. This is described below in the Time functions section." + }, + "horizontal_offset_unit": { + "type": "string", + "enum": [ + "metre", + "degree" + ] + }, + "vertical_offset_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "horizontal_uncertainty_type": { + "type": "string", + "enum": [ + "circular 95% confidence limit" + ] + }, + "horizontal_uncertainty_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "vertical_uncertainty_type": { + "type": "string", + "enum": [ + "95% confidence limit" + ] + }, + "vertical_uncertainty_unit": { + "type": "string", + "enum": [ + "metre" + ] + }, + "horizontal_offset_method": { + "type": "string", + "description": "Defines how the horizontal offsets are applied to geographic coordinates", + "enum": [ + "addition", + "geocentric" + ] + }, + "extent": { + "$ref": "#/definitions/extent", + "description": "Defines the region within which the deformation model is defined. It cannot be calculated outside this region. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values" + }, + "time_extent": { + "type": "object", + "description": "Defines the range of times for which the model is valid, specified by a first and a last value. The deformation model is undefined for dates outside this range.", + "properties": { + "first": { + "$ref": "#/definitions/datetime" + }, + "last": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "first", + "last" + ], + "additionalProperties": false + }, + "components": { + "type": "array", + "items": { + "$ref": "#/definitions/component" + } + } + }, + "required": [ + "file_type", + "format_version", + "source_crs", + "target_crs", + "definition_crs", + "extent", + "time_extent", + "components" + ], + "additionalProperties": false, + "definitions": { + "component": { + "type": "object", + "definition": "A component describes an aspect of the deformation, such as glacial isostatic adjustment, secular deformation, earthquakes, etc.", + "properties": { + "description": { + "type": "string", + "description": "A text description of this component of the model" + }, + "extent": { + "$ref": "#/definitions/extent", + "description": "The region within the component is defined. Outside this region the component evaluates to 0. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values" + }, + "displacement_type": { + "type": "string", + "description": "The displacement parameters defined by the model. The \"none\" option allows for a component which defines uncertainty with different grids to those defining displacement", + "enum": [ + "none", + "horizontal", + "vertical", + "3d" + ] + }, + "uncertainty_type": { + "type": "string", + "description": "The uncertainty parameters defined by the model", + "enum": [ + "none", + "horizontal", + "vertical", + "3d" + ] + }, + "horizontal_uncertainty": { + "type": "number", + "description": "The horizontal uncertainty to use if it is not defined explicitly in the spatial model" + }, + "vertical_uncertainty": { + "type": "number", + "description": "The vertical uncertainty to use if it is not defined explicitly in the spatial model" + }, + "spatial_model": { + "type": "object", + "description": "Defines the spatial model", + "properties": { + "type": { + "type": "string", + "description": "Specifies the type of the spatial model data file. Initially it is proposed that only GeoTIFF is supported", + "enum": [ + "GeoTIFF" + ] + }, + "interpolation_method": { + "type": "string", + "description": "Interpolation method", + "enum": [ + "bilinear", + "geocentric_bilinear" + ] + }, + "filename": { + "type": "string", + "description": "Specifies location of the spatial model GeoTIFF file relative to this JSON file" + }, + "md5_checksum": { + "type": "string", + "description": "A hex encoded MD5 checksum of the grid file that can be used to validate that it is the correct version of the file" + } + }, + "required": [ + "type", + "interpolation_method", + "filename" + ], + "additionalProperties": false + }, + "time_function": { + "$ref": "#/definitions/time_function" + } + }, + "required": [ + "description", + "extent", + "displacement_type", + "spatial_model", + "time_function" + ], + "additionalProperties": false + }, + "crs": { + "type": "string", + "pattern": "^[a-zA-Z]+:[a-zA-Z0-9]+$" + }, + "datetime": { + "type": "string", + "format": "date-time", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" + }, + "extent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "bbox" + ] + }, + "parameters": { + "type": "object", + "properties": { + "bbox": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + } + } + } + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function": { + "description": "Function describing a multiplicative factor to apply to the spatial_model depending on the time", + "oneOf": [ + { + "$ref": "#/definitions/time_function_constant" + }, + { + "$ref": "#/definitions/time_function_velocity" + }, + { + "$ref": "#/definitions/time_function_step" + }, + { + "$ref": "#/definitions/time_function_reverse_step" + }, + { + "$ref": "#/definitions/time_function_piecewise" + }, + { + "$ref": "#/definitions/time_function_exponential" + } + ] + }, + "time_function_constant": { + "description": "The valuation of this function is 1 at any epoch", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "constant" + ] + }, + "parameters": { + "type": "object", + "properties": { + }, + "additionalProperties": false + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + "time_function_velocity": { + "description": "The valuation of this function is 0 at reference_epoch, and proportional to the time difference to it at other times", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "velocity" + ] + }, + "parameters": { + "type": "object", + "properties": { + "reference_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "reference_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_step": { + "description": "The valuation of this function is 0 before step_epoch, and 1 starting from it", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "step" + ] + }, + "parameters": { + "type": "object", + "properties": { + "step_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "step_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_reverse_step": { + "description": "The valuation of this function is 1 before step_epoch, and 0 starting from it", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "reverse_step" + ] + }, + "parameters": { + "type": "object", + "properties": { + "step_epoch": { + "$ref": "#/definitions/datetime" + } + }, + "required": [ + "step_epoch" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_piecewise": { + "description": "Piecewise time function", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "piecewise" + ] + }, + "parameters": { + "type": "object", + "properties": { + "before_first": { + "type": "string", + "description": "Defines the behaviour of the function before the first defined epoch", + "enum": [ + "zero", + "constant", + "linear" + ] + }, + "after_last": { + "type": "string", + "description": "Defines the behaviour of the function after the last defined epoch", + "enum": [ + "zero", + "constant", + "linear" + ] + }, + "model": { + "type": "array", + "description": "A sorted array data points each defined by two elements, \"epoch\" defines the date/time of the data point, and \"scale_factor\" is the corresponding function value. The array is sorted in order of increasing epoch. Note: where the time function includes a step it is represented by two consecutive data points with the same epoch. The first defines the scale factor that applies before the epoch and the second the scale factor that applies after the epoch", + "items": { + "type": "object", + "properties": { + "epoch": { + "$ref": "#/definitions/datetime" + }, + "scale_factor": { + "type": "number" + } + }, + "required": [ + "epoch", + "scale_factor" + ], + "additionalProperties": false + }, + "minItems": 2 + } + }, + "required": [ + "before_first", + "after_last", + "model" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + }, + "time_function_exponential": { + "description": "The valuation of this function is an exponential function with a time-based relaxation constant", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "exponential" + ] + }, + "parameters": { + "type": "object", + "properties": { + "reference_epoch": { + "$ref": "#/definitions/datetime", + "description": "The date/time at which the exponential decay starts" + }, + "end_epoch": { + "$ref": "#/definitions/datetime", + "description": "The date/time at which the exponential decay ends (optional)" + }, + "relaxation_constant": { + "type": "number", + "description": "Relaxation constant in years" + }, + "before_scale_factor": { + "type": "number", + "description": "The scale factor that applies before the reference epoch" + }, + "initial_scale_factor": { + "type": "number", + "description": "The initial scale factor" + }, + "final_scale_factor": { + "type": "number", + "description": "The scale factor the exponential function approaches" + } + }, + "required": [ + "reference_epoch", + "relaxation_constant", + "before_scale_factor", + "initial_scale_factor", + "final_scale_factor" + ], + "additionalProperties": false + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/BuildTools/CommonDistFiles/proj/egm96_15.gtx b/BuildTools/CommonDistFiles/proj/egm96_15.gtx deleted file mode 100644 index bf340336c..000000000 Binary files a/BuildTools/CommonDistFiles/proj/egm96_15.gtx and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/hawaii b/BuildTools/CommonDistFiles/proj/hawaii deleted file mode 100644 index 3018b2bad..000000000 Binary files a/BuildTools/CommonDistFiles/proj/hawaii and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/ntf_r93.gsb b/BuildTools/CommonDistFiles/proj/ntf_r93.gsb deleted file mode 100644 index 07e34fcb0..000000000 Binary files a/BuildTools/CommonDistFiles/proj/ntf_r93.gsb and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/ntv1_can.dat b/BuildTools/CommonDistFiles/proj/ntv1_can.dat deleted file mode 100644 index 8acad0773..000000000 Binary files a/BuildTools/CommonDistFiles/proj/ntv1_can.dat and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/null b/BuildTools/CommonDistFiles/proj/null deleted file mode 100644 index 8418408be..000000000 Binary files a/BuildTools/CommonDistFiles/proj/null and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/nzgd2kgrid0005.gsb b/BuildTools/CommonDistFiles/proj/nzgd2kgrid0005.gsb deleted file mode 100644 index 840bd0063..000000000 Binary files a/BuildTools/CommonDistFiles/proj/nzgd2kgrid0005.gsb and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/proj.db b/BuildTools/CommonDistFiles/proj/proj.db index 4fa9670ed..a6055469e 100644 Binary files a/BuildTools/CommonDistFiles/proj/proj.db and b/BuildTools/CommonDistFiles/proj/proj.db differ diff --git a/BuildTools/CommonDistFiles/proj/proj.ini b/BuildTools/CommonDistFiles/proj/proj.ini new file mode 100644 index 000000000..067f01707 --- /dev/null +++ b/BuildTools/CommonDistFiles/proj/proj.ini @@ -0,0 +1,24 @@ +[general] +; Lines starting by ; are commented lines. +; + +; Network capabilities disabled by default. +; Can be overridden with the PROJ_NETWORK=ON environment variable. +; network = on + +; Can be overridden with the PROJ_NETWORK_ENDPOINT environment variable. +cdn_endpoint = https://cdn.proj.org + +cache_enabled = on + +cache_size_MB = 300 + +cache_ttl_sec = 86400 + +; Transverse Mercator (and UTM) default algorithm: auto, evenden_snyder or poder_engsager +; * evenden_snyder is the fastest, but less accurate far from central meridian +; * poder_engsager is slower, but more accurate far from central meridian +; * default will auto-select between the two above depending on the coordinate +; to transform and will use evenden_snyder if the error in doing so is below +; 0.1 mm (for an ellipsoid of the size of Earth) +tmerc_default_algo = poder_engsager diff --git a/BuildTools/CommonDistFiles/proj/projjson.schema.json b/BuildTools/CommonDistFiles/proj/projjson.schema.json new file mode 100644 index 000000000..6ed97b7bc --- /dev/null +++ b/BuildTools/CommonDistFiles/proj/projjson.schema.json @@ -0,0 +1,1002 @@ +{ + "$id": "https://proj.org/schemas/v0.4/projjson.schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Schema for PROJJSON (v0.4)", + "$comment": "This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_CURRENT_VERSION accordingly in io.cpp", + + "oneOf": [ + { "$ref": "#/definitions/crs" }, + { "$ref": "#/definitions/datum" }, + { "$ref": "#/definitions/datum_ensemble" }, + { "$ref": "#/definitions/ellipsoid" }, + { "$ref": "#/definitions/prime_meridian" }, + { "$ref": "#/definitions/single_operation" }, + { "$ref": "#/definitions/concatenated_operation" } + ], + + "definitions": { + + "abridged_transformation": { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["AbridgedTransformation"] }, + "name": { "type": "string" }, + "method": { "$ref": "#/definitions/method" }, + "parameters": { + "type": "array", + "items": { "$ref": "#/definitions/parameter_value" } + }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name", "method", "parameters" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + }, + + "axis": { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["Axis"] }, + "name": { "type": "string" }, + "abbreviation": { "type": "string" }, + "direction": { "type": "string", + "enum": [ "north", + "northNorthEast", + "northEast", + "eastNorthEast", + "east", + "eastSouthEast", + "southEast", + "southSouthEast", + "south", + "southSouthWest", + "southWest", + "westSouthWest", + "west", + "westNorthWest", + "northWest", + "northNorthWest", + "up", + "down", + "geocentricX", + "geocentricY", + "geocentricZ", + "columnPositive", + "columnNegative", + "rowPositive", + "rowNegative", + "displayRight", + "displayLeft", + "displayUp", + "displayDown", + "forward", + "aft", + "port", + "starboard", + "clockwise", + "counterClockwise", + "towards", + "awayFrom", + "future", + "past", + "unspecified" ] }, + "unit": { "$ref": "#/definitions/unit" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name", "abbreviation", "direction" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + }, + + "bbox": { + "type": "object", + "properties": { + "east_longitude": { "type": "number" }, + "west_longitude": { "type": "number" }, + "south_latitude": { "type": "number" }, + "north_latitude": { "type": "number" } + }, + "required" : [ "east_longitude", "west_longitude", + "south_latitude", "north_latitude" ], + "additionalProperties": false + }, + + "bound_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["BoundCRS"] }, + "name": { "type": "string" }, + "source_crs": { "$ref": "#/definitions/crs" }, + "target_crs": { "$ref": "#/definitions/crs" }, + "transformation": { "$ref": "#/definitions/abridged_transformation" }, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "source_crs", "target_crs", "transformation" ], + "additionalProperties": false + }, + + "compound_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["CompoundCRS"] }, + "name": { "type": "string" }, + "components": { + "type": "array", + "items": { "$ref": "#/definitions/crs" } + }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "components" ], + "additionalProperties": false + }, + + "concatenated_operation": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["ConcatenatedOperation"] }, + "name": { "type": "string" }, + "source_crs": { "$ref": "#/definitions/crs" }, + "target_crs": { "$ref": "#/definitions/crs" }, + "steps": { + "type": "array", + "items": { "$ref": "#/definitions/single_operation" } + }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "source_crs", "target_crs", "steps" ], + "additionalProperties": false + }, + + "conversion": { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["Conversion"] }, + "name": { "type": "string" }, + "method": { "$ref": "#/definitions/method" }, + "parameters": { + "type": "array", + "items": { "$ref": "#/definitions/parameter_value" } + }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name", "method" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + }, + + "coordinate_system": { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["CoordinateSystem"] }, + "name": { "type": "string" }, + "subtype": { "type": "string", + "enum": ["Cartesian", + "spherical", + "ellipsoidal", + "vertical", + "ordinal", + "parametric", + "TemporalDateTime", + "TemporalCount", + "TemporalMeasure"] }, + "axis": { + "type": "array", + "items": { "$ref": "#/definitions/axis" } + }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "subtype", "axis" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + }, + + "crs": { + "oneOf": [ + { "$ref": "#/definitions/bound_crs" }, + { "$ref": "#/definitions/compound_crs" }, + { "$ref": "#/definitions/derived_engineering_crs" }, + { "$ref": "#/definitions/derived_geodetic_crs" }, + { "$ref": "#/definitions/derived_parametric_crs" }, + { "$ref": "#/definitions/derived_projected_crs" }, + { "$ref": "#/definitions/derived_temporal_crs" }, + { "$ref": "#/definitions/derived_vertical_crs" }, + { "$ref": "#/definitions/engineering_crs" }, + { "$ref": "#/definitions/geodetic_crs" }, + { "$ref": "#/definitions/parametric_crs" }, + { "$ref": "#/definitions/projected_crs" }, + { "$ref": "#/definitions/temporal_crs" }, + { "$ref": "#/definitions/vertical_crs" } + ] + }, + + "datum": { + "oneOf": [ + { "$ref": "#/definitions/geodetic_reference_frame" }, + { "$ref": "#/definitions/vertical_reference_frame" }, + { "$ref": "#/definitions/dynamic_geodetic_reference_frame" }, + { "$ref": "#/definitions/dynamic_vertical_reference_frame" }, + { "$ref": "#/definitions/temporal_datum" }, + { "$ref": "#/definitions/parametric_datum" }, + { "$ref": "#/definitions/engineering_datum" } + ] + }, + + "datum_ensemble": { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["DatumEnsemble"] }, + "name": { "type": "string" }, + "members": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + } + }, + "ellipsoid": { "$ref": "#/definitions/ellipsoid" }, + "accuracy": { "type": "string" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name", "members", "accuracy" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + }, + + "derived_engineering_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", + "enum": ["DerivedEngineeringCRS"] }, + "name": { "type": "string" }, + "base_crs": { "$ref": "#/definitions/engineering_crs" }, + "conversion": { "$ref": "#/definitions/conversion" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "base_crs", "conversion", "coordinate_system" ], + "additionalProperties": false + }, + + "derived_geodetic_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", + "enum": ["DerivedGeodeticCRS", + "DerivedGeographicCRS"] }, + "name": { "type": "string" }, + "base_crs": { "$ref": "#/definitions/geodetic_crs" }, + "conversion": { "$ref": "#/definitions/conversion" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "base_crs", "conversion", "coordinate_system" ], + "additionalProperties": false + }, + + "derived_parametric_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", + "enum": ["DerivedParametricCRS"] }, + "name": { "type": "string" }, + "base_crs": { "$ref": "#/definitions/parametric_crs" }, + "conversion": { "$ref": "#/definitions/conversion" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "base_crs", "conversion", "coordinate_system" ], + "additionalProperties": false + }, + + "derived_projected_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", + "enum": ["DerivedProjectedCRS"] }, + "name": { "type": "string" }, + "base_crs": { "$ref": "#/definitions/projected_crs" }, + "conversion": { "$ref": "#/definitions/conversion" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "base_crs", "conversion", "coordinate_system" ], + "additionalProperties": false + }, + + "derived_temporal_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", + "enum": ["DerivedTemporalCRS"] }, + "name": { "type": "string" }, + "base_crs": { "$ref": "#/definitions/temporal_crs" }, + "conversion": { "$ref": "#/definitions/conversion" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "base_crs", "conversion", "coordinate_system" ], + "additionalProperties": false + }, + + "derived_vertical_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", + "enum": ["DerivedVerticalCRS"] }, + "name": { "type": "string" }, + "base_crs": { "$ref": "#/definitions/vertical_crs" }, + "conversion": { "$ref": "#/definitions/conversion" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "base_crs", "conversion", "coordinate_system" ], + "additionalProperties": false + }, + + "dynamic_geodetic_reference_frame": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/geodetic_reference_frame" }], + "properties": { + "type": { "type": "string", "enum": ["DynamicGeodeticReferenceFrame"] }, + "name": {}, + "anchor": {}, + "ellipsoid": {}, + "prime_meridian": {}, + "frame_reference_epoch": { "type": "number" }, + "deformation_model": { "type": "string" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "ellipsoid", "frame_reference_epoch" ], + "additionalProperties": false + }, + + "dynamic_vertical_reference_frame": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/vertical_reference_frame" }], + "properties": { + "type": { "type": "string", "enum": ["DynamicVerticalReferenceFrame"] }, + "name": {}, + "anchor": {}, + "frame_reference_epoch": { "type": "number" }, + "deformation_model": { "type": "string" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "frame_reference_epoch" ], + "additionalProperties": false + }, + + "ellipsoid": { + "type": "object", + "oneOf":[ + { + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["Ellipsoid"] }, + "name": { "type": "string" }, + "semi_major_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" }, + "semi_minor_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name", "semi_major_axis", "semi_minor_axis" ], + "additionalProperties": false + }, + { + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["Ellipsoid"] }, + "name": { "type": "string" }, + "semi_major_axis": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" }, + "inverse_flattening": { "type": "number" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name", "semi_major_axis", "inverse_flattening" ], + "additionalProperties": false + }, + { + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["Ellipsoid"] }, + "name": { "type": "string" }, + "radius": { "$ref": "#/definitions/value_in_metre_or_value_and_unit" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name", "radius" ], + "additionalProperties": false + } + ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ] + }, + + "engineering_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["EngineeringCRS"] }, + "name": { "type": "string" }, + "datum": { "$ref": "#/definitions/engineering_datum" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "datum" ], + "additionalProperties": false + }, + + "engineering_datum": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["EngineeringDatum"] }, + "name": { "type": "string" }, + "anchor": { "type": "string" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name" ], + "additionalProperties": false + }, + + "geodetic_crs": { + "type": "object", + "properties": { + "type": { "type": "string", "enum": ["GeodeticCRS", "GeographicCRS"] }, + "name": { "type": "string" }, + "datum": { + "oneOf": [ + { "$ref": "#/definitions/geodetic_reference_frame" }, + { "$ref": "#/definitions/dynamic_geodetic_reference_frame" } + ] + }, + "datum_ensemble": { "$ref": "#/definitions/datum_ensemble" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name" ], + "description": "One and only one of datum and datum_ensemble must be provided", + "allOf": [ + { "$ref": "#/definitions/object_usage" }, + { "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" } + ], + "additionalProperties": false + }, + + "geodetic_reference_frame": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["GeodeticReferenceFrame"] }, + "name": { "type": "string" }, + "anchor": { "type": "string" }, + "ellipsoid": { "$ref": "#/definitions/ellipsoid" }, + "prime_meridian": { "$ref": "#/definitions/prime_meridian" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "ellipsoid" ], + "additionalProperties": false + }, + + "id": { + "type": "object", + "properties": { + "authority": { "type": "string" }, + "code": { + "oneOf": [ { "type": "string" }, { "type": "integer" } ] + }, + "version": { + "oneOf": [ { "type": "string" }, { "type": "number" } ] + }, + "authority_citation": { "type": "string" }, + "uri": { "type": "string" } + }, + "required" : [ "authority", "code" ], + "additionalProperties": false + }, + + "ids": { + "type": "array", + "items": { "$ref": "#/definitions/id" } + }, + + "method": { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["OperationMethod"]}, + "name": { "type": "string" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + }, + + "id_ids_mutually_exclusive": { + "not": { + "type": "object", + "required": [ "id", "ids" ] + } + }, + + "one_and_only_one_of_datum_or_datum_ensemble": { + "allOf": [ + { + "not": { + "type": "object", + "required": [ "datum", "datum_ensemble" ] + } + }, + { + "oneOf": [ + { "type": "object", "required": ["datum"] }, + { "type": "object", "required": ["datum_ensemble"] } + ] + } + ] + }, + + "object_usage": { + "anyOf": [ + { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "scope": { "type": "string" }, + "area": { "type": "string" }, + "bbox": { "$ref": "#/definitions/bbox" }, + "remarks": { "type": "string" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ] + }, + { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "usages": { "$ref": "#/definitions/usages" }, + "remarks": { "type": "string" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ] + } + ] + }, + + "parameter_value": { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["ParameterValue"] }, + "name": { "type": "string" }, + "value": { + "oneOf": [ + { "type": "string" }, + { "type": "number" } + ] + }, + "unit": { "$ref": "#/definitions/unit" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name", "value" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + }, + + "parametric_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["ParametricCRS"] }, + "name": { "type": "string" }, + "datum": { "$ref": "#/definitions/parametric_datum" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "datum" ], + "additionalProperties": false + }, + + "parametric_datum": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["ParametricDatum"] }, + "name": { "type": "string" }, + "anchor": { "type": "string" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name" ], + "additionalProperties": false + }, + + "prime_meridian": { + "type": "object", + "properties": { + "$schema" : { "type": "string" }, + "type": { "type": "string", "enum": ["PrimeMeridian"] }, + "name": { "type": "string" }, + "longitude": { "$ref": "#/definitions/value_in_degree_or_value_and_unit" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "name" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + }, + + "single_operation": { + "oneOf": [ + { "$ref": "#/definitions/conversion" }, + { "$ref": "#/definitions/transformation" } + ] + }, + + "projected_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", + "enum": ["ProjectedCRS"] }, + "name": { "type": "string" }, + "base_crs": { "$ref": "#/definitions/geodetic_crs" }, + "conversion": { "$ref": "#/definitions/conversion" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "base_crs", "conversion", "coordinate_system" ], + "additionalProperties": false + }, + + "temporal_crs": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["TemporalCRS"] }, + "name": { "type": "string" }, + "datum": { "$ref": "#/definitions/temporal_datum" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "datum" ], + "additionalProperties": false + }, + + "temporal_datum": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["TemporalDatum"] }, + "name": { "type": "string" }, + "calendar": { "type": "string" }, + "time_origin": { "type": "string" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "calendar" ], + "additionalProperties": false + }, + + "transformation": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["Transformation"] }, + "name": { "type": "string" }, + "source_crs": { "$ref": "#/definitions/crs" }, + "target_crs": { "$ref": "#/definitions/crs" }, + "interpolation_crs": { "$ref": "#/definitions/crs" }, + "method": { "$ref": "#/definitions/method" }, + "parameters": { + "type": "array", + "items": { "$ref": "#/definitions/parameter_value" } + }, + "accuracy": { "type": "string" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name", "source_crs", "target_crs", "method", "parameters" ], + "additionalProperties": false + }, + + "unit": { + "oneOf": [ + { + "type": "string", + "enum": ["metre", "degree", "unity"] + }, + { + "type": "object", + "properties": { + "type": { "type": "string", + "enum": ["LinearUnit", "AngularUnit", "ScaleUnit", + "TimeUnit", "ParametricUnit", "Unit"] }, + "name": { "type": "string" }, + "conversion_factor": { "type": "number" }, + "id": { "$ref": "#/definitions/id" }, + "ids": { "$ref": "#/definitions/ids" } + }, + "required" : [ "type", "name" ], + "allOf": [ + { "$ref": "#/definitions/id_ids_mutually_exclusive" } + ], + "additionalProperties": false + } + ] + }, + + "usages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "scope": { "type": "string" }, + "area": { "type": "string" }, + "bbox": { "$ref": "#/definitions/bbox" } + }, + "additionalProperties": false + } + }, + + "value_and_unit": { + "type": "object", + "properties": { + "value": { "type": "number" }, + "unit": { "$ref": "#/definitions/unit" } + }, + "required" : [ "value", "unit" ], + "additionalProperties": false + }, + + "value_in_degree_or_value_and_unit": { + "oneOf": [ + { "type": "number" }, + { "$ref": "#/definitions/value_and_unit" } + ] + }, + + "value_in_metre_or_value_and_unit": { + "oneOf": [ + { "type": "number" }, + { "$ref": "#/definitions/value_and_unit" } + ] + }, + + "vertical_crs": { + "type": "object", + "properties": { + "type": { "type": "string", "enum": ["VerticalCRS"] }, + "name": { "type": "string" }, + "datum": { + "oneOf": [ + { "$ref": "#/definitions/vertical_reference_frame" }, + { "$ref": "#/definitions/dynamic_vertical_reference_frame" } + ] + }, + "datum_ensemble": { "$ref": "#/definitions/datum_ensemble" }, + "coordinate_system": { "$ref": "#/definitions/coordinate_system" }, + "geoid_model": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "interpolation_crs": { "$ref": "#/definitions/crs" }, + "id": { "$ref": "#/definitions/id" } + }, + "required" : [ "name" ], + "additionalProperties": false + }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name"], + "description": "One and only one of datum and datum_ensemble must be provided", + "allOf": [ + { "$ref": "#/definitions/object_usage" }, + { "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" } + ], + "additionalProperties": false + }, + + "vertical_reference_frame": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/object_usage" }], + "properties": { + "type": { "type": "string", "enum": ["VerticalReferenceFrame"] }, + "name": { "type": "string" }, + "anchor": { "type": "string" }, + "$schema" : {}, + "scope": {}, + "area": {}, + "bbox": {}, + "usages": {}, + "remarks": {}, + "id": {}, "ids": {} + }, + "required" : [ "name" ], + "additionalProperties": false + } + + } +} diff --git a/BuildTools/CommonDistFiles/proj/prvi b/BuildTools/CommonDistFiles/proj/prvi deleted file mode 100644 index 0ab507b51..000000000 Binary files a/BuildTools/CommonDistFiles/proj/prvi and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/stgeorge b/BuildTools/CommonDistFiles/proj/stgeorge deleted file mode 100644 index c7a7a01e3..000000000 Binary files a/BuildTools/CommonDistFiles/proj/stgeorge and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/stlrnc b/BuildTools/CommonDistFiles/proj/stlrnc deleted file mode 100644 index d4fb1e50a..000000000 Binary files a/BuildTools/CommonDistFiles/proj/stlrnc and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/stpaul b/BuildTools/CommonDistFiles/proj/stpaul deleted file mode 100644 index 64ef379d1..000000000 Binary files a/BuildTools/CommonDistFiles/proj/stpaul and /dev/null differ diff --git a/BuildTools/CommonDistFiles/proj/triangulation.schema.json b/BuildTools/CommonDistFiles/proj/triangulation.schema.json new file mode 100644 index 000000000..8203f5d91 --- /dev/null +++ b/BuildTools/CommonDistFiles/proj/triangulation.schema.json @@ -0,0 +1,214 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Schema for triangulation based transformation", + "type": "object", + "properties": { + "file_type": { + "type": "string", + "enum": [ + "triangulation_file" + ], + "description": "File type. Always \"triangulation_file\"" + }, + "format_version": { + "type": "string", + "enum": [ + "1.0", "1.1" + ] + }, + "name": { + "type": "string", + "description": "A brief descriptive name of the triangulation" + }, + "version": { + "type": "string", + "description": "A string identifying the version of the triangulation. The format for specifying version will be defined by the agency responsible for the triangulation" + }, + "publication_date": { + "$ref": "#/definitions/datetime", + "description": "The date on which this version of the triangulation was published (or possibly the date on which it takes effect?)" + }, + "fallback_strategy": { + "type": "string", + "enum": [ + "none", + "nearest_side", + "nearest_centroid" + ] + }, + "license": { + "type": "string", + "description": "License under which the file is published" + }, + "description": { + "type": "string", + "description": "A text description of the file" + }, + "authority": { + "type": "object", + "description": "Basic information about the agency responsible for the data set", + "properties": { + "name": { + "type": "string", + "description": "The name of the agency" + }, + "url": { + "type": "string", + "description": "The url of the agency website", + "format": "uri" + }, + "address": { + "type": "string", + "description": "The postal address of the agency" + }, + "email": { + "type": "string", + "description": "An email contact address for the agency", + "format": "email" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + "links": { + "type": "array", + "description": "Links to related information", + "items": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL holding the information", + "format": "uri" + }, + "rel": { + "type": "string", + "description": "The relationship to the dataset. Proposed relationships are:\n- \"about\": a web page for human consumption describing the model\n- \"source\": the authoritative source data from which the triangulation is built.\n- \"metadata\": ISO 19115 XML metadata regarding the triangulation." + }, + "type": { + "type": "string", + "description": "MIME type" + }, + "title": { + "type": "string", + "description": "Description of the link" + } + }, + "required": [ + "href" + ], + "additionalProperties": false + } + }, + "extent": { + "$ref": "#/definitions/extent", + "description": "Defines the region within which the triangulation is defined. This should be a bounding box defined as an array of [west,south,east,north] coordinate values in a unspecified geographic CRS. This bounding box should be seen as approximate, given that triangulation may be defined with projected coordinates, and also because some triangulations may not cover the whole bounding box." + }, + "input_crs": { + "$ref": "#/definitions/crs", + "description": "String identifying the CRS of source coordinates in the vertices. Typically \"EPSG:XXXX\". If the transformation is for vertical component, this should be the code for a compound CRS (can be EPSG:XXXX+YYYY where XXXX is the code of the horizontal CRS and YYYY the code of the vertical CRS). For example, for the KKJ->ETRS89 transformation, this is EPSG:2393 (\"KKJ / Finland Uniform Coordinate System\"). The input coordinates are assumed to be passed in the \"normalized for visualisation\" / \"GIS friendly\" order, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates." + }, + "output_crs": { + "$ref": "#/definitions/crs", + "description": "String identifying the CRS of target coordinates in the vertices. Typically \"EPSG:XXXX\". If the transformation is for vertical component, this should be the code for a compound CRS (can be EPSG:XXXX+YYYY where XXXX is the code of the horizontal CRS and YYYY the code of the vertical CRS). For example, for the KKJ->ETRS89 transformation, this is EPSG:3067 (\"ETRS89 / TM35FIN(E,N)\"). The output coordinates will be returned in the \"normalized for visualisation\" / \"GIS friendly\" order, that is easting, that is longitude, latitude for geographic coordinates and easting, northing for projected coordinates." + }, + "transformed_components": { + "type": "array", + "description": "Specify which component of the coordinates are transformed. Either \"horizontal\", \"vertical\" or both", + "minItems": 1, + "maxItems": 2, + "items": { + "type": "string", + "enum": [ + "horizontal", + "vertical" + ] + } + }, + "vertices_columns": { + "type": "array", + "description": "Specify the name of the columns of the rows in the \"vertices\" array. There must be exactly as many elements in \"vertices_columns\" as in a row of \"vertices\". The following names have a special meaning: \"source_x\", \"source_y\", \"target_x\", \"target_y\", \"source_z\", \"target_z\" and \"offset_z\". \"source_x\" and \"source_y\" are compulsory. \"source_x\" is for the source longitude (in degree) or easting. \"source_y\" is for the source latitude (in degree) or northing. \"target_x\" and \"target_y\" are compulsory when \"horizontal\" is specified in \"transformed_components\". (\"source_z\" and \"target_z\") or \"offset_z\" are compulsory when \"vertical\" is specified in \"transformed_components\".", + "minItems": 3, + "items": { + "type": "string" + } + }, + "triangles_columns": { + "type": "array", + "description": "Specify the name of the columns of the rows in the \"triangles\" array. There must be exactly as many elements in \"triangles_columns\" as in a row of \"triangles\". The following names have a special meaning: \"idx_vertex1\", \"idx_vertex2\", \"idx_vertex3\". They are compulsory.", + "minItems": 3, + "items": { + "type": "string" + } + }, + "vertices": { + "type": "array", + "description": "an array whose items are themselves arrays with as many columns as described in \"vertices_columns\"", + "items": { + "type": "array" + } + }, + "triangles": { + "type": "array", + "description": "an array whose items are themselves arrays with as many columns as described in \"triangles_columns\". The value of the \"idx_vertexN\" columns must be indices (between 0 and len(\"vertices\"-1) of items of the \"vertices\" array", + "items": { + "type": "array" + } + } + }, + "required": [ + "file_type", + "format_version", + "transformed_components", + "vertices_columns", + "triangles_columns", + "vertices", + "triangles" + ], + "additionalProperties": false, + "definitions": { + "crs": { + "type": "string" + }, + "datetime": { + "type": "string", + "format": "date-time", + "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" + }, + "extent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "bbox" + ] + }, + "name" : { + "type": "string", + "description": "Name of the extent (e.g. \"Finland - mainland south of 66°N\")" + }, + "parameters": { + "type": "object", + "properties": { + "bbox": { + "type": "array", + "minItems": 4, + "maxItems": 4, + "items": { + "type": "number" + } + } + } + } + }, + "required": [ + "type", + "parameters" + ], + "additionalProperties": false + } + } +} diff --git a/GeoDa.cpp b/GeoDa.cpp index b32f8120f..600bd8eb9 100644 --- a/GeoDa.cpp +++ b/GeoDa.cpp @@ -260,6 +260,7 @@ bool GdaApp::OnInit(void) wxString proj6_db_dir = exeDir + "../Resources/proj"; const char* proj_path = proj6_db_dir.mb_str(); const char* const apsz_proj_paths[] = { proj_path, nullptr }; + CPLSetConfigOption("PROJ_LIB", GET_ENCODED_FILENAME(proj6_db_dir)); OSRSetPROJSearchPaths(apsz_proj_paths); #endif