Last updated: February 2th, 2024
The OGC TestBed-19 proposes extensions to existing geospatial standards for handling data in space. At the most fundamental level, a few changes were proposed for the ISO 19111 standard. Those changes are then propagated to the OGC GeoAPI interfaces, the Apache SIS implementation, and the GeoTIFF tags. Since the TestBed is experimental, those changes were applied in branches. Links are given below, and their content may change at any time if future TestBeds continue this work or if some proposals are integrated in standards.
Source code
Compiled code (not an official release)
Requirements (not included in above links)
For testing, unzip the "apache-sis-2.0-SNAPSHOT.zip"
file in any directory.
The instructions on the Apache SIS web site
can be applied, with only the ZIP filename changed. Then copy the
TestBed-19 experiment data nearby.
Those data are an image of Didymos asteroid and its Dimorphos moonlet seen by the
DART before the impact,
together with auxiliary files for referencing and metadata.
The encoding experiment can be done by running the following commands in a Java shell (jshell
).
Texts in green and blue are commands to enter in command-line and JShell respectively,
and texts in black are outputs.
The paths to the Apache SIS directory and to the DART data directory may need to be adapted.
./apache-sis-2.0-SNAPSHOT/bin/sis_shell | Welcome to JShell -- Version 21 | For an introduction type: /help intro SIS.TRANSLATE.metadata("*.xml").output("data/DART_camera.tiff").run("data/DART_camera.png") command> sis translate --metadata "*.xml" --output "data/DART_camera.tiff" "data/DART_camera.png" SIS.CRS.run("data/DART_camera.tiff") command> sis crs "data/DART_camera.tiff" EngineeringCRS["DART spacecraft spherical CRS", EngineeringDatum["DART center of mass"], CS[spherical, 2], Axis["Relative bearing (V)", CLOCKWISE], Axis["Altitude (α)", up], Unit["arc-second", 4.84813681109536E-6]]
The Coordinate Reference System (CRS) encoded in GeoTIFF does not specify how this CRS is related to the Earth or other bodies. This relationship is specified in separated files, using Geographic Markup Language (GML) in the Testbed 19 experiment. The rest of this page shows how such a chain of operations can be concatenated with information encoded in the GeoTIFF file. The result is a chain of operations from a CRS in space to pixel coordinates in the GeoTIFF image. This demonstration transforms the points listed in a CSV file. Coordinates are expressed in above DART Engineering CRS extended to a four-dimensional space. That four-dimensional CRS is described in a GML file and can be seen with the following command in the JShell environment:
SIS.CRS.run("file:data/coordinate-transformations/OperationChain.xml#DART") command> sis crs "file:data/coordinate-transformations/OperationChain.xml#DART" CompoundCRS["DART CRS + time", EngineeringCRS["DART spacecraft spherical CRS", EngineeringDatum["DART center of mass"], CS[spherical, 3], Axis["Relative bearing (V)", CLOCKWISE, Unit["arc-second", 4.84813681109536E-6]], Axis["Altitude (α)", up, Unit["arc-second", 4.84813681109536E-6]], Axis["Distance (D)", AWAY_FROM, Unit["kilometre", 1000]], Id["JPL", -135, Citation["JPL:HORIZONS"]]], TimeCRS["Truncated Julian days", TimeDatum["Truncated Julian epoch", TimeOrigin[1968-05-24]], CS[temporal, 1], Axis["Time (t)", future], TimeUnit["day", 86400], Id["TB19-D001", "TimeCRS"]], Scope["Testbed 19 demonstration."], Id["TB19-D001", "DART"]] /exit
Points in the CSV file can be transformed with the following command in the JShell environment. See the Testbed 19 engineering report for more explanation about the content of the GML files that are read by this demo.
SIS.TRANSFORM.inverse().operation("data/coordinate-transformations/OperationChain.xml").run("data/PointOfInterests.csv") command> sis transform --inverse --operation "data/coordinate-transformations/OperationChain.xml" "data/PointOfInterests.csv" # Source : DART CRS + time (TB19-D001:DART) # Target : Dimorphos CRS + time (TB19-D001:DimorphosCRS) # Operations : Dimorphos to DART (TB19-D001:DimorphosToDART) # Domain : Unknown X (km), Y (km), Z (km), Time (d) 32368.631542, -111486.252095, -52616.071373, 19851.666667 -316291.614923, 332683.160016, 125381.007799, 19848.000000 /exit
The execution of a chain of operations up to pixel coordinates in above GeoTIFF image
is performed by the org.opengis.testbed.T19D001.Demo
Java file in the
GitHub repository
As of January 2024, this demo requires a local build of Apache SIS from the above-cited sources.
This is because the features experimented in Testbed 19 are not yet integrated in OGC standards.