====== Coordinate Reference Systems ====== This page describes the use and application of Coordinate Reference Systems in Orbit. \\ For basic concepts and theory about the coordinate system, datum and projection, see [[dev:technology:core:crs_theory|]]. \\ For information on CRS related to Mapping Resources, see [[dev:technology:3d_mapping:crs|]] Orbit supports Horizontal and Vertical Coordinate Reference Systems. \\ Geographic and projected Horizontal CRS can be used and combined on the fly. Geocentric CRS are supported but need be converted upon import to a supported Geographic or Projected CRS. Use of CRS units foot (ft) or US survey foot (USft) required special attention. ===== Horizontal CRS Definitions ===== ==== EPSG registry ==== Orbit has the objective to support the most recent definition of horizontal coordinate reference systems as defined by the [[http://www.ogp.org.uk|OGP]] (International Association of Oil and Gas Producers) and described in the [[http://www.epsg-registry.org|EPSG library]]. Orbit respects the order of axes as defined by the EPSG Library. Supported Projection methods (EPSG Code). \\ Missing methods are added upon request, contact Orbit support. * Hotine_Oblique_Mercator (9812) * Krovak_Oblique_Conformal_Conic (9819) * Lambert_Conformal_Conic_1SP (9801) * Lambert_Conformal_Conic_2SP (9802) * Lambert_Conformal_Conic_2SP_Belgium (9803) * Mercator_1SP (9804) * Mercator_1SP_Spherical (9841) * Oblique_Mercator (9815) * Oblique_Stereographic (9809) * Transverse_Mercator (9807) * Transverse_Mercator_South_Orientated (9808) Supported Transformation methods (EPSG Code). \\ Missing methods and local grid-based corrections are added upon request, contact Orbit support. * Coordinate Frame Rotation (9607) * Geocentric transformation (9603) * Longitude rotation (9601) * Molodensky-Badekas (9636) * Position Vector transformation (9606) ==== Local Horizontal Definitions ==== Orbit supports Local Horizontal CRS and Grid Corrections as defined by local authorities. * EPSG 2039, {{:technology:core:1002039_israel_-_israeli_tm_grid.zip|Israel 1993 / Israeli TM Grid}}, Israel * EPSG 2100, {{:technology:core:projection_grid_2100_hepos.zip|HEPOS Transformation}}, Greece * EPSG 9320, {{:technology:core:projection_grid_9320.SnakeGrid_XRail02.zip|XRail09-2002 (SnakeGrid)}} * EPSG 9321, {{:technology:core:projection_grid_9321.SnakeGrid_XRail15.zip|XRail09-2015 (SnakeGrid)}} * EPSG 9322, {{:technology:core:projection_grid_9322.snakegrid_ecml14.zip|ECML14-NB (SnakeGrid)}} * EPSG 9300, {{:technology:core:crs_9300_snakegrid_hs2_15.zip|HS2 Survey Grid 15 (SnakeGrid)}} * EPSG 9301, {{:technology:core:projection_grid_9301.snakegrid_hs202.zip|HS2 Survey Grid 02 (SnakeGrid)}} * EPSG 9366, {{:technology:core:projection_grid_9366_snakegrid_tpen11.zip|TPEN11 Trans Pennine Systen (SnakeGrid)}} * EPSG 9370, {{:technology:core:projection_grid_9370.snakegrid_mml07.zip|MML07 Grid (SnakeGrid)}} * EPSG 9455, {{:technology:core:projection_grid_9455.snakegrid_gbk19.zip|GBK19 Grid (SnakeGrid)}} * EPSG 9738, {{:technology:core:projection_grid_9738.snakegrid_eos21.zip|EOS21 Grid (SnakeGrid)}} * EPSG 9972, {{:technology:core:projection_grid_9972_snakegrid_scm22.zip|SCM22 Grid (SnakeGrid)}} * EPSG 27700, {{:technology:core:projection_grid_27700.zip|OSGB 1936 / British National Grid}} (OSTN02), United Kingdom. * EPSG 27700, {{:technology:coordinate_systems:projection_grid_27700.vertical_5701.british_national_grid.odn_height.zip|OSGB 1936 / British National Grid and ODN height}} (OSTN15), United Kingdom. * EPSG 28992, {{:technology:core:projection_grid_28992.zip|Amersfoort / RD New}}, The Netherlands. * ESPG 29901, OSNI 1952 / Irish National Grid (OSTN02), Northern Ireland. * ESPG 29901, {{:technology:coordinate_systems:projection_grid_29901.vertical_5732.osni_1952_irish_national_grid.belfast_height.zip|OSNI 1952 / Irish National Grid and Belfast height}} (OSTN15), Northern Ireland. * EPSG 29903, TM75 / Irish Grid (OSTN02), Ireland. * EPSG 29903, {{:technology:coordinate_systems:projection_grid_29903.vertical_5731.tm75_irish_grid.mailin_head_height.zip|TM75 / Irish Grid and Mailin Head height}} (OSTN15), Ireland. * EPSG 31370, {{:technology:coordinate_systems:projection_grid_31370.belge_1972_belgian_lambert_72.zip|Belge 1972 / Belgian Lambert 72}}. === Adding available Local Horizontal Definitions === Local Horizontal CRS definitions are not available by default. - Download, unzip, and copy the CRS configuration files into the Orbit CRS directory \\ ''/program/system/crs/'' - Restart Orbit. \\ The Local Horizontal CRS definitions are linked automatically to the corresponding EPSG code. === Request New Local Horizontal Definitions === New definitions are added upon request, contact Orbit support. === About OSTN02 and OSTN15 === Related to OSTN02 and OSTN15 for ESPG 27700, 29901 and 29903. * OSTN02 and OSTN15 Local Horizontal CRS grid definitions include the corresponding Local Vertical CRS definition. * OSTN02 and OSTN15 grid files cannot be combined! Both are using the same EPSG codes. Do not copy both versions in the Orbit CRS directory. It is the one or the other. * Orbit's technical implementation scheme for OSTN grid corrections, see [[dev:technology:core:crs_ostn|]]. ==== Custom Horizontal CRS ==== Orbit supports Custom Horizontal CRS via a Prj file as defined by the [[http://www.opengeospatial.org/|OGC]]. Copy the OGC structured Prj file into the Orbit CRS directory and restart Orbit: \\ ''/program/system/crs/'' The following file name syntax must be applied to the copied Prj file: \\ ''_.prj'' * must be larger than 1,000,000 and smaller than 2,000,000. * is optional. * Example "1031370_Belge 1972 - Belgian Lambert 72.prj" * Scale_Factor : maximum 3 digits The Custom Horizontal CRS will be available via the Orbit CRS Window by entering a) the projection name as stated in the prj content, b) its number as used in the prj file name, or c) via the CRS By Country list under Undefined Area. ==== Data Transformation ==== Orbit embeds the latest set of TOWGS84 transformation parameters known by the EPSG library. Customization for the Geodetic CRS can be set via ''/program/system/crs/transformations_to_4326.ini''. * Note: Strict data input is required within the.ini file. Data must imported Tab separated(reference transformations_to_4326.ini) ==== Snake Grids ==== Snake Grids are supported in orbit as Local Horizontal Definitions, see above. \\ These specific horizontal definitions combine a correction grid and a local projection. === World Coordinates To Snake Grid Coordinates === ETRS89/WGS84 coordinates > GSB > Corrected ETRS89/WGS84 coordinates((Intermediate Reference Frame)) > Local Projection > Snake Grid coordinates The Grid Shift Binary (GSB) defines the raster to interpolate a correction for each global lat/lon coordinate(WGS84/ETRS89) to a corrected coordinate referencing an intermediate reference frame. \\ Next, a custom horizontal projection is applied to obtain cartesian coordinates from the geographic coordinates. ==== Inverted CRS definitions ==== Orbit follows CRS specifications, including the order of axis, as defined by the [[https://epsg.io/|EPSG Authority]]. Unfortunately, local authorities or other software might invert the order of axis to store or serve geospatial data. Especially for CRS defined to be Northing-Easting, data is often stored and served Easting-Northing. To consume user data provided as Easting-Northing, but defined by EPSG as Northing-Easting, Orbit introduced the Inverted CRS of an existing EPSG Code. \\ The inverted CRS are in the range of 3 million. E.g ESPG 3001 (NE) and 3003001 (EN). All CRS defined by EPSG to be Northing-Easing are pre-added to the list of Inverted CRS, and any EPSG code can be added to this list: /program/system/crs/inverted.ini ===== Vertical CRS Definitions ===== ==== Global and Local Vertical CRS ==== Orbit supports Global and Local Geoid references for the combined use of WGS84 Ellipsoidal and Orthometric height. \\ New definitions are added upon request, contact Orbit support. \\ * EPSG 3855, {{:technology:core:vertical_3855.geoid.egm2008_height.1x1.zip|EGM2008 height 1x1}}, World, grid 1'x1'. * EPSG 3855, {{:technology:coordinate_systems:vertical_3855.geoid.egm2008_height.zip|EGM2008 height 2.5x2.5}}, World, grid 2.5'x2.5'. * EPSG 3900, {{:technology:core:vertical_3900.geoid.n2000_height_20220912.zip|N2000 height}}, Finland - onshore. * EPSG 5610, {{:technology:core:vertical_5610.hvrs71.zip|HVRS71 height}}, Croatia - onshore. * EPSG 5613, {{:technology:coordinate_systems:vertical_5613.geoid.rh2000_height.zip|RH2000 height}}, Sweden. * EPSG 5621, {{:technology:core:poland_custom_vertical_crs_5621.7z |EVRF2007}}, Poland. * EPSG 5701, ODN height, United Kingdom. \\ This Vertical CRS is included in the corresponding Local Horizontal CRS definition, see above. \\ Configurations for 5701 include additional Vertical CRS: * EPSG 5740, ODN Orkney height. * EPSG 5741, Fair Isle height. * EPSG 5742, Lerwick height. * EPSG 5743, Foula height. * EPSG 5744, Sule Skerry height. * EPSG 5745, North Rona height. * EPSG 5746, Stornoway height. * EPSG 5747, St Kilda height. * EPSG 5748, Flannan Isles height. * EPSG 5749, St Marys height. * EPSG 5750, Douglas height. * EPSG 5703, North American Vertical Datum of 1988 for the conterminous United States as defined by [[http://www.ngs.noaa.gov/|National Geodetic Survey (NOAA)]]. \\ Definition based on GEOID12B: {{:technology:coordinate_systems:vertical_5703.geoid12b.zip|NAVD88-12B height (Metric)}} \\ Definition based on GEOID18: {{:technology:coordinate_systems:vertical_5703.geoid18.zip|NAVD88-18 height (Metric)}} \\ Configurations for 5703 include additional Vertical CRS: * EPSG 6640, NMVD03 height, Northern Marianas Vertical Datum of 2003. * EPSG 6641, PRVD02 height, Puerto Rico Vertical Datum of 2002. * EPSG 6642, VIVD09 height, Virgin Islands Vertical Datum of 2009. * EPSG 6643, ASVD02 height, American Samoa Vertical Datum of 2002. * EPSG 6644, GUVD04 height, Guam Vertical Datum of 2004. * EPSG 5705, {{:technology:core:vertical_5705.cr2005.czech_height.zip |CR2005}}, Czech and Slovak Republics. * EPSG 5709, {{:technology:core:vertical_5709.zip|NAP height}} , The Netherlands. * EPSG 5710, {{:technology:coordinate_systems:vertical_5710.geoid.ostend_height.zip|Ostend height}}, Belgium. * EPSG 5720, {{:technology:core:vertical_5720.nfg_height.zip |NGF-IGN69 height}}, France. * EPSG 5731, Malin Head height, Ireland. \\ This Vertical CRS is included in the corresponding Local Horizontal CRS definition, see above. * EPSG 5732, Belfast height, Northern Ireland. \\ This Vertical CRS is included in the corresponding Local Horizontal CRS definition, see above. * EPSG 5773, {{:technology:coordinate_systems:vertical_5773.geoid.egm96_height.15x15.zip|EGM96 height 15x15}}, World, grid 15'x15'. * EPSG 5782, {{:technology:core:vertical_5782.zip|Alicante height}}, Spain. * EPSG 5783, {{:technology:core:germany_custom_vertical_crs5783_v4.7z | GCG2011}}, Germany. * EPSG 5941,{{:technology:core:vertical_5941.geoidnn2000_height_.zip|NN2000 height}}, Norway. * EPSG 6360, North American Vertical Datum of 1988 for the conterminous United States as defined by [[http://www.ngs.noaa.gov/|National Geodetic Survey (NOAA)]]. \\ Definition based on GEOID12B: {{:technology:coordinate_systems:vertical_6360.geoid12b.zip|NAVD88-12B height (ftUS)}} \\ Definition based on GEOID18: {{:technology:coordinate_systems:vertical_6360.geoid18.zip|NAVD88-18 height (ftUS)}} \\ * EPSG 7839, {{:technology:core:vertical_7839.quasigeoid.nz2016.zip |NZVD2016}}, New Zealand. * EPSG 9245, {{:technology:core:9245_cgvd2013.zip |CGVD2013}}, Canada. * EPSG 9988, {{:technology:core:9988_israel_ilum1.2_20220125.7z |ILUM 1.2}}, Israel. Vertical CRS definitions are not available by default. This means that the vertical CRS can't be assigned to a horizontal CRS without relying on a resource representing the Geoid height. This resource doesn't exist by default in the software's installation folder. \\ - Download, unzip and copy the CRS configuration files into the Orbit CRS directory : \\ ''/program/system/crs/'' - Verify and enter if missing the EPSG codes (semicolon separated) of the Horizontal CRS that needs to be linked to the Vertical CRS into following Vertical CRS configuration file : \\ ''vertical_.ini'' \\ For example: available.in.horizontal.crs 4326;3395;31370 - Restart Orbit. ==== Custom Vertical CRS ==== Orbit supports Custom Vertical CRS via a Geoid Height Raster definition. In cooperation with the Orbit Support team, Geoid reference resource files can be converted into the required Orbit CRS configuration files. \\ One of the following resources representing the Geoid height ((Local Vertical CRS Definitions, Geoid height represents the height offset from Geoid reference to Ellipsoid reference. A Digital Terrain or Surface Model is not a Geoid Model.)) can be used to create the CRS configuration files : * Supported raster resource, see [[217:technology:supported_formats:index|]]. * Esri ascii raster file. * XYZ ascii file space, comma or semicolon separated. ==== Custom Vertical CRS via Offset or Scaling ==== Scaled and offset vertical CRS definitions. Custom Vertical CRS relies on already existing EPSG codes.\\ Into the Orbit CRS directory :''/program/system/crs/'' : * Create a Vertical CRS prj file ''_LocalOffsetVerticalCRS.prj''. \\ For example: ''9999_LocalOffsetVerticalCRS.prj'' and add inside VERTCS["LocallOffsetVerticalCRS"] \\ * Create a Vertical CRS configuration file : ''vertical_.ini''. Inside the file do the following: - Define the type transformation \\ ''type offset'' - Enter the EPSG codes (semicolon separated) of the Horizontal CRS that needs to be linked to the Vertical CRS. \\ For example: available.in.horizontal.crs 4326;3395;31370 - Add the value of the offset. \\ For example: vertical.offset 20 Restart Orbit to acknowledge in the software the new custom CRS. ==== Datum Transformation ==== Datum transformations are applied as defined by EPSG on XY coordinates. Z values are conserved as is, and no transformation is applied. \\ Datum transformation on Z values can be enabled e.g. to combine multiple 3D data resources with different ellipsoid height definitions. See [[dev:desktop:workspace:configurations|]] > Datum Transformation on Z coordinate ===== Imperial CRS, International Feet and US Survey Feet ===== Projected CRS using International feet (ft) or US survey feet (ftUS) units require special attention. The Orbit Core and Map Components support Projected CRS using ft and ftUS. Orbit uses https://www.epsg-registry.org/ as the reference database. In the United States, the Federal definition of the CRS is metric at all times, but State law defines the CRS in International feet or US survey feet. Some Extensions expect data to be stored as meters or degrees to operate properly. \\ When converting ft or ftUS Projected CRS into the equivalent Metric Projected CRS, display units can still be set to Imperial values. Display differs from storage. ===== Orbit CRS Settings ===== === Map CRS === All visible Datasets are re-projected on-the-fly into the Map CRS, if the Dataset CRS differs from the Map CRS. Orbit supports imagery to be reprojected. The Map CRS can be set to any supported geographic or projected (Metric, Imperial) CRS. \\ For optimal rendering performance, it is advised to set the Map CRS to be the same as the Dataset CRS of the visible Datasets to avoid on-the-fly reprojection. When having multiple Dataset CRS, set the Dataset CRS of the Dataset with the most vertices as Map CRS. ((Re-projecting datasets from their source Dataset CRS into another target Map CRS requires processing time. Consequently, large vector or point cloud resources will take more time to load and will slow down map rendering. It is advised to avoid on-the-fly re-projection by setting the Map CRS to be the same as the Dataset CRS.)). \\ If no Datasets are visible in the workspace, then the first visible Dataset CRS will set the Map CRS. The Map CRS can be set via [[dev:desktop:map:statusbar|]]. \\ The Map CRS is stored in [[dev:technology:supported_formats:other:ogw|]]. \\ The Start-Up Map CRS can be set and locked via [[dev:desktop:preferences:mapcanvas|]]. === Dataset CRS === Orbit applies a CRS for every Dataset. If no Dataset CRS is set, Orbit assumes the Dataset CRS to be the same as the Map CRS. \\ When combining Datasets with the different CRS, it is advised to define the CRS for every Dataset. \\ The Dataset CRS must be set correctly to any supported geocentric, geographic, or projected CRS. \\ * For ft and ftUS datasets it is advised to convert at import to the equivalent Metric Projected CRS (see note about Imperial CRS above). * For Mapping Resources it is advised to convert at import all included Datasets into the same Dataset CRS. The Dataset CRS can be set via [[dev:desktop:dataset:index|Context Menu]] > [[dev:desktop:dataset:general|]]. \\ The Dataset CRS is stored in the [[dev:technology:supported_formats:other:ord|Orbit Resource Descriptor file]]. === Measurement Units === Absolute measurements (2D and 3D Coordinates) use the MapCanvas CRS. In case the vertical MapCanvas CRS is in feet, then the Z-coordinate will be visualized in feet in the measurement sidebar. see [[dev:desktop:preferences:mapcanvas|]]