height correction, new defalt
This commit is contained in:
1 parent
0891cf12a5
commit
b692f94122
12 files changed
+792
-205
No files matched your search
+40
-29
@@ -45,9 +45,9 @@ a physical pen plotter.
|
||||
of the map, validate coordinates, and normalize their order.
|
||||
- Provide a predefined default rectangular map area that includes the city of
|
||||
Uithoorn in the Netherlands. Explicitly supplied corners override this default.
|
||||
- Default southwest corner: latitude 52.232025, longitude 4.784498.
|
||||
Default northeast corner: latitude 52.253985, longitude 4.863525.
|
||||
Command-line bounds use longitude first: 4.784498 52.232025 4.863525 52.253985.
|
||||
- Default southwest corner: latitude 52.232, longitude 4.784.
|
||||
Default northeast corner: latitude 52.258, longitude 4.864.
|
||||
Command-line bounds use longitude first: 4.784 52.232 4.864 52.258.
|
||||
- Store the actual bounds used, including when the default is selected, in the
|
||||
recording session. Later plotting must use those stored bounds rather than
|
||||
a potentially changed application default.
|
||||
@@ -114,31 +114,41 @@ a physical pen plotter.
|
||||
- Do not smooth across track gaps, on-ground interruptions, or flight changes.
|
||||
Handle repeated positions without generating invalid curve coordinates.
|
||||
- Clip the actual curves to the output bounds, not just their sample points,
|
||||
and use the same curved in-map portions for time and average-height selection.
|
||||
and use the same curved in-map portions for time and average-altitude selection.
|
||||
- Extend the visible tracks a little beyond the map boundary using actual
|
||||
recorded positions from the surrounding area, not fabricated extrapolation.
|
||||
- Keep the map background within its requested bounds and provide space in the
|
||||
SVG for the extended tracks and their labels.
|
||||
- Identify each flight track with its date, time, callsign or flight number when
|
||||
available, and average height above the map's average ground elevation.
|
||||
available, and average reported barometric (pressure) altitude in metres.
|
||||
- Do not present an OpenSky callsign as a verified passenger-facing flight
|
||||
number. Callsign-to-flight-number lookup is not required for the initial
|
||||
version.
|
||||
- Calculate the map's average ground elevation from terrain elevation data
|
||||
covering the requested map bounds, excluding the surrounding collection area.
|
||||
for landmass within the requested map bounds, excluding mapped water and the
|
||||
surrounding collection area. Preserve islands in water multipolygon relations.
|
||||
Use an area-weighted mean or an equivalent equal-area sampling method.
|
||||
- Calculate each track's average height as its average aircraft altitude over
|
||||
the portion inside the requested map bounds minus the map's average ground
|
||||
elevation. Outside-map extensions must not affect this calculation.
|
||||
- Use compatible units and a common vertical reference for aircraft altitude
|
||||
and terrain elevation, applying conversions where needed. Do not subtract
|
||||
terrain elevation directly from uncorrected barometric pressure altitude.
|
||||
- Label the result explicitly as average height above the map's average ground
|
||||
level, with units. This is not height above the terrain directly beneath each
|
||||
aircraft position and must not be presented as terrain clearance.
|
||||
- Indicate when the height cannot be calculated because compatible aircraft
|
||||
altitude or sufficient terrain data is unavailable; do not silently substitute
|
||||
altitude above sea level or assume zero ground elevation.
|
||||
- Average valid land samples only. Report the percentage and counts of sampled
|
||||
land with valid elevations, warn about missing land samples, and never classify
|
||||
missing terrain as water. Show land coverage in the SVG legend and metadata.
|
||||
- Obtain AHN DTM height maps automatically through PDOK during plotting for the
|
||||
Netherlands. Cache validated GeoTIFF subsets persistently and atomically,
|
||||
record source and NAP reference, and support explicit refresh and disabling
|
||||
of automatic terrain retrieval. Explicit local terrain inputs take precedence.
|
||||
- If AHN height maps are unavailable or the area is outside coverage, warn
|
||||
explicitly and continue rendering with the land-elevation summary unavailable.
|
||||
Reported aircraft altitude must remain independent of terrain availability.
|
||||
- Calculate each track's time-weighted average reported barometric altitude
|
||||
over the portion inside the requested map bounds. Outside-map extensions
|
||||
must not affect this calculation.
|
||||
- Do not subtract ground elevation or apply geoid, pressure, or vertical-reference
|
||||
corrections to aircraft altitude. The average land elevation is a separate,
|
||||
informational summary only.
|
||||
- Label aircraft values explicitly as reported barometric altitude with units,
|
||||
not height above ground, terrain clearance, or verified altitude above sea level.
|
||||
- Missing barometric altitude on a contributing segment makes that track's
|
||||
average unavailable, with an explicit warning. Do not fall back to geometric
|
||||
altitude. Zero and negative reported values are valid.
|
||||
- Make labels readable and indicate unavailable metadata explicitly.
|
||||
|
||||
## Implementation and validation
|
||||
@@ -148,8 +158,8 @@ a physical pen plotter.
|
||||
session selection, map generation, configuration, data-source limitations,
|
||||
and attribution.
|
||||
- Test coordinate handling, projection, local recording, track selection,
|
||||
average ground elevation, vertical-reference compatibility, average-height
|
||||
calculation, missing elevation data, and SVG generation.
|
||||
average land elevation, average reported barometric altitude, missing altitude
|
||||
and elevation data, terrain-independent flight labels, and SVG generation.
|
||||
- Test persistence of session bounds and observation associations, plotting
|
||||
after collection has stopped, and repeated plotting without changing the
|
||||
recorded flight data. Verify that collection does not require map or terrain
|
||||
@@ -172,15 +182,16 @@ a physical pen plotter.
|
||||
- Default to A4 landscape (297 by 210 mm), 12 mm page margins, a 0.3 mm pen,
|
||||
and track extensions of up to 4 mm beyond the map border.
|
||||
- Collect every 30 seconds within a 2,000 m margin around the saved map area.
|
||||
- Display timestamps in UTC using date and 24-hour time, and heights in metres.
|
||||
- Accept local terrain GeoTIFFs with a declared vertical reference. For
|
||||
orthometric terrain, accept a matching geoid-separation raster for converting
|
||||
ellipsoidal aircraft heights. Require explicit confirmation of the geometric
|
||||
altitude interpretation before calculating heights; otherwise label them
|
||||
unavailable. Never silently substitute barometric altitude.
|
||||
- Estimate average ground elevation using a 64 by 64 equal-area sampling grid.
|
||||
Any missing terrain sample makes the average unavailable.
|
||||
- Use time-weighted aircraft altitude with linear interpolation between recorded
|
||||
- Display timestamps in UTC using date and 24-hour time, and altitudes in metres.
|
||||
- Use PDOK AHN DTM `dtm_05m` via WCS for Dutch areas, requesting a 512 by 512
|
||||
nearest-neighbour subset in EPSG:28992, with elevations in metres relative
|
||||
to NAP. Accept local terrain GeoTIFFs with a declared vertical reference for
|
||||
the separate land-elevation summary. No geoid or aircraft datum conversion
|
||||
inputs are required or used.
|
||||
- Estimate average land elevation using a 64 by 64 equal-area sampling grid.
|
||||
Exclude mapped water, average available land elevations, and warn about missing
|
||||
land coverage. No valid land samples makes the average unavailable.
|
||||
- Use time-weighted reported barometric altitude with linear interpolation between recorded
|
||||
timestamps, restricted to the smoothed path's portion inside the map. Use
|
||||
centripetal Catmull-Rom interpolation converted to cubic Bezier curves for
|
||||
flight paths. Split tracks at changes
|
||||
|
||||
Reference in new issue
Block a user