Configurations#
Pydantic models documentation for application configurations.
Content
Main#
main.py
The main configuration module containing base settings pydantic classes
- pydantic model gnatss.configs.main.ArrayCenter#
Array center base model.
Show JSON schema
{ "title": "ArrayCenter", "description": "Array center base model.", "type": "object", "properties": { "lat": { "description": "Latitude", "title": "Lat", "type": "number" }, "lon": { "description": "Longitude", "title": "Lon", "type": "number" }, "alt": { "default": 0.0, "description": "Altitude", "title": "Alt", "type": "number" } }, "required": [ "lat", "lon" ] }
- Fields:
- field alt: float = 0.0#
Altitude
- field lat: float [Required]#
Latitude
- field lon: float [Required]#
Longitude
- pydantic settings gnatss.configs.main.BaseConfiguration#
Base configuration class
Show JSON schema
{ "title": "BaseConfiguration", "description": "Base configuration class", "type": "object", "properties": {}, "additionalProperties": false }
- Config:
env_prefix: str = gnatss_
env_file_encoding: str = utf-8
env_nested_delimiter: str = __
- pydantic settings gnatss.configs.main.Configuration#
Configuration class to generate config object
Show JSON schema
{ "title": "Configuration", "description": "Configuration class to generate config object", "type": "object", "properties": { "site_id": { "description": "GNSS-A site name or code", "title": "Site Id", "type": "string" }, "campaign": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Observation campaign name", "title": "Campaign" }, "time_origin": { "anyOf": [ { "type": "string" }, { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Origin of time used in the file [UTC]", "title": "Time Origin" }, "ref_frame": { "const": "wgs84", "default": "wgs84", "description": "Reference frame used in the file", "enum": [ "wgs84" ], "title": "Ref Frame", "type": "string" }, "array_center": { "allOf": [ { "$ref": "#/$defs/ArrayCenter" } ], "description": "Array center to use for calculation" }, "transponders": { "description": "A list of transponders configurations", "items": { "$ref": "#/$defs/Transponder" }, "title": "Transponders", "type": "array" }, "travel_times_variance": { "default": 1e-10, "description": "VARIANCE (s**2) PXP two-way travel time measurement", "title": "Travel Times Variance", "type": "number" }, "travel_times_correction": { "default": 0.0, "description": "Correction to times in travel times (secs.)", "title": "Travel Times Correction", "type": "number" }, "transducer_delay_time": { "default": 0.0, "description": "Transducer Delay Time - delay at surface transducer (secs). ", "title": "Transducer Delay Time", "type": "number" }, "solver": { "anyOf": [ { "$ref": "#/$defs/Solver" }, { "type": "null" } ], "default": null, "description": "Solver configurations" }, "posfilter": { "anyOf": [ { "$ref": "#/$defs/PositionFilter" }, { "type": "null" } ], "default": null, "description": "Position filter configurations" }, "parsed": { "anyOf": [ { "$ref": "#/$defs/Parsed" }, { "type": "null" } ], "default": null, "description": "Position filter configurations" }, "output": { "anyOf": [ { "$ref": "#/$defs/OutputPath" }, { "type": "null" } ], "default": null, "description": "Output path configurations" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Any other optional comments", "title": "Notes" } }, "$defs": { "ArrayCenter": { "description": "Array center base model.", "properties": { "lat": { "description": "Latitude", "title": "Lat", "type": "number" }, "lon": { "description": "Longitude", "title": "Lon", "type": "number" }, "alt": { "default": 0.0, "description": "Altitude", "title": "Alt", "type": "number" } }, "required": [ "lat", "lon" ], "title": "ArrayCenter", "type": "object" }, "AtdOffset": { "description": "Antenna Transducer Offset base model.", "properties": { "forward": { "description": "forward offset", "title": "Forward", "type": "number" }, "rightward": { "description": "rightward offset", "title": "Rightward", "type": "number" }, "downward": { "description": "downward offset", "title": "Downward", "type": "number" } }, "required": [ "forward", "rightward", "downward" ], "title": "AtdOffset", "type": "object" }, "ExportObs": { "description": "Export observation data after filtering.", "properties": { "full": { "default": false, "description": "Only export the necessary data, including antenna covariance.", "title": "Full", "type": "boolean" } }, "title": "ExportObs", "type": "object" }, "GPSSolutionInput": { "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" }, "legacy": { "default": false, "description": "Flag to indicate if the input file is in legacy format.", "title": "Legacy", "type": "boolean" } }, "required": [ "path" ], "title": "GPSSolutionInput", "type": "object" }, "InputData": { "description": "Input data path specification base model", "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" } }, "required": [ "path" ], "title": "InputData", "type": "object" }, "OutputPath": { "description": "Output path base model.", "properties": { "path": { "description": "Path string to the output path. Ex. s3://bucket/my_output", "title": "Path", "type": "string" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" } }, "required": [ "path" ], "title": "OutputPath", "type": "object" }, "Parsed": { "description": "Parsed base model for 2-minute parsed position filtering routine", "properties": { "export": { "anyOf": [ { "$ref": "#/$defs/ExportObs" }, { "type": "null" } ], "default": null, "description": "Export observation data after filtering." }, "input_files": { "anyOf": [ { "$ref": "#/$defs/ParsedInputs" }, { "type": "null" } ], "default": null, "description": "Input files for 2-minute parsed position filtering routine." }, "atd_offsets": { "allOf": [ { "$ref": "#/$defs/AtdOffset" } ], "description": "Antenna Transducer Offset values." } }, "required": [ "atd_offsets" ], "title": "Parsed", "type": "object" }, "ParsedInputs": { "properties": { "gps_positions": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "GPS positions data path specification." }, "raw_data": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Raw data files telemetered to shore (Sonardyne SV-3 format, *.tar.gz)" } }, "title": "ParsedInputs", "type": "object" }, "PositionFilter": { "description": "Position filter base model for position filtering routine", "properties": { "export": { "anyOf": [ { "$ref": "#/$defs/ExportObs" }, { "type": "null" } ], "default": null, "description": "Export observation data after filtering." }, "input_files": { "anyOf": [ { "$ref": "#/$defs/PositionFilterInputs" }, { "type": "null" } ], "default": null, "description": "Input files for position filtering routine." }, "atd_offsets": { "allOf": [ { "$ref": "#/$defs/AtdOffset" } ], "description": "Antenna Transducer Offset values." } }, "required": [ "atd_offsets" ], "title": "PositionFilter", "type": "object" }, "PositionFilterInputs": { "properties": { "roll_pitch_heading": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Roll Pitch Heading (RPH) data path specification." }, "novatel": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Novatel data path specification." }, "novatel_std": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Novatel STD data path specification." }, "gps_positions": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "GPS positions data path specification." }, "travel_times": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Input travel times data path specification" } }, "title": "PositionFilterInputs", "type": "object" }, "ReferenceEllipsoid": { "description": "Reference ellipsoid base model", "properties": { "semi_major_axis": { "description": "Semi-major axis (m)", "title": "Semi Major Axis", "type": "number" }, "reverse_flattening": { "description": "Reverse flattening", "title": "Reverse Flattening", "type": "number" } }, "required": [ "semi_major_axis", "reverse_flattening" ], "title": "ReferenceEllipsoid", "type": "object" }, "Solver": { "description": "Solver transponder base model containing configurations\nfor GNSS-A inversion computation", "properties": { "defaults": { "allOf": [ { "$ref": "#/$defs/SolverGlobal" } ], "default": { "max_dat": 45000, "max_gps": 423000, "max_del": 15000, "max_brk": 20, "max_surv": 10, "max_sdt_obs": 2000, "max_obm": 472, "max_unmm": 9 } }, "transponders": { "anyOf": [ { "items": { "$ref": "#/$defs/Transponder" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "A list of transponders configurations", "title": "Transponders" }, "reference_ellipsoid": { "anyOf": [ { "$ref": "#/$defs/ReferenceEllipsoid" }, { "type": "null" } ], "description": "Reference ellipsoid configurations" }, "gps_sigma_limit": { "default": 0.05, "description": "Maximum positional sigma allowed to use GPS positions", "exclusiveMaximum": 100.0, "exclusiveMinimum": 0.0, "title": "Gps Sigma Limit", "type": "number" }, "std_dev": { "default": true, "description": "GPS positional uncertainty flag std. dev. (True) or variance (False)", "title": "Std Dev", "type": "boolean" }, "geoid_undulation": { "description": "Geoid undulation at sea surface point", "title": "Geoid Undulation", "type": "number" }, "ray_trace_type": { "default": "scale", "description": "Ray trace method to use", "enum": [ "scale", "1d" ], "title": "Ray Trace Type", "type": "string" }, "bisection_tolerance": { "default": 1e-10, "description": "Tolerance to stop bisection during ray trace", "title": "Bisection Tolerance", "type": "number" }, "array_center": { "anyOf": [ { "$ref": "#/$defs/ArrayCenter" }, { "type": "null" } ], "default": null, "description": "Array center to use for calculation" }, "travel_times_variance": { "default": 1e-10, "description": "VARIANCE (s**2) PXP two-way travel time measurement", "title": "Travel Times Variance", "type": "number" }, "transducer_delay_time": { "default": 0.0, "description": "Transducer Delay Time - delay at surface transducer (secs). ", "title": "Transducer Delay Time", "type": "number" }, "harmonic_mean_start_depth": { "default": 0.0, "description": "Start depth in meters for harmonic mean computation.", "title": "Harmonic Mean Start Depth", "type": "number" }, "input_files": { "allOf": [ { "$ref": "#/$defs/SolverInputs" } ], "description": "Input files data path specifications." }, "distance_limit": { "default": 150.0, "description": "Distance in meters from center beyond which points will be excluded from solution", "minimum": 0.0, "title": "Distance Limit", "type": "number" }, "residual_limit": { "default": 10000.0, "description": "Maximum residual in centimeters beyond which data points will be excluded from solution", "minimum": 0.0, "title": "Residual Limit", "type": "number" }, "residual_range_limit": { "default": 20000.0, "description": "Maximum residual range (maximum - minimum) in centimeters for a given epoch, beyond which data points will be excluded from solution", "minimum": 0.0, "title": "Residual Range Limit", "type": "number" }, "residual_outliers_threshold": { "default": 25.0, "description": "Residual outliers threshold acceptable before throwing an error in percent", "minimum": 0.0, "title": "Residual Outliers Threshold", "type": "number" }, "travel_times_correction": { "default": 0.0, "description": "Correction to times in travel times (secs.)", "title": "Travel Times Correction", "type": "number" }, "twtt_model": { "const": "simple_twtt", "default": "simple_twtt", "description": "Travel time model to use.", "enum": [ "simple_twtt" ], "title": "Twtt Model", "type": "string" } }, "required": [ "reference_ellipsoid", "geoid_undulation", "input_files" ], "title": "Solver", "type": "object" }, "SolverGlobal": { "description": "Solver global base model for inversion process.", "properties": { "max_dat": { "default": 45000, "title": "Max Dat", "type": "integer" }, "max_gps": { "default": 423000, "title": "Max Gps", "type": "integer" }, "max_del": { "default": 15000, "title": "Max Del", "type": "integer" }, "max_brk": { "default": 20, "title": "Max Brk", "type": "integer" }, "max_surv": { "default": 10, "title": "Max Surv", "type": "integer" }, "max_sdt_obs": { "default": 2000, "title": "Max Sdt Obs", "type": "integer" }, "max_obm": { "default": 472, "title": "Max Obm", "type": "integer" }, "max_unmm": { "default": 9, "title": "Max Unmm", "type": "integer" } }, "title": "SolverGlobal", "type": "object" }, "SolverInputs": { "properties": { "sound_speed": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Sound speed data path specification" }, "travel_times": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Travel times data path specification." }, "gps_solution": { "anyOf": [ { "$ref": "#/$defs/GPSSolutionInput" }, { "type": "null" } ], "default": null, "description": "GPS solution data path specification." }, "deletions": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Deletions file for unwanted data points." }, "quality_controls": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Quality control file(s) for user defined unwanted data points." } }, "title": "SolverInputs", "type": "object" }, "Transponder": { "description": "Transponder base model for each transponder configuration", "properties": { "lat": { "description": "Latitude", "title": "Lat", "type": "number" }, "lon": { "description": "Longitude", "title": "Lon", "type": "number" }, "height": { "description": "Transponder height in meters (m).", "title": "Height", "type": "number" }, "alt": { "description": "Transponder depth in meters (m).", "title": "Alt", "type": "number" }, "internal_delay": { "description": "Transponder internal delay in seconds (s). Assume transponder delay contains: delay-line, non-delay-line internal delays (determined at transdec) and any user set delay (dail-in).", "title": "Internal Delay", "type": "number" }, "sv_mean": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Dynamically generated sound velocity mean (m/s).", "title": "Sv Mean" }, "pxp_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Transponder id string. **This field will be computed during object creation**", "title": "Pxp Id" }, "azimuth": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transponder azimuth in degrees w.r.t. array center.", "title": "Azimuth" }, "elevation": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transponder elevation in degrees w.r.t. array center.", "title": "Elevation" } }, "required": [ "lat", "lon", "height", "alt", "internal_delay" ], "title": "Transponder", "type": "object" } }, "additionalProperties": false, "required": [ "site_id", "array_center", "transponders" ] }
- Config:
env_prefix: str = gnatss_
env_file_encoding: str = utf-8
env_nested_delimiter: str = __
- Fields:
- field array_center: ArrayCenter [Required]#
Array center to use for calculation
- field campaign: str | None = None#
Observation campaign name
- field notes: str | None = None#
Any other optional comments
- field output: OutputPath | None = None#
Output path configurations
- field parsed: Parsed | None = None#
Position filter configurations
- field posfilter: PositionFilter | None = None#
Position filter configurations
- field ref_frame: Literal['wgs84'] = 'wgs84'#
Reference frame used in the file
- field site_id: str [Required]#
GNSS-A site name or code
- field time_origin: str | datetime.datetime | None = None#
Origin of time used in the file [UTC]
- field transducer_delay_time: float = 0.0#
Transducer Delay Time - delay at surface transducer (secs).
- field transponders: list[Transponder] [Required]#
A list of transponders configurations
- field travel_times_correction: float = 0.0#
Correction to times in travel times (secs.)
- field travel_times_variance: float = 1e-10#
VARIANCE (s**2) PXP two-way travel time measurement
- setup_transponders()#
I/O#
- class gnatss.configs.io.CSVOutput(value)#
Default CSV output file names
- pydantic model gnatss.configs.io.InputData#
Input data path specification base model
Show JSON schema
{ "title": "InputData", "description": "Input data path specification base model", "type": "object", "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" } }, "required": [ "path" ] }
- Fields:
- field format: str | None = None#
File format of the data.
- field loader_kwargs: dict[str, Any] = {}#
Keyword arguments for the data loader.
- field path: str [Required]#
Path string to the data. Ex. s3://bucket/some_data.dat
- field storage_options: dict[str, Any] = {}#
Protocol keyword argument for specified file system. This is not needed for local paths
- get_files() list[str]#
Get the list of files in the directory
- model_post_init(context: Any, /) None#
This function is meant to behave like a BaseModel method to initialise private attributes.
It takes context as an argument since that’s what pydantic-core passes when calling it.
- Args:
self: The BaseModel instance. context: The context.
- property files: list[str]#
- pydantic model gnatss.configs.io.OutputPath#
Output path base model.
Show JSON schema
{ "title": "OutputPath", "description": "Output path base model.", "type": "object", "properties": { "path": { "description": "Path string to the output path. Ex. s3://bucket/my_output", "title": "Path", "type": "string" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" } }, "required": [ "path" ] }
- field path: str [Required]#
Path string to the output path. Ex. s3://bucket/my_output
- field storage_options: dict[str, Any] = {}#
Protocol keyword argument for specified file system. This is not needed for local paths
- model_post_init(context: Any, /) None#
This function is meant to behave like a BaseModel method to initialise private attributes.
It takes context as an argument since that’s what pydantic-core passes when calling it.
- Args:
self: The BaseModel instance. context: The context.
- property fs#
- class gnatss.configs.io.StrEnum(value)#
A custom string enum class
Solver#
solver.py
The solver module containing base models for solver configuration
- pydantic model gnatss.configs.solver.ArrayCenter#
Array center base model.
Show JSON schema
{ "title": "ArrayCenter", "description": "Array center base model.", "type": "object", "properties": { "lat": { "description": "Latitude", "title": "Lat", "type": "number" }, "lon": { "description": "Longitude", "title": "Lon", "type": "number" }, "alt": { "default": 0.0, "description": "Altitude", "title": "Alt", "type": "number" } }, "required": [ "lat", "lon" ] }
- Fields:
- field alt: float = 0.0#
Altitude
- field lat: float [Required]#
Latitude
- field lon: float [Required]#
Longitude
- pydantic model gnatss.configs.solver.GPSSolutionInput#
Show JSON schema
{ "title": "GPSSolutionInput", "type": "object", "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" }, "legacy": { "default": false, "description": "Flag to indicate if the input file is in legacy format.", "title": "Legacy", "type": "boolean" } }, "required": [ "path" ] }
- Fields:
- field legacy: bool = False#
Flag to indicate if the input file is in legacy format.
- model_post_init(context: Any, /) None#
We need to both initialize private attributes and call the user-defined model_post_init method.
- pydantic model gnatss.configs.solver.ReferenceEllipsoid#
Reference ellipsoid base model
Show JSON schema
{ "title": "ReferenceEllipsoid", "description": "Reference ellipsoid base model", "type": "object", "properties": { "semi_major_axis": { "description": "Semi-major axis (m)", "title": "Semi Major Axis", "type": "number" }, "reverse_flattening": { "description": "Reverse flattening", "title": "Reverse Flattening", "type": "number" } }, "required": [ "semi_major_axis", "reverse_flattening" ] }
- field reverse_flattening: float [Required]#
Reverse flattening
- field semi_major_axis: float [Required]#
Semi-major axis (m)
- property eccentricity: float | None#
- pydantic model gnatss.configs.solver.Solver#
Solver transponder base model containing configurations for GNSS-A inversion computation
Show JSON schema
{ "title": "Solver", "description": "Solver transponder base model containing configurations\nfor GNSS-A inversion computation", "type": "object", "properties": { "defaults": { "allOf": [ { "$ref": "#/$defs/SolverGlobal" } ], "default": { "max_dat": 45000, "max_gps": 423000, "max_del": 15000, "max_brk": 20, "max_surv": 10, "max_sdt_obs": 2000, "max_obm": 472, "max_unmm": 9 } }, "transponders": { "anyOf": [ { "items": { "$ref": "#/$defs/Transponder" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "A list of transponders configurations", "title": "Transponders" }, "reference_ellipsoid": { "anyOf": [ { "$ref": "#/$defs/ReferenceEllipsoid" }, { "type": "null" } ], "description": "Reference ellipsoid configurations" }, "gps_sigma_limit": { "default": 0.05, "description": "Maximum positional sigma allowed to use GPS positions", "exclusiveMaximum": 100.0, "exclusiveMinimum": 0.0, "title": "Gps Sigma Limit", "type": "number" }, "std_dev": { "default": true, "description": "GPS positional uncertainty flag std. dev. (True) or variance (False)", "title": "Std Dev", "type": "boolean" }, "geoid_undulation": { "description": "Geoid undulation at sea surface point", "title": "Geoid Undulation", "type": "number" }, "ray_trace_type": { "default": "scale", "description": "Ray trace method to use", "enum": [ "scale", "1d" ], "title": "Ray Trace Type", "type": "string" }, "bisection_tolerance": { "default": 1e-10, "description": "Tolerance to stop bisection during ray trace", "title": "Bisection Tolerance", "type": "number" }, "array_center": { "anyOf": [ { "$ref": "#/$defs/ArrayCenter" }, { "type": "null" } ], "default": null, "description": "Array center to use for calculation" }, "travel_times_variance": { "default": 1e-10, "description": "VARIANCE (s**2) PXP two-way travel time measurement", "title": "Travel Times Variance", "type": "number" }, "transducer_delay_time": { "default": 0.0, "description": "Transducer Delay Time - delay at surface transducer (secs). ", "title": "Transducer Delay Time", "type": "number" }, "harmonic_mean_start_depth": { "default": 0.0, "description": "Start depth in meters for harmonic mean computation.", "title": "Harmonic Mean Start Depth", "type": "number" }, "input_files": { "allOf": [ { "$ref": "#/$defs/SolverInputs" } ], "description": "Input files data path specifications." }, "distance_limit": { "default": 150.0, "description": "Distance in meters from center beyond which points will be excluded from solution", "minimum": 0.0, "title": "Distance Limit", "type": "number" }, "residual_limit": { "default": 10000.0, "description": "Maximum residual in centimeters beyond which data points will be excluded from solution", "minimum": 0.0, "title": "Residual Limit", "type": "number" }, "residual_range_limit": { "default": 20000.0, "description": "Maximum residual range (maximum - minimum) in centimeters for a given epoch, beyond which data points will be excluded from solution", "minimum": 0.0, "title": "Residual Range Limit", "type": "number" }, "residual_outliers_threshold": { "default": 25.0, "description": "Residual outliers threshold acceptable before throwing an error in percent", "minimum": 0.0, "title": "Residual Outliers Threshold", "type": "number" }, "travel_times_correction": { "default": 0.0, "description": "Correction to times in travel times (secs.)", "title": "Travel Times Correction", "type": "number" }, "twtt_model": { "const": "simple_twtt", "default": "simple_twtt", "description": "Travel time model to use.", "enum": [ "simple_twtt" ], "title": "Twtt Model", "type": "string" } }, "$defs": { "ArrayCenter": { "description": "Array center base model.", "properties": { "lat": { "description": "Latitude", "title": "Lat", "type": "number" }, "lon": { "description": "Longitude", "title": "Lon", "type": "number" }, "alt": { "default": 0.0, "description": "Altitude", "title": "Alt", "type": "number" } }, "required": [ "lat", "lon" ], "title": "ArrayCenter", "type": "object" }, "GPSSolutionInput": { "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" }, "legacy": { "default": false, "description": "Flag to indicate if the input file is in legacy format.", "title": "Legacy", "type": "boolean" } }, "required": [ "path" ], "title": "GPSSolutionInput", "type": "object" }, "InputData": { "description": "Input data path specification base model", "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" } }, "required": [ "path" ], "title": "InputData", "type": "object" }, "ReferenceEllipsoid": { "description": "Reference ellipsoid base model", "properties": { "semi_major_axis": { "description": "Semi-major axis (m)", "title": "Semi Major Axis", "type": "number" }, "reverse_flattening": { "description": "Reverse flattening", "title": "Reverse Flattening", "type": "number" } }, "required": [ "semi_major_axis", "reverse_flattening" ], "title": "ReferenceEllipsoid", "type": "object" }, "SolverGlobal": { "description": "Solver global base model for inversion process.", "properties": { "max_dat": { "default": 45000, "title": "Max Dat", "type": "integer" }, "max_gps": { "default": 423000, "title": "Max Gps", "type": "integer" }, "max_del": { "default": 15000, "title": "Max Del", "type": "integer" }, "max_brk": { "default": 20, "title": "Max Brk", "type": "integer" }, "max_surv": { "default": 10, "title": "Max Surv", "type": "integer" }, "max_sdt_obs": { "default": 2000, "title": "Max Sdt Obs", "type": "integer" }, "max_obm": { "default": 472, "title": "Max Obm", "type": "integer" }, "max_unmm": { "default": 9, "title": "Max Unmm", "type": "integer" } }, "title": "SolverGlobal", "type": "object" }, "SolverInputs": { "properties": { "sound_speed": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Sound speed data path specification" }, "travel_times": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Travel times data path specification." }, "gps_solution": { "anyOf": [ { "$ref": "#/$defs/GPSSolutionInput" }, { "type": "null" } ], "default": null, "description": "GPS solution data path specification." }, "deletions": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Deletions file for unwanted data points." }, "quality_controls": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Quality control file(s) for user defined unwanted data points." } }, "title": "SolverInputs", "type": "object" }, "Transponder": { "description": "Transponder base model for each transponder configuration", "properties": { "lat": { "description": "Latitude", "title": "Lat", "type": "number" }, "lon": { "description": "Longitude", "title": "Lon", "type": "number" }, "height": { "description": "Transponder height in meters (m).", "title": "Height", "type": "number" }, "alt": { "description": "Transponder depth in meters (m).", "title": "Alt", "type": "number" }, "internal_delay": { "description": "Transponder internal delay in seconds (s). Assume transponder delay contains: delay-line, non-delay-line internal delays (determined at transdec) and any user set delay (dail-in).", "title": "Internal Delay", "type": "number" }, "sv_mean": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Dynamically generated sound velocity mean (m/s).", "title": "Sv Mean" }, "pxp_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Transponder id string. **This field will be computed during object creation**", "title": "Pxp Id" }, "azimuth": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transponder azimuth in degrees w.r.t. array center.", "title": "Azimuth" }, "elevation": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transponder elevation in degrees w.r.t. array center.", "title": "Elevation" } }, "required": [ "lat", "lon", "height", "alt", "internal_delay" ], "title": "Transponder", "type": "object" } }, "required": [ "reference_ellipsoid", "geoid_undulation", "input_files" ] }
- Fields:
- field array_center: ArrayCenter | None = None#
Array center to use for calculation
- field bisection_tolerance: float = 1e-10#
Tolerance to stop bisection during ray trace
- field defaults: SolverGlobal = SolverGlobal(max_dat=45000, max_gps=423000, max_del=15000, max_brk=20, max_surv=10, max_sdt_obs=2000, max_obm=472, max_unmm=9)#
- field distance_limit: float = 150.0#
Distance in meters from center beyond which points will be excluded from solution
- Constraints:
ge = 0.0
- field geoid_undulation: float [Required]#
Geoid undulation at sea surface point
- field gps_sigma_limit: float = 0.05#
Maximum positional sigma allowed to use GPS positions
- Constraints:
gt = 0.0
lt = 100.0
- field harmonic_mean_start_depth: float = 0.0#
Start depth in meters for harmonic mean computation.
- field input_files: SolverInputs [Required]#
Input files data path specifications.
- field ray_trace_type: Literal['scale', '1d'] = 'scale'#
Ray trace method to use
- field reference_ellipsoid: ReferenceEllipsoid | None [Required]#
Reference ellipsoid configurations
- field residual_limit: float = 10000.0#
Maximum residual in centimeters beyond which data points will be excluded from solution
- Constraints:
ge = 0.0
- field residual_outliers_threshold: float = 25.0#
Residual outliers threshold acceptable before throwing an error in percent
- Constraints:
ge = 0.0
- field residual_range_limit: float = 20000.0#
Maximum residual range (maximum - minimum) in centimeters for a given epoch, beyond which data points will be excluded from solution
- Constraints:
ge = 0.0
- field std_dev: bool = True#
GPS positional uncertainty flag std. dev. (True) or variance (False)
- field transducer_delay_time: float = 0.0#
Transducer Delay Time - delay at surface transducer (secs).
- field transponders: list[Transponder] | None = None#
A list of transponders configurations
- field travel_times_correction: float = 0.0#
Correction to times in travel times (secs.)
- field travel_times_variance: float = 1e-10#
VARIANCE (s**2) PXP two-way travel time measurement
- field twtt_model: Literal['simple_twtt'] = 'simple_twtt'#
Travel time model to use.
- pydantic model gnatss.configs.solver.SolverGlobal#
Solver global base model for inversion process.
Show JSON schema
{ "title": "SolverGlobal", "description": "Solver global base model for inversion process.", "type": "object", "properties": { "max_dat": { "default": 45000, "title": "Max Dat", "type": "integer" }, "max_gps": { "default": 423000, "title": "Max Gps", "type": "integer" }, "max_del": { "default": 15000, "title": "Max Del", "type": "integer" }, "max_brk": { "default": 20, "title": "Max Brk", "type": "integer" }, "max_surv": { "default": 10, "title": "Max Surv", "type": "integer" }, "max_sdt_obs": { "default": 2000, "title": "Max Sdt Obs", "type": "integer" }, "max_obm": { "default": 472, "title": "Max Obm", "type": "integer" }, "max_unmm": { "default": 9, "title": "Max Unmm", "type": "integer" } } }
- Fields:
- field max_brk: int = 20#
- field max_dat: int = 45000#
- field max_del: int = 15000#
- field max_gps: int = 423000#
- field max_obm: int = 472#
- field max_sdt_obs: int = 2000#
- field max_surv: int = 10#
- field max_unmm: int = 9#
- pydantic model gnatss.configs.solver.SolverInputs#
Show JSON schema
{ "title": "SolverInputs", "type": "object", "properties": { "sound_speed": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Sound speed data path specification" }, "travel_times": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Travel times data path specification." }, "gps_solution": { "anyOf": [ { "$ref": "#/$defs/GPSSolutionInput" }, { "type": "null" } ], "default": null, "description": "GPS solution data path specification." }, "deletions": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Deletions file for unwanted data points." }, "quality_controls": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Quality control file(s) for user defined unwanted data points." } }, "$defs": { "GPSSolutionInput": { "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" }, "legacy": { "default": false, "description": "Flag to indicate if the input file is in legacy format.", "title": "Legacy", "type": "boolean" } }, "required": [ "path" ], "title": "GPSSolutionInput", "type": "object" }, "InputData": { "description": "Input data path specification base model", "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" } }, "required": [ "path" ], "title": "InputData", "type": "object" } } }
- Fields:
- field gps_solution: GPSSolutionInput | None = None#
GPS solution data path specification.
- pydantic model gnatss.configs.solver.SolverTransponder#
Solver transponder base model for each transponder configuration
Show JSON schema
{ "title": "SolverTransponder", "description": "Solver transponder base model for each transponder configuration", "type": "object", "properties": { "lat": { "description": "Latitude", "title": "Lat", "type": "number" }, "lon": { "description": "Longitude", "title": "Lon", "type": "number" }, "height": { "description": "Transponder depth in meters (m).", "title": "Height", "type": "number" }, "internal_delay": { "description": "Transponder internal delay in seconds (s). Assume transponder delay contains: delay-line, non-delay-line internal delays (determined at transdec) and any user set delay (dail-in).", "title": "Internal Delay", "type": "number" }, "sv_mean": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Dynamically generated sound velocity mean (m/s).", "title": "Sv Mean" }, "pxp_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Transponder id string. **This field will be computed during object creation**", "title": "Pxp Id" }, "azimuth": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transponder azimuth in degrees w.r.t. array center.", "title": "Azimuth" }, "elevation": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transponder elevation in degrees w.r.t. array center.", "title": "Elevation" } }, "required": [ "lat", "lon", "height", "internal_delay" ] }
- Fields:
- field azimuth: float | None = None#
Transponder azimuth in degrees w.r.t. array center.
- field elevation: float | None = None#
Transponder elevation in degrees w.r.t. array center.
- field height: float [Required]#
Transponder depth in meters (m).
- field internal_delay: float [Required]#
Transponder internal delay in seconds (s). Assume transponder delay contains: delay-line, non-delay-line internal delays (determined at transdec) and any user set delay (dail-in).
- field lat: float [Required]#
Latitude
- field lon: float [Required]#
Longitude
- field pxp_id: str | None = None#
Transponder id string. This field will be computed during object creation
- field sv_mean: float | None = None#
Dynamically generated sound velocity mean (m/s).
Posfilter#
posfilter.py
The posfilter module containing base models for position filtering configuration
- pydantic model gnatss.configs.posfilter.AtdOffset#
Antenna Transducer Offset base model.
Show JSON schema
{ "title": "AtdOffset", "description": "Antenna Transducer Offset base model.", "type": "object", "properties": { "forward": { "description": "forward offset", "title": "Forward", "type": "number" }, "rightward": { "description": "rightward offset", "title": "Rightward", "type": "number" }, "downward": { "description": "downward offset", "title": "Downward", "type": "number" } }, "required": [ "forward", "rightward", "downward" ] }
- field downward: float [Required]#
downward offset
- field forward: float [Required]#
forward offset
- field rightward: float [Required]#
rightward offset
- pydantic model gnatss.configs.posfilter.ExportObs#
Export observation data after filtering.
Show JSON schema
{ "title": "ExportObs", "description": "Export observation data after filtering.", "type": "object", "properties": { "full": { "default": false, "description": "Only export the necessary data, including antenna covariance.", "title": "Full", "type": "boolean" } } }
- Fields:
- field full: bool = False#
Only export the necessary data, including antenna covariance.
- pydantic model gnatss.configs.posfilter.PositionFilter#
Position filter base model for position filtering routine
Show JSON schema
{ "title": "PositionFilter", "description": "Position filter base model for position filtering routine", "type": "object", "properties": { "export": { "anyOf": [ { "$ref": "#/$defs/ExportObs" }, { "type": "null" } ], "default": null, "description": "Export observation data after filtering." }, "input_files": { "anyOf": [ { "$ref": "#/$defs/PositionFilterInputs" }, { "type": "null" } ], "default": null, "description": "Input files for position filtering routine." }, "atd_offsets": { "allOf": [ { "$ref": "#/$defs/AtdOffset" } ], "description": "Antenna Transducer Offset values." } }, "$defs": { "AtdOffset": { "description": "Antenna Transducer Offset base model.", "properties": { "forward": { "description": "forward offset", "title": "Forward", "type": "number" }, "rightward": { "description": "rightward offset", "title": "Rightward", "type": "number" }, "downward": { "description": "downward offset", "title": "Downward", "type": "number" } }, "required": [ "forward", "rightward", "downward" ], "title": "AtdOffset", "type": "object" }, "ExportObs": { "description": "Export observation data after filtering.", "properties": { "full": { "default": false, "description": "Only export the necessary data, including antenna covariance.", "title": "Full", "type": "boolean" } }, "title": "ExportObs", "type": "object" }, "InputData": { "description": "Input data path specification base model", "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" } }, "required": [ "path" ], "title": "InputData", "type": "object" }, "PositionFilterInputs": { "properties": { "roll_pitch_heading": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Roll Pitch Heading (RPH) data path specification." }, "novatel": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Novatel data path specification." }, "novatel_std": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Novatel STD data path specification." }, "gps_positions": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "GPS positions data path specification." }, "travel_times": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Input travel times data path specification" } }, "title": "PositionFilterInputs", "type": "object" } }, "required": [ "atd_offsets" ] }
- Fields:
- field input_files: PositionFilterInputs | None = None#
Input files for position filtering routine.
- pydantic model gnatss.configs.posfilter.PositionFilterInputs#
Show JSON schema
{ "title": "PositionFilterInputs", "type": "object", "properties": { "roll_pitch_heading": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Roll Pitch Heading (RPH) data path specification." }, "novatel": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Novatel data path specification." }, "novatel_std": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Novatel STD data path specification." }, "gps_positions": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "GPS positions data path specification." }, "travel_times": { "anyOf": [ { "$ref": "#/$defs/InputData" }, { "type": "null" } ], "default": null, "description": "Input travel times data path specification" } }, "$defs": { "InputData": { "description": "Input data path specification base model", "properties": { "path": { "description": "Path string to the data. Ex. s3://bucket/some_data.dat", "title": "Path", "type": "string" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "File format of the data.", "title": "Format" }, "storage_options": { "default": {}, "description": "Protocol keyword argument for specified file system. This is not needed for local paths", "title": "Storage Options", "type": "object" }, "loader_kwargs": { "default": {}, "description": "Keyword arguments for the data loader.", "title": "Loader Kwargs", "type": "object" } }, "required": [ "path" ], "title": "InputData", "type": "object" } } }
- Fields:
Transponders#
- pydantic model gnatss.configs.transponders.Transponder#
Transponder base model for each transponder configuration
Show JSON schema
{ "title": "Transponder", "description": "Transponder base model for each transponder configuration", "type": "object", "properties": { "lat": { "description": "Latitude", "title": "Lat", "type": "number" }, "lon": { "description": "Longitude", "title": "Lon", "type": "number" }, "height": { "description": "Transponder height in meters (m).", "title": "Height", "type": "number" }, "alt": { "description": "Transponder depth in meters (m).", "title": "Alt", "type": "number" }, "internal_delay": { "description": "Transponder internal delay in seconds (s). Assume transponder delay contains: delay-line, non-delay-line internal delays (determined at transdec) and any user set delay (dail-in).", "title": "Internal Delay", "type": "number" }, "sv_mean": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Dynamically generated sound velocity mean (m/s).", "title": "Sv Mean" }, "pxp_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Transponder id string. **This field will be computed during object creation**", "title": "Pxp Id" }, "azimuth": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transponder azimuth in degrees w.r.t. array center.", "title": "Azimuth" }, "elevation": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Transponder elevation in degrees w.r.t. array center.", "title": "Elevation" } }, "required": [ "lat", "lon", "height", "alt", "internal_delay" ] }
- Fields:
- Validators:
sync_height_alt»all fields
- field alt: float [Required]#
Transponder depth in meters (m).
- Validated by:
- field azimuth: float | None = None#
Transponder azimuth in degrees w.r.t. array center.
- Validated by:
- field elevation: float | None = None#
Transponder elevation in degrees w.r.t. array center.
- Validated by:
- field height: float [Required]#
Transponder height in meters (m).
- Validated by:
- field internal_delay: float [Required]#
Transponder internal delay in seconds (s). Assume transponder delay contains: delay-line, non-delay-line internal delays (determined at transdec) and any user set delay (dail-in).
- Validated by:
- field lat: float [Required]#
Latitude
- Validated by:
- field lon: float [Required]#
Longitude
- Validated by:
- field pxp_id: str | None = None#
Transponder id string. This field will be computed during object creation
- Validated by:
- field sv_mean: float | None = None#
Dynamically generated sound velocity mean (m/s).
- Validated by:
- validator sync_height_alt » all fields#
Sync height and alt values