Unity is an airborne/satellite sensor projection simulator designed to model the projected viewing polygon on the Earth’s surface based on specified sensor parameters.
- 3D Visualization: Utilizes Three.js for rendering and vector manipulation to represent the sensor’s field of view and footprint on the ground.
- Accurate Earth Representation: Employs math.gl to construct a WGS84-compatible Earth ellipsoid, ensuring precise geodetic calculations.
- DEM: Can receive a DEM in geotiff format to create more accurate predictions.
- Adjustable Sampling Rates: Allows customization of Earth’s surface resolution and sampling rates to balance between accuracy and performance.
- Airborne Sensing Strategies: Simulates multiple sensing strategies, like near-far, and elevation angle and AOV.
- Path Interpolation: Accounts for Earth’s curvature by spherically linearly interpolating SLERP input paths provided as GeoJSON LineStrings.
Creates the earth's surface mesh for a specified bbox, based on a WGS84 ellipsoid + DEM.
Interpolates the given geoJSON lanes using SLERP.
For a given sampling rate, and according to the configured sensor, Unity generates an array of vectors directed towards the Earth’s surface within the sensor's calculated FOV.
using Three.js' Raycaster, hit points are calculated on earth's surface mesh, and converted to cartographic coordinates.
Converts all the hit points into a single FeatureCollection<Polygon>
that can be projected onto a map, using turf's concave hull.
- Surface Resolution: The simulator’s accuracy is influenced by the Earth’s surface resolution, which can be fine-tuned as needed.
- Sampling Rate: The sampling rate is adjustable to balance between performance and precision.