CoreSimGeo.h#
ROS/acres_core_sim/include/acres_core_sim/CoreSimGeo.h Generated
The simulator's georeference without Unreal: the game's datum chain from the grid ENU frame of the ACRE tile to NAD83(2011) latitude / longitude and UTM zone 16N, as the Polaris' INS stream reports them (AcresSensors.cpp FAcresSensorRecorder::InsEpoch with sensors.json "ins.frame": "nad83"), and the affine world <-> UTM map of the simulator-control channel (AcresSimControl.cpp WorldToUtm / UtmToWorld).
Chain (Calibration/Polaris/geo.py documents it in full): grid ENU m -> EPSG:2968 (NAD83(HARN) / Indiana West, US survey feet, origin site.json origin_source_ft) -> NAD83(HARN) latitude / longitude by the inverse transverse Mercator of Snyder (1987) on GRS80 (the game's IndianaWestFeetToGeographic, ported here unchanged) -> + the constant NADCON5 HARN -> NAD83(2011) shift at the site (sensors.json gnss.datum) -> UTM by Krueger's series (Karney 2011; the game's header-only AcresGeoUtm.h). Heights: NAVD88 (origin height + ENU up) plus the GEOID12B plane of sensors.json. The WGS84(G2139) branch (a time-dependent Helmert) is not needed for the Polaris' RTK fix and is not ported.
Pure functions after Load; any thread.
IndianaWestFeetToGeographic#
EPSG:2968 grid coordinates (US survey feet) to NAD83(HARN) latitude / longitude, deg (the game's AcresGeo::IndianaWestFeetToGeographic: Snyder 1987 inverse TM series on GRS80, lat0 37.5, lon0 -87.0833333, k0 0.999966667, false easting 900000 m, false northing 250000 m).
FSiteGeoreference#
The site's georeference (site.json origin, sensors.json gnss.datum).
| Name | Type | Unit | Default | Description |
|---|---|---|---|---|
UtmOriginE, UtmOriginN, GridRotationDeg |
double |
Origin of the affine map (UTM of world 0, 0), m, and its grid rotation, deg. | ||
OriginFt |
double |
site.json origin_source_ft (EPSG:2968 easting, northing, NAVD88 height; US survey feet). | ||
HarnTo2011DegLat, HarnTo2011DegLon, GeoidN0M, GeoidDnDeM, GeoidDnDnM |
double |
NADCON5 HARN -> NAD83(2011) shift, deg; GEOID12B plane N = N0 + dN/dE E + dN/dN N (m, m/m, m/m). |
FSiteGeoreference::Load#
Reads Content/Simulation/ACRE/site.json and Content/Simulation/sensors.json.
| Argument | Description |
|---|---|
ContentDir |
Acres/Content/Simulation. |
Error |
Why it failed (may be null). |
Returns: False when a file is missing or malformed.
FSiteGeoreference::EnuToNad83#
NAD83(2011) latitude, longitude (deg) and ellipsoidal height (m) of a grid ENU point.
FSiteGeoreference::EnuToUtm#
UTM of a grid ENU point through the full chain (NAD83(2011), zone Zone), m.
FSiteGeoreference::WorldToUtm#
The control channel's affine georeference: world (grid ENU) to UTM 16N and back, exact to a few millimetres across the tile; GridRotationDeg is the UTM azimuth of the world's grid north.