- import mobile sensors for project area 'Voegelsberg'

This commit is contained in:
Arno Kaimbacher 2022-03-24 17:42:27 +01:00
parent 7f08225b40
commit 56e3df1cf4
9 changed files with 289 additions and 1 deletions

View File

@ -78,6 +78,9 @@ class SensorType:
elif type_ == "piezometer": # PIEZOMETER elif type_ == "piezometer": # PIEZOMETER
self.pattern = {"name": "piezometer", "type": 'fixed', "attributes": [ self.pattern = {"name": "piezometer", "type": 'fixed', "attributes": [
("Elevation", "m")]} ("Elevation", "m")]}
elif type_ == "tachymeter": # TACHYMETER
self.pattern = {"name": "tachymeter", "type": 'mobile', "attributes": [
("TachymeterLocation", "go")]}
elif type_ == "noise": # NOISE elif type_ == "noise": # NOISE
self.pattern = {"name": "noise", "type": 'fixed', "attributes": [ self.pattern = {"name": "noise", "type": 'fixed', "attributes": [
("Battery level", "m"), ("Noise", "m")]} ("Battery level", "m"), ("Noise", "m")]}

View File

@ -32,6 +32,7 @@ d:/Software/geomon/.venv/Scripts/python.exe -m pip install -U autopep8
python -m pip install fdb python -m pip install fdb
python -m pip install sqlalchemy-firebird python -m pip install sqlalchemy-firebird
python -m pip uninstall psycopg2 python -m pip uninstall psycopg2
python -m pip install pyproj
Marshmallow provides functionality to serialize and deserialize Python objects as they flow out of and into our JSON-based REST API. Marshmallow converts Python class instances to objects that can be converted to JSON. Marshmallow provides functionality to serialize and deserialize Python objects as they flow out of and into our JSON-based REST API. Marshmallow converts Python class instances to objects that can be converted to JSON.
python -m pip install marshmallow-sqlalchemy marshmallow python -m pip install marshmallow-sqlalchemy marshmallow

View File

@ -1 +0,0 @@
# https://lists.ogc.org/pipermail/sensorml/2008-September/000573.html

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd http://www.opengis.net/sos/2.0 http://schemas.opengis.net/sos/2.0/sosInsertSensor.xsd http://www.opengis.net/swes/2.0 http://schemas.opengis.net/swes/2.0/swes.xsd"><env:Body><swes:InsertSensor service="SOS" version="2.0.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:sos="http://www.opengis.net/sos/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:sml="http://www.opengis.net/sensorml/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd"><swes:procedureDescriptionFormat>http://www.opengis.net/sensorml/2.0</swes:procedureDescriptionFormat><swes:procedureDescription><sml:PhysicalSystem gml:id="{procedure_identifier}"><gml:identifier codeSpace="uniqueID">{procedure_identifier}</gml:identifier><sml:identification><sml:IdentifierList><sml:identifier><sml:Term definition="urn:ogc:def:identifier:OGC:1.0:longName"><sml:label>longName</sml:label><sml:value>{procedure_name}</sml:value></sml:Term></sml:identifier><sml:identifier><sml:Term definition="urn:ogc:def:identifier:OGC:1.0:shortName"><sml:label>shortName</sml:label><sml:value>{procedure_name}</sml:value></sml:Term></sml:identifier></sml:IdentifierList></sml:identification><sml:capabilities name="offerings"><sml:CapabilityList><!-- Parsed and removed during InsertSensor/UpdateSensorDescription, added during DescribeSensor. --><!-- Offering is generated if not specified. --><sml:capability name="offeringID"><swe:Text definition=\"urn:ogc:def:identifier:OGC:offeringID\"><swe:label>{offering_label}</swe:label><swe:value>{offering_name}</swe:value></swe:Text></sml:capability></sml:CapabilityList></sml:capabilities><sml:capabilities name="metadata"><sml:CapabilityList><!-- status indicates, whether sensor is insitu (true) or remote (false) --><sml:capability name="insitu"><swe:Boolean definition="insitu"><swe:value>true</swe:value></swe:Boolean></sml:capability><!-- status indicates, whether sensor is mobile (true) or fixed/stationary (false) --><sml:capability name="mobile"><swe:Boolean definition="mobile"><swe:value>true</swe:value></swe:Boolean></sml:capability></sml:CapabilityList></sml:capabilities><sml:featuresOfInterest><sml:FeatureList definition=\"http://www.opengis.net/def/featureOfInterest/identifier\"><swe:label>featuresOfInterest</swe:label><sml:feature><sams:SF_SpatialSamplingFeature xmlns:sams=\"http://www.opengis.net/samplingSpatial/2.0\" gml:id=\"ssf_b3a826dd44012201b01323232323041f7a92e0cc47260eb9888f6a4e9f747\"><gml:identifier codeSpace=\"http://www.opengis.net/def/nil/OGC/0/unknown\">{feature_id}</gml:identifier><gml:name codeSpace=\"http://www.opengis.net/def/nil/OGC/0/unknown\">{feature_name}</gml:name><sf:type xmlns:sf=\"http://www.opengis.net/sampling/2.0\" xlink:href=\"http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint\"/><sf:sampledFeature xmlns:sf=\"http://www.opengis.net/sampling/2.0\" xlink:href=\"http://www.opengis.net/def/nil/OGC/0/unknown\"/><sams:shape><ns:Point xmlns:ns=\"http://www.opengis.net/gml/3.2\" ns:id=\"Point_ssf_b3a826dd44012201b013c90c51da28c041f7a92e0cc47260eb9888f6a4e9f747\"><ns:pos srsName=\"http://www.opengis.net/def/crs/EPSG/0/4326\">{coordinates}</ns:pos></ns:Point></sams:shape></sams:SF_SpatialSamplingFeature></sml:feature></sml:FeatureList></sml:featuresOfInterest><sml:position><swe:Vector referenceFrame="urn:ogc:def:crs:EPSG::4326"><swe:coordinate name="easting"><swe:Quantity axisID="x"><swe:uom code="degree"/><swe:value>{cord_x}</swe:value></swe:Quantity></swe:coordinate><swe:coordinate name="northing"><swe:Quantity axisID="y"><swe:uom code="degree"/><swe:value>{cord_y}</swe:value></swe:Quantity></swe:coordinate><swe:coordinate name="altitude"><swe:Quantity axisID="z"><swe:uom code="m"/><swe:value>{height}</swe:value></swe:Quantity></swe:coordinate></swe:Vector></sml:position></sml:PhysicalSystem></swes:procedureDescription><!-- multiple values possible --><swes:observableProperty>TachymeterLocation</swes:observableProperty><swes:metadata><sos:SosInsertionMetadata><sos:observationType>http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_GeometryObservation</sos:observationType><sos:featureOfInterestType>http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint</sos:featureOfInterestType></sos:SosInsertionMetadata></swes:metadata></swes:InsertSensor></env:Body></env:Envelope>

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd http://www.opengis.net/sos/2.0 http://schemas.opengis.net/sos/2.0/sosInsertSensor.xsd http://www.opengis.net/swes/2.0 http://schemas.opengis.net/swes/2.0/swes.xsd">
<env:Body>
<swes:InsertSensor service="SOS" version="2.0.0"
xmlns:swes="http://www.opengis.net/swes/2.0"
xmlns:sos="http://www.opengis.net/sos/2.0"
xmlns:swe="http://www.opengis.net/swe/2.0"
xmlns:sml="http://www.opengis.net/sensorml/2.0"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:gco="http://www.isotc211.org/2005/gco"
xmlns:gmd="http://www.isotc211.org/2005/gmd">
<swes:procedureDescriptionFormat>http://www.opengis.net/sensorml/2.0</swes:procedureDescriptionFormat>
<swes:procedureDescription>
<sml:PhysicalSystem gml:id="D5_1">
<gml:identifier codeSpace="uniqueID">D5_1</gml:identifier>
<sml:identification>
<sml:IdentifierList>
<sml:identifier>
<sml:Term definition="urn:ogc:def:identifier:OGC:1.0:longName">
<sml:label>longName</sml:label>
<sml:value>D5_1</sml:value>
</sml:Term>
</sml:identifier>
<sml:identifier>
<sml:Term definition="urn:ogc:def:identifier:OGC:1.0:shortName">
<sml:label>shortName</sml:label>
<sml:value>D5_1</sml:value>
</sml:Term>
</sml:identifier>
</sml:IdentifierList>
</sml:identification>
<sml:capabilities name="offerings">
<sml:CapabilityList> <!-- Parsed and removed during InsertSensor/UpdateSensorDescription, added during DescribeSensor. --> <!-- Offering is generated if not specified. -->
<sml:capability name="offeringID">
<swe:Text definition="urn:ogc:def:identifier:OGC:offeringID">
<swe:label>Vögelsberg Tachymeter</swe:label>
<swe:value>D5_1</swe:value>
</swe:Text>
</sml:capability>
</sml:CapabilityList>
</sml:capabilities>
<sml:capabilities name="metadata">
<sml:CapabilityList> <!-- status indicates, whether sensor is insitu (true) or remote (false) -->
<sml:capability name="insitu">
<swe:Boolean definition="insitu">
<swe:value>true</swe:value>
</swe:Boolean>
</sml:capability> <!-- status indicates, whether sensor is mobile (true) or fixed/stationary (false) -->
<sml:capability name="mobile">
<swe:Boolean definition="mobile">
<swe:value>true</swe:value>
</swe:Boolean>
</sml:capability>
</sml:CapabilityList>
</sml:capabilities>
<sml:featuresOfInterest>
<sml:FeatureList definition="http://www.opengis.net/def/featureOfInterest/identifier">
<swe:label>featuresOfInterest</swe:label>
<sml:feature>
<sams:SF_SpatialSamplingFeature xmlns:sams="http://www.opengis.net/samplingSpatial/2.0" gml:id="ssf_b3a826dd44012201b01323232323041f7a92e0cc47260eb9888f6a4e9f747">
<gml:identifier codeSpace="http://www.opengis.net/def/nil/OGC/0/unknown">D5_1</gml:identifier>
<gml:name codeSpace="http://www.opengis.net/def/nil/OGC/0/unknown">origin of D5_1</gml:name>
<sf:type xmlns:sf="http://www.opengis.net/sampling/2.0" xlink:href="http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint"/>
<sf:sampledFeature xmlns:sf="http://www.opengis.net/sampling/2.0" xlink:href="http://www.opengis.net/def/nil/OGC/0/unknown"/>
<sams:shape>
<ns:Point xmlns:ns="http://www.opengis.net/gml/3.2" ns:id="Point_ssf_b3a826dd44012201b013c90c51da28c041f7a92e0cc47260eb9888f6a4e9f747">
<ns:pos srsName="http://www.opengis.net/def/crs/EPSG/0/4326">11.597409730065536 47.27196543449542</ns:pos>
</ns:Point>
</sams:shape>
</sams:SF_SpatialSamplingFeature>
</sml:feature>
</sml:FeatureList>
</sml:featuresOfInterest>
<sml:position>
<swe:Vector referenceFrame="urn:ogc:def:crs:EPSG::4326">
<swe:coordinate name="easting">
<swe:Quantity axisID="x">
<swe:uom code="degree"/>
<swe:value>11.597409730065536</swe:value>
</swe:Quantity>
</swe:coordinate>
<swe:coordinate name="northing">
<swe:Quantity axisID="y">
<swe:uom code="degree"/>
<swe:value>47.27196543449542</swe:value>
</swe:Quantity>
</swe:coordinate>
<swe:coordinate name="altitude">
<swe:Quantity axisID="z">
<swe:uom code="m"/>
<swe:value>909.1935</swe:value>
</swe:Quantity>
</swe:coordinate>
</swe:Vector>
</sml:position>
</sml:PhysicalSystem>
</swes:procedureDescription> <!-- multiple values possible -->
<swes:observableProperty>TachymeterLocation</swes:observableProperty>
<swes:metadata>
<sos:SosInsertionMetadata>
<sos:observationType>http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_GeometryObservation</sos:observationType>
<sos:featureOfInterestType>http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint</sos:featureOfInterestType>
</sos:SosInsertionMetadata>
</swes:metadata>
</swes:InsertSensor>
</env:Body>
</env:Envelope>

View File

@ -0,0 +1,139 @@
# https://lists.ogc.org/pipermail/sensorml/2008-September/000573.html
import csv
import requests
from pyproj import Transformer
from insert_sensor.wrapper import (Offering, FoI, Procedure, SensorType)
class Sensor:
"""
A class to represent an input sensor.
...
Attributes
----------
name : str
first name of the person
x : float
token to access soso service
y : float
token to access soso service
"""
def __init__(self, name: str, x_coord: float, y_coord: float):
self.name = name
self.x_coord = x_coord
self.y_coord = y_coord
# delimiter: it refers to the character used to separate values (or fields) in the CSV file. It defaults to comma (,)
# quotechar : it refers to the single character string that will be used to quote values
# if special characters (like delimiter) appears inside the field. It defaults to ".
def main():
''' main method '''
with open('voegelsberg/insert_sensors/sensors_origin.csv','rt') as csvfile:
spamreader = csv.DictReader(csvfile, delimiter=';', quotechar='"')
for row in spamreader:
# print(row)
proj = Transformer.from_crs(31254, 4326, always_xy=True)
x1, y1, z1 = (float(row['Y']), float(row['X']), float(row['H']))
x2, y2 = proj.transform(x1, y1)
print((x2, y2)) # (11.597409730065536, 47.27196543449542)
sensor_name = row['Punktnummer']
# platform ampflwang_kb1_inclinometer
offering = Offering(
"https://geomon.geologie.ac.at/52n-sos-webapp/api/offerings/",
sensor_name,
"Vögelsberg Tachymeter"
)
procedure = Procedure (sensor_name, sensor_name)
foi_name = "origin of " + sensor_name
foi = FoI("degree", "m", (x2, y2, z1),
sensor_name, foi_name)
# now insert sensor via rest service:
sensor_type=SensorType("tachymeter")
sos_url = 'https://geomon.geologie.ac.at/52n-sos-webapp/service'
headers = {'Content-Type': 'application/soap+xml'} # set what your server accepts
xml = get_xml(offering, procedure, foi, sensor_type)
# print(xml)
# exit()
request = requests.post(sos_url, data = xml, headers=headers)
print(request.text)
def get_xml(offering, procedure, foi, sensor_type):
"""
Prepares the body of a InsertSensor request for JSON biding.
:param offering: an instance of class Offering.Type object.
:param Procedure: instance of class Procedure. type object.
:param foi: feature of interest. Instance of FoI
:param sensor_type: SensorType object
:return: valid body for an InsertSensor request.
"""
# shortName = offering.name # string
# longName = 'Sibratsgfall test' # string
# Offering values
gml_id='\"' + str(procedure.id) + '\"' # Offering name, double quoted
off_name = '\"' + str(offering.name) + '\"' # Offering name, double quoted
offering_name = offering.name
offering_label = offering.label
# offID = offering.fullId # URL format of full id
# featureName = featureID = cordX = cordY = height = h_unit = z_unit = coordinates = ""
if foi is not None: # check if feature of interest should be declare
# feature_id = 'https://geomon.geologie.ac.at/52n-sos-webapp/api/features/' + \
# str(foi.fid) # URL format
cord_x = str(foi.x) # longitude degrees, float
cord_y = str(foi.y) # latitude degrees, float
coordinates = cord_x + " " + cord_y
height = str(foi.z) # altitude in meters, float
# h_unit = foi.Hunit # units for horizontal coordinates
# z_unit = foi.Vunit # units for altitude
feature_id = foi.fid # "feature location"
feature_name = foi.name # "feature location"
else:
pass
procedure_name = procedure.name
procedure_identifier = procedure.id # URL,
obs_types = []
output_list = '' # output list element for describe procedure
properties_list = []
for attr in sensor_type.pattern["attributes"]:
obs_prop_name = '\"' + attr[0] + '\"' # attribute name
# print(obs_prop_name)
unit_name = sensor_type.om_types[attr[1]] # om type
# magnitud = a # ??
obs_name = obs_prop_name.replace('\"', '')
obs_name = "".join(obs_name.split()) # observable property name
output = '<sml:output name=' + obs_prop_name + '><swe:Quantity definition=' + \
'\"' + (obs_name) + '\"' + \
'></swe:Quantity></sml:output>'
output_list = output_list + output
# add property identifier to the list.
properties_list.append(obs_name)
# prepare list of measurement types
# A sensor can not registry duplicated sensor types.
this_type = "http://www.opengis.net/def/observationType/OGC-OM/2.0/"+unit_name
if this_type not in obs_types: # when new type appears
obs_types.append(this_type)
else:
continue
# Unit of measurement:
unit_name = '\"' + procedure.name + '\"' # double quoted string
# unit = omType # one of the MO measurement types
xml = f'<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd http://www.opengis.net/sos/2.0 http://schemas.opengis.net/sos/2.0/sosInsertSensor.xsd http://www.opengis.net/swes/2.0 http://schemas.opengis.net/swes/2.0/swes.xsd"><env:Body><swes:InsertSensor service="SOS" version="2.0.0" xmlns:swes="http://www.opengis.net/swes/2.0" xmlns:sos="http://www.opengis.net/sos/2.0" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:sml="http://www.opengis.net/sensorml/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd"><swes:procedureDescriptionFormat>http://www.opengis.net/sensorml/2.0</swes:procedureDescriptionFormat><swes:procedureDescription><sml:PhysicalSystem gml:id="{procedure_identifier}"><gml:identifier codeSpace="uniqueID">{procedure_identifier}</gml:identifier><sml:identification><sml:IdentifierList><sml:identifier><sml:Term definition="urn:ogc:def:identifier:OGC:1.0:longName"><sml:label>longName</sml:label><sml:value>{procedure_name}</sml:value></sml:Term></sml:identifier><sml:identifier><sml:Term definition="urn:ogc:def:identifier:OGC:1.0:shortName"><sml:label>shortName</sml:label><sml:value>{procedure_name}</sml:value></sml:Term></sml:identifier></sml:IdentifierList></sml:identification><sml:capabilities name="offerings"><sml:CapabilityList><!-- Parsed and removed during InsertSensor/UpdateSensorDescription, added during DescribeSensor. --><!-- Offering is generated if not specified. --><sml:capability name="offeringID"><swe:Text definition=\"urn:ogc:def:identifier:OGC:offeringID\"><swe:label>{offering_label}</swe:label><swe:value>{offering_name}</swe:value></swe:Text></sml:capability></sml:CapabilityList></sml:capabilities><sml:capabilities name="metadata"><sml:CapabilityList><!-- status indicates, whether sensor is insitu (true) or remote (false) --><sml:capability name="insitu"><swe:Boolean definition="insitu"><swe:value>true</swe:value></swe:Boolean></sml:capability><!-- status indicates, whether sensor is mobile (true) or fixed/stationary (false) --><sml:capability name="mobile"><swe:Boolean definition="mobile"><swe:value>true</swe:value></swe:Boolean></sml:capability></sml:CapabilityList></sml:capabilities><sml:featuresOfInterest><sml:FeatureList definition=\"http://www.opengis.net/def/featureOfInterest/identifier\"><swe:label>featuresOfInterest</swe:label><sml:feature><sams:SF_SpatialSamplingFeature xmlns:sams=\"http://www.opengis.net/samplingSpatial/2.0\" gml:id=\"ssf_b3a826dd44012201b01323232323041f7a92e0cc47260eb9888f6a4e9f747\"><gml:identifier codeSpace=\"http://www.opengis.net/def/nil/OGC/0/unknown\">{feature_id}</gml:identifier><gml:name codeSpace=\"http://www.opengis.net/def/nil/OGC/0/unknown\">{feature_name}</gml:name><sf:type xmlns:sf=\"http://www.opengis.net/sampling/2.0\" xlink:href=\"http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint\"/><sf:sampledFeature xmlns:sf=\"http://www.opengis.net/sampling/2.0\" xlink:href=\"http://www.opengis.net/def/nil/OGC/0/unknown\"/><sams:shape><ns:Point xmlns:ns=\"http://www.opengis.net/gml/3.2\" ns:id=\"Point_ssf_b3a826dd44012201b013c90c51da28c041f7a92e0cc47260eb9888f6a4e9f747\"><ns:pos srsName=\"http://www.opengis.net/def/crs/EPSG/0/4326\">{coordinates}</ns:pos></ns:Point></sams:shape></sams:SF_SpatialSamplingFeature></sml:feature></sml:FeatureList></sml:featuresOfInterest><sml:position><swe:Vector referenceFrame="urn:ogc:def:crs:EPSG::4326"><swe:coordinate name="easting"><swe:Quantity axisID="x"><swe:uom code="degree"/><swe:value>{cord_x}</swe:value></swe:Quantity></swe:coordinate><swe:coordinate name="northing"><swe:Quantity axisID="y"><swe:uom code="degree"/><swe:value>{cord_y}</swe:value></swe:Quantity></swe:coordinate><swe:coordinate name="altitude"><swe:Quantity axisID="z"><swe:uom code="m"/><swe:value>{height}</swe:value></swe:Quantity></swe:coordinate></swe:Vector></sml:position></sml:PhysicalSystem></swes:procedureDescription><!-- multiple values possible --><swes:observableProperty>TachymeterLocation</swes:observableProperty><swes:metadata><sos:SosInsertionMetadata><sos:observationType>http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_GeometryObservation</sos:observationType><sos:featureOfInterestType>http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint</sos:featureOfInterestType></sos:SosInsertionMetadata></swes:metadata></swes:InsertSensor></env:Body></env:Envelope>'
return xml
if __name__ == '__main__':
main()

View File

@ -0,0 +1,31 @@
Punktnummer;Y;X;H
D5_1;95675.3391;237785.1414;909.1935
D5_2;95696.6153;237774.4089;909.7036
D5_3;95677.525;237758.1408;918.655
D5_4;95660.9035;237763.5671;918.3268
D5_5;95699.3158;237775.079;907.6681
D5_6;95703.8642;237767.2277;907.8379
D5a_1;95691.3392;237738.9666;918.6065
D5a_2;95673.6734;237739.4492;917.8516
D7_1;95685.4347;237703.6357;933.123
D7a_1;95747.6147;237672.6819;930.5737
D7a_2;95720.7093;237694.181;930.5045
D7a_3;95699.4549;237683.1964;933.3164
D8_1;95646.3503;237636.8525;961.7559
D37_2;95536.4016;237692.8418;954.2123
M268-119J1;95809.8082;237592.3322;948.9804
D11_2;95603.1758;237480.9831;1034.6149
D26_1;95547.6455;237522.9762;1019.6538
D28_1;95513.2751;237547.057;1016.6386
D15_1;95138.0629;237729.2769;1036.1869
D18_1;95321.7767;237932.6057;948.8271
KB3_17;95712.3558;237914.1799;856.1474
D_WS_1;95431.2387;237830.7249;922.1413
D12a_1;95615.5822;237379.1464;1060.2257
D13_2;95453.7142;237263.1551;1142.5906
D14_1;95309.8206;237431.2252;1116.0777
D31_1;95425.8945;237478.7819;1079.4518
GNSS1_M;95221.0164;238158.8625;885.3358
GNSS2_M;96079.1201;237157.2512;995.3009
GNSS3_M;95480.9654;237105.8024;1194.5292
M81018-18J1;96040.3146;237233.7806;994.132
1 Punktnummer Y X H
2 D5_1 95675.3391 237785.1414 909.1935
3 D5_2 95696.6153 237774.4089 909.7036
4 D5_3 95677.525 237758.1408 918.655
5 D5_4 95660.9035 237763.5671 918.3268
6 D5_5 95699.3158 237775.079 907.6681
7 D5_6 95703.8642 237767.2277 907.8379
8 D5a_1 95691.3392 237738.9666 918.6065
9 D5a_2 95673.6734 237739.4492 917.8516
10 D7_1 95685.4347 237703.6357 933.123
11 D7a_1 95747.6147 237672.6819 930.5737
12 D7a_2 95720.7093 237694.181 930.5045
13 D7a_3 95699.4549 237683.1964 933.3164
14 D8_1 95646.3503 237636.8525 961.7559
15 D37_2 95536.4016 237692.8418 954.2123
16 M268-119J1 95809.8082 237592.3322 948.9804
17 D11_2 95603.1758 237480.9831 1034.6149
18 D26_1 95547.6455 237522.9762 1019.6538
19 D28_1 95513.2751 237547.057 1016.6386
20 D15_1 95138.0629 237729.2769 1036.1869
21 D18_1 95321.7767 237932.6057 948.8271
22 KB3_17 95712.3558 237914.1799 856.1474
23 D_WS_1 95431.2387 237830.7249 922.1413
24 D12a_1 95615.5822 237379.1464 1060.2257
25 D13_2 95453.7142 237263.1551 1142.5906
26 D14_1 95309.8206 237431.2252 1116.0777
27 D31_1 95425.8945 237478.7819 1079.4518
28 GNSS1_M 95221.0164 238158.8625 885.3358
29 GNSS2_M 96079.1201 237157.2512 995.3009
30 GNSS3_M 95480.9654 237105.8024 1194.5292
31 M81018-18J1 96040.3146 237233.7806 994.132

0
voegelsberg/main.py Normal file
View File

View File

@ -0,0 +1,4 @@
http://istsos.org/en/v3.0.0-Beta/systemtypes.html
http://istsos.org/en/v3.0.0-Beta/insertsensor.html
https://sist.pages.in2p3.fr/anf21-sos52north/04_o-and-m/#mobile-in-situ-sensors