Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dev:technology:core:crs [2023/06/26 10:23]
jeroen
dev:technology:core:crs [2024/04/04 18:27] (current)
glen
Line 9: Line 9:
 Use of CRS units foot (ft) or US survey foot (USft) required special attention.  Use of CRS units foot (ft) or US survey foot (USft) required special attention. 
  
-===== Horizontal CRS Definitions ===== +===== Horizontal CRS Definitions =====
  
 ==== EPSG registry ==== ==== EPSG registry ====
Line 41: Line 41:
 ==== Local Horizontal Definitions ==== ==== Local Horizontal Definitions ====
  
-Orbit supports Local Horizontal CRS and Grid Corrections as defined by local authorities. \\ +Orbit supports Local Horizontal CRS and Grid Corrections as defined by local authorities. 
-New definitions are added upon request, contact Orbit support+
  
   * EPSG 2039, {{:technology:core:1002039_israel_-_israeli_tm_grid.zip|Israel 1993 / Israeli TM Grid}}, Israel   * 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 2100, {{:technology:core:projection_grid_2100_hepos.zip|HEPOS Transformation}}, Greece
-  * EPSG 9300, {{:technology:core:projection_grid_9300.snakegrid_hs215.zip|HS2 Survey Grid 15 (SnakeGrid)}} +  * EPSG 9320, {{:technology:core:projection_grid_9320.SnakeGrid_XRail02.zip|XRail09-2002 (SnakeGrid)}} 
-  * EPSG 9301, {{:technology:core:projection_grid_9301.snakegrid_hs202.zip|HS2 Survey Grid 02 (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 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 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 9370, {{:technology:core:projection_grid_9370.snakegrid_mml07.zip|MML07 Grid (SnakeGrid)}}
Line 62: Line 63:
   * 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 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}}.   * 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. Local Horizontal CRS definitions are not available by default.
-  - Download, unzip and copy the CRS configuration files into the Orbit CRS directory \\ ''<Orbit installation directory>/program/system/crs/''+  - Download, unzipand copy the CRS configuration files into the Orbit CRS directory \\ ''<Orbit installation directory>/program/system/crs/''
   - Restart Orbit. \\ The Local Horizontal CRS definitions are linked automatically to the corresponding EPSG code.   - Restart Orbit. \\ The Local Horizontal CRS definitions are linked automatically to the corresponding EPSG code.
  
-Note related to OSTN02 and OSTN15 for ESPG 27700, 29901 and 29903.+=== 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 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.   * 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.
Line 79: Line 88:
 ''<Orbit installation directory>/program/system/crs/''  ''<Orbit installation directory>/program/system/crs/'' 
  
-Following file name syntax must be applied to the copied Prj file : \\ +The following file name syntax must be applied to the copied Prj file: \\ 
 ''<number>_<description>.prj'' ''<number>_<description>.prj''
   * <number> must be larger than 1,000,000 and smaller than 2,000,000.   * <number> must be larger than 1,000,000 and smaller than 2,000,000.
Line 88: Line 97:
 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. 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 ''<Install Dir>/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 ====
  
 Snake Grids are supported in orbit as Local Horizontal Definitions, see above. \\ Snake Grids are supported in orbit as Local Horizontal Definitions, see above. \\
-These specific horizontal definitions are a combination of a correction grid and a local projection. +These specific horizontal definitions combine a correction grid and a local projection. 
  
-=== World Coordinates Snake Grid Coordinates  ===+=== World Coordinates To Snake Grid Coordinates  ===
  
 ETRS89/WGS84 coordinates > GSB > Corrected ETRS89/WGS84 coordinates((Intermediate Reference Frame)) > Local Projection > Snake Grid coordinates ETRS89/WGS84 coordinates > GSB > Corrected ETRS89/WGS84 coordinates((Intermediate Reference Frame)) > Local Projection > Snake Grid coordinates
Line 101: Line 115:
 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. \\ 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.  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: <Install Dir>/program/system/crs/inverted.ini
 +
 +
  
 ===== Vertical CRS Definitions ===== ===== Vertical CRS Definitions =====
  
-==== Global and Local 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. \\ Orbit supports Global and Local Geoid references for the combined use of WGS84 Ellipsoidal and Orthometric height. \\
Line 115: Line 141:
   * EPSG 5613, {{:technology:coordinate_systems:vertical_5613.geoid.rh2000_height.zip|RH2000 height}}, Sweden.   * 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 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. \\ This Vertical CRS includes additionally following Vertical CRS :+  * 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 5740, ODN Orkney height.
     * EPSG 5741, Fair Isle height.     * EPSG 5741, Fair Isle height.
Line 127: Line 153:
     * EPSG 5749, St Marys height.     * EPSG 5749, St Marys height.
     * EPSG 5750, Douglas 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.geoid.navd88_height.zip|NAVD88 height (Metric)}}  \\ Definition based on GEOID18:  \\ Configurations for 5703 include additional Vertical CRS:+  * 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 6640, NMVD03 height, Northern Marianas Vertical Datum of 2003.
     * EPSG 6641, PRVD02 height, Puerto Rico Vertical Datum of 2002.     * EPSG 6641, PRVD02 height, Puerto Rico Vertical Datum of 2002.
Line 143: Line 169:
   * EPSG 5783, {{:technology:core:germany_custom_vertical_crs5783_v4.7z | GCG2011}}, Germany.   * 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 5941,{{:technology:core:vertical_5941.geoidnn2000_height_.zip|NN2000 height}}, Norway.
-  * EPSG 6360, {{:technology:coordinate_systems:vertical_6360.geoid.navd88_height_ftus.zip|NAVD88 height (ftUS)}}, North American Vertical Datum of 1988 for the conterminous United States. \\ Definition based on GEOID18 as defined by [[http://www.ngs.noaa.gov/|National Geodetic Survey (NOAA)]].+  * 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 7839, {{:technology:core:vertical_7839.quasigeoid.nz2016.zip |NZVD2016}}, New Zealand.
   * EPSG 9245, {{:technology:core:9245_cgvd2013.zip |CGVD2013}}, Canada.   * EPSG 9245, {{:technology:core:9245_cgvd2013.zip |CGVD2013}}, Canada.
Line 153: Line 179:
   - Restart Orbit.   - Restart Orbit.
  
-==== Custom Vertical CRS Definitions ====+==== Custom Vertical CRS ====
  
 Orbit supports Custom Vertical CRS via a Geoid Height Raster definition. Orbit supports Custom Vertical CRS via a Geoid Height Raster definition.
Line 163: Line 189:
   * XYZ ascii file space, comma or semicolon separated.   * XYZ ascii file space, comma or semicolon separated.
  
- +==== Custom Vertical CRS via Offset or Scaling ====
-=== Custom Vertical CRS via Offset or Scaling ===+
  
 Scaled and offset vertical CRS definitions. Custom Vertical CRS relies on already existing EPSG codes.\\ Scaled and offset vertical CRS definitions. Custom Vertical CRS relies on already existing EPSG codes.\\
Line 177: Line 202:
 Restart Orbit to acknowledge in the software the new custom CRS. Restart Orbit to acknowledge in the software the new custom CRS.
  
-===== Inverted CRS definitions =====  +==== Datum Transformation ====
- +
-For any coordinate system, Orbit follows the order of axes as defined by the EPSG library. As a result, Orbit expects data to also respect the order as defined by EPSG definition.  +
- +
-In practice, for various reasons like changes in the CRS definitions by local mapping authorities or different order of axes implementations in other software, data may be stored using a different order.  +
-Because of this, you will find that some coordinate systems are listed as both the original crs and the inverted one in the Orbit CRS Library. +
- +
-To define the projection of any resource, the original CRS should be used if the data is stored according to the EPSG order axes definition, and the inverted CRS should be used for data in which the order is reversed.  +
- +
-===== Datum Transformation =====+
  
-Datum transformations are applied as defined by EPSG on XY coordinates. Z values are conserved as is, no transformation is applied. \\+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. 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 See [[dev:desktop:workspace:configurations|]] > Datum Transformation on Z coordinate
  
-===== International feet and US survey feet ===== +===== Imperial CRS, International Feet and US Survey Feet =====
      
 Projected CRS using International feet (ft) or US survey feet (ftUS) units require special attention.  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 United States, the Federal definition of the CRS is metric at all time, but State law defines the CRS in International feet or US survey feet.+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.
  
-==== MapCanvas CRS ====+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.
  
-The MapCanvas CRS can be set to any CRS supported by Orbit - feet or metric. Although for optimal rendering performance, we do advice to use the CRS of the resources which are currently viewed. \\+===== Orbit CRS Settings =====
  
-Absolute measurements (2D and 3D Coordinates) use the MapCanvas CRS. In case the vertical MapCanvas CRS is in feet, than the Z-coordinate will be visualized in feet in the measurement sidebar.+=== Map CRS ===
  
-==== Resource 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.
  
-A resource can have any CRS supported by Orbit - feet or metricBut be careful with the following: +The Map CRS can be set to any supported geographic or projected (Metric, Imperial) CRS\\ 
-  * Some Orbit Extensions expect data to be stored as meters or degrees to operate +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 reprojectionWhen having multiple Dataset CRSset 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.)). \\ 
-  * For ObliqueUAS and Mobile Mapping resources and Vector Datasets, we do advise to convert the CRS to the parent metric definition when importing the original resource files into the optimized Orbit Runs+If no Datasets are visible in the workspace, then the first visible Dataset CRS will set the Map CRS.  
-  * All resources of a run or project should have the same CRS.+
  
-When using these converted resources, display and exports can still be set to ft or ftUS to get exactly the expected resultsA user won't notice the data is actually stored using the parent metric 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|]].
  
-==== Units of Measurements ====+=== Dataset CRS ===
  
-see [[dev:desktop:preferences:mapcanvas|]]+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. \\
  
-===== Orbit Dataset CRS =====+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.
  
-Every single resource has a CRS. \\ +The Dataset CRS can be set via [[dev:desktop:dataset:index|Context Menu]] > [[dev:desktop:dataset:general|]]. \\ 
-If no Orbit dataset CRS is set, Orbit will read the resource assuming that dataset has the same coordinate system as the MapCanvas (see below). When combining resources with the different coordinate systems it is strongly recommended to define the coordinate system for every single resource. \\ Orbit supports imagery to be reprojected on the fly.+The Dataset CRS is stored in the [[dev:technology:supported_formats:other:ord|Orbit Resource Descriptor file]].
  
-There are two ways to set the CRS of a dataset in Orbit : +=== Measurement Units ===
-  * [[dev:desktop:dataset:index|Context Menu]] > [[dev:desktop:dataset:general|]] +
-  * [[dev:desktop:dataset:index|Context Menu]] > Coordinate Reference System > Define Dataset CRS+
  
-The dataset CRS is saved in the Orbit Resource Descriptor file : +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.
-  * [[dev:technology:supported_formats:other:ord|]]+
  
-===== Orbit Map CRS ====== +see [[dev:desktop:preferences:mapcanvas|]]
- +
-All resources are displayed in the Map CRS. If the Dataset CRS differs from the Map CRS then the dataset will be re-projected on the fly to be displayed on Map.  +
- +
-=== Optimize Performance === +
- +
-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 using the Dataset CRS as Map CRS. When using multiple resources having different Dataset CRS, it is advised to use the Dataset CRS of the resources having most vertices as Map CRS.  +
- +
-=== Deformations === +
- +
-Re-projecting means deforming. To retain shape, angles, and presentation it's again advised to use the Dataset CRS as Map CRS.  +
- +
-=== Define Map CRS === +
- +
-The Map CRS can be changed quickly via the map status bar "Coordinate Reference System selection" window. \\ +
-Open this window via a single click on the current Map CRS in the [[dev:desktop:map:statusbar|map statusbar]]+
- +
-The map CRS on start-up is defined in your workspace  +
-  * Orbit desktop Standalone : [[dev:technology:supported_formats:other:ogw|]] +
-  * Orbit desktop Client, set by administrator via the [[dev:server:console:index|EOS Console]] > [[dev:server:console:workspaces|]] +
- +
-=== Default behavior and preferences === +
- +
-If no datasets are visible in the current workspace then the first visible dataset CRS will be used as Map CRS.  +
  
  
  
 
Last modified:: 2023/06/26 10:23