Compare commits
19 Commits
3accf4cf74
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 098a02527f | |||
| 30f1104b6d | |||
| 0e8154dc23 | |||
| 8431bad4ff | |||
| 01abbc81d9 | |||
| 86bfd54928 | |||
| ae38545212 | |||
| cd0d60093e | |||
| 425e55f2a5 | |||
| 67c2540c26 | |||
| fe5e69dcf3 | |||
| 1654155f53 | |||
| b652f432b5 | |||
| ac03826d3e | |||
| a31d101576 | |||
| cfc5d60bb9 | |||
| 787ad56a03 | |||
| 6428e15757 | |||
| b5f5161b3d |
2
.idea/Masterprojekt-Campusnetz.iml
generated
2
.idea/Masterprojekt-Campusnetz.iml
generated
@@ -4,7 +4,7 @@
|
|||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="Python 3.14 (Masterprojekt)" jdkType="Python SDK" />
|
<orderEntry type="jdk" jdkName="Python 3.14" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -499,7 +499,7 @@
|
|||||||
<routine id="190" parent="1" name="fts5"/>
|
<routine id="190" parent="1" name="fts5"/>
|
||||||
<schema id="191" parent="1" name="main">
|
<schema id="191" parent="1" name="main">
|
||||||
<Current>1</Current>
|
<Current>1</Current>
|
||||||
<LastIntrospectionLocalTimestamp>2025-12-18.10:56:29</LastIntrospectionLocalTimestamp>
|
<LastIntrospectionLocalTimestamp>2025-12-22.12:12:45</LastIntrospectionLocalTimestamp>
|
||||||
</schema>
|
</schema>
|
||||||
<argument id="192" parent="16">
|
<argument id="192" parent="16">
|
||||||
<ArgumentDirection>R</ArgumentDirection>
|
<ArgumentDirection>R</ArgumentDirection>
|
||||||
@@ -1592,166 +1592,260 @@
|
|||||||
</argument>
|
</argument>
|
||||||
<table id="555" parent="191" name="Beobachtungen"/>
|
<table id="555" parent="191" name="Beobachtungen"/>
|
||||||
<table id="556" parent="191" name="Genauigkeiten"/>
|
<table id="556" parent="191" name="Genauigkeiten"/>
|
||||||
<table id="557" parent="191" name="Instrumente"/>
|
<table id="557" parent="191" name="GenauigkeitenGNSS"/>
|
||||||
<table id="558" parent="191" name="Netzpunkte"/>
|
<table id="558" parent="191" name="Instrumente"/>
|
||||||
<table id="559" parent="191" name="sqlite_master">
|
<table id="559" parent="191" name="Netzpunkte"/>
|
||||||
|
<table id="560" parent="191" name="sqlite_master">
|
||||||
<System>1</System>
|
<System>1</System>
|
||||||
</table>
|
</table>
|
||||||
<column id="560" parent="555" name="beobachtungenID">
|
<column id="561" parent="555" name="beobachtungenID">
|
||||||
<Position>1</Position>
|
<Position>1</Position>
|
||||||
<StoredType>INTEGER|0s</StoredType>
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="561" parent="555" name="beobachtungsgruppeID">
|
<column id="562" parent="555" name="beobachtungsgruppeID">
|
||||||
<Position>2</Position>
|
<Position>2</Position>
|
||||||
<StoredType>INTEGER|0s</StoredType>
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="562" parent="555" name="punktnummer_sp">
|
<column id="563" parent="555" name="punktnummer_sp">
|
||||||
<Position>3</Position>
|
<Position>3</Position>
|
||||||
<StoredType>TEXT(10)|0s</StoredType>
|
<StoredType>TEXT(10)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="563" parent="555" name="punktnummer_zp">
|
<column id="564" parent="555" name="punktnummer_zp">
|
||||||
<Position>4</Position>
|
<Position>4</Position>
|
||||||
<StoredType>TEXT(10)|0s</StoredType>
|
<StoredType>TEXT(10)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="564" parent="555" name="instrumenteID">
|
<column id="565" parent="555" name="instrumenteID">
|
||||||
<Position>5</Position>
|
<Position>5</Position>
|
||||||
<StoredType>INTEGER|0s</StoredType>
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="565" parent="555" name="tachymeter_richtung">
|
<column id="566" parent="555" name="tachymeter_richtung">
|
||||||
<Position>6</Position>
|
<Position>6</Position>
|
||||||
<StoredType>NUMERIC(8,6)|0s</StoredType>
|
<StoredType>NUMERIC(8,6)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="566" parent="555" name="tachymeter_zenitwinkel">
|
<column id="567" parent="555" name="tachymeter_zenitwinkel">
|
||||||
<Position>7</Position>
|
<Position>7</Position>
|
||||||
<StoredType>NUMERIC(8,6)|0s</StoredType>
|
<StoredType>NUMERIC(8,6)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="567" parent="555" name="tachymeter_distanz">
|
<column id="568" parent="555" name="tachymeter_distanz">
|
||||||
<Position>8</Position>
|
<Position>8</Position>
|
||||||
<StoredType>NUMERIC(8,4)|0s</StoredType>
|
<StoredType>NUMERIC(8,4)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="568" parent="555" name="dateiname">
|
<column id="569" parent="555" name="gnss_bx">
|
||||||
<Position>9</Position>
|
<Position>9</Position>
|
||||||
|
<StoredType>NUMERIC(7,4)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="570" parent="555" name="gnss_by">
|
||||||
|
<Position>10</Position>
|
||||||
|
<StoredType>NUMERIC(7,4)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="571" parent="555" name="gnss_bz">
|
||||||
|
<Position>11</Position>
|
||||||
|
<StoredType>NUMERIC(7,4)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="572" parent="555" name="dateiname">
|
||||||
|
<Position>12</Position>
|
||||||
<StoredType>TEXT(200)|0s</StoredType>
|
<StoredType>TEXT(200)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<foreign-key id="569" parent="555" name="fk_Beobachtungen_Netzpunktesp">
|
<foreign-key id="573" parent="555" name="fk_Beobachtungen_Netzpunktesp">
|
||||||
<ColNames>punktnummer_sp</ColNames>
|
<ColNames>punktnummer_sp</ColNames>
|
||||||
<RefColNames>punktnummer</RefColNames>
|
<RefColNames>punktnummer</RefColNames>
|
||||||
<RefTableName>Netzpunkte</RefTableName>
|
<RefTableName>Netzpunkte</RefTableName>
|
||||||
</foreign-key>
|
</foreign-key>
|
||||||
<foreign-key id="570" parent="555" name="fk_Beobachtungen_Netzpunktezp">
|
<foreign-key id="574" parent="555" name="fk_Beobachtungen_Netzpunktezp">
|
||||||
<ColNames>punktnummer_zp</ColNames>
|
<ColNames>punktnummer_zp</ColNames>
|
||||||
<RefColNames>punktnummer</RefColNames>
|
<RefColNames>punktnummer</RefColNames>
|
||||||
<RefTableName>Netzpunkte</RefTableName>
|
<RefTableName>Netzpunkte</RefTableName>
|
||||||
</foreign-key>
|
</foreign-key>
|
||||||
<foreign-key id="571" parent="555" name="fk_Beobachtungen_Instrumente">
|
<foreign-key id="575" parent="555" name="fk_Beobachtungen_Instrumente">
|
||||||
<ColNames>instrumenteID</ColNames>
|
<ColNames>instrumenteID</ColNames>
|
||||||
<RefColNames>instrumenteID</RefColNames>
|
<RefColNames>instrumenteID</RefColNames>
|
||||||
<RefTableName>Instrumente</RefTableName>
|
<RefTableName>Instrumente</RefTableName>
|
||||||
</foreign-key>
|
</foreign-key>
|
||||||
<key id="572" parent="555" name="pk_Beobachtungen">
|
<key id="576" parent="555" name="pk_Beobachtungen">
|
||||||
<ColNames>beobachtungenID</ColNames>
|
<ColNames>beobachtungenID</ColNames>
|
||||||
<Primary>1</Primary>
|
<Primary>1</Primary>
|
||||||
</key>
|
</key>
|
||||||
<column id="573" parent="556" name="genauigkeitenID">
|
<column id="577" parent="556" name="genauigkeitenID">
|
||||||
<Position>1</Position>
|
<Position>1</Position>
|
||||||
<StoredType>INTEGER|0s</StoredType>
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="574" parent="556" name="instrumenteID">
|
<column id="578" parent="556" name="instrumenteID">
|
||||||
<Position>2</Position>
|
<Position>2</Position>
|
||||||
<StoredType>INTEGER|0s</StoredType>
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="575" parent="556" name="beobachtungsart">
|
<column id="579" parent="556" name="beobachtungsart">
|
||||||
<Position>3</Position>
|
<Position>3</Position>
|
||||||
<StoredType>TEXT(25)|0s</StoredType>
|
<StoredType>TEXT(25)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="576" parent="556" name="stabw_apriori_konstant">
|
<column id="580" parent="556" name="stabw_apriori_konstant">
|
||||||
<Position>4</Position>
|
<Position>4</Position>
|
||||||
<StoredType>NUMERIC(3,8)|0s</StoredType>
|
<StoredType>NUMERIC(3,8)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="577" parent="556" name="stabw_apriori_streckenprop">
|
<column id="581" parent="556" name="stabw_apriori_streckenprop">
|
||||||
<Position>5</Position>
|
<Position>5</Position>
|
||||||
<StoredType>NUMERIC(3,8)|0s</StoredType>
|
<StoredType>NUMERIC(3,8)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<foreign-key id="578" parent="556" name="fk_Genauigkeiten_Instrumente">
|
<foreign-key id="582" parent="556" name="fk_Genauigkeiten_Instrumente">
|
||||||
<ColNames>instrumenteID</ColNames>
|
<ColNames>instrumenteID</ColNames>
|
||||||
<RefColNames>instrumenteID</RefColNames>
|
<RefColNames>instrumenteID</RefColNames>
|
||||||
<RefTableName>Instrumente</RefTableName>
|
<RefTableName>Instrumente</RefTableName>
|
||||||
</foreign-key>
|
</foreign-key>
|
||||||
<key id="579" parent="556" name="pk_Genauigkeiten">
|
<key id="583" parent="556" name="pk_Genauigkeiten">
|
||||||
<ColNames>genauigkeitenID</ColNames>
|
<ColNames>genauigkeitenID</ColNames>
|
||||||
<Primary>1</Primary>
|
<Primary>1</Primary>
|
||||||
</key>
|
</key>
|
||||||
<column id="580" parent="557" name="instrumenteID">
|
<column id="584" parent="557" name="genauigkeitengnssID">
|
||||||
<Position>1</Position>
|
<Position>1</Position>
|
||||||
<StoredType>INTEGER|0s</StoredType>
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="581" parent="557" name="typ">
|
<column id="585" parent="557" name="beobachtungenID">
|
||||||
|
<Position>2</Position>
|
||||||
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="586" parent="557" name="m0">
|
||||||
|
<Position>3</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="587" parent="557" name="q11">
|
||||||
|
<Position>4</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="588" parent="557" name="q12">
|
||||||
|
<Position>5</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="589" parent="557" name="q13">
|
||||||
|
<Position>6</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="590" parent="557" name="q21">
|
||||||
|
<Position>7</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="591" parent="557" name="q22">
|
||||||
|
<Position>8</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="592" parent="557" name="q23">
|
||||||
|
<Position>9</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="593" parent="557" name="q31">
|
||||||
|
<Position>10</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="594" parent="557" name="q32">
|
||||||
|
<Position>11</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="595" parent="557" name="q33">
|
||||||
|
<Position>12</Position>
|
||||||
|
<StoredType>NUMERIC(1,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<foreign-key id="596" parent="557" name="fk_GenauigkeitenGNSS_Beobachtungen">
|
||||||
|
<ColNames>beobachtungenID</ColNames>
|
||||||
|
<RefColNames>beobachtungenID</RefColNames>
|
||||||
|
<RefTableName>Beobachtungen</RefTableName>
|
||||||
|
</foreign-key>
|
||||||
|
<key id="597" parent="557" name="pk_GenauigkeitenGNSS">
|
||||||
|
<ColNames>genauigkeitengnssID</ColNames>
|
||||||
|
<Primary>1</Primary>
|
||||||
|
</key>
|
||||||
|
<column id="598" parent="558" name="instrumenteID">
|
||||||
|
<Position>1</Position>
|
||||||
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="599" parent="558" name="typ">
|
||||||
<Position>2</Position>
|
<Position>2</Position>
|
||||||
<StoredType>TEXT(200)|0s</StoredType>
|
<StoredType>TEXT(200)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="582" parent="557" name="name">
|
<column id="600" parent="558" name="name">
|
||||||
<Position>3</Position>
|
<Position>3</Position>
|
||||||
<StoredType>TEXT(200)|0s</StoredType>
|
<StoredType>TEXT(200)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<key id="583" parent="557" name="pk_Instrumente">
|
<key id="601" parent="558" name="pk_Instrumente">
|
||||||
<ColNames>instrumenteID</ColNames>
|
<ColNames>instrumenteID</ColNames>
|
||||||
<Primary>1</Primary>
|
<Primary>1</Primary>
|
||||||
</key>
|
</key>
|
||||||
<column id="584" parent="558" name="punktnummer">
|
<column id="602" parent="559" name="punktnummer">
|
||||||
<Position>1</Position>
|
<Position>1</Position>
|
||||||
<StoredType>TEXT(10)|0s</StoredType>
|
<StoredType>TEXT(10)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="585" parent="558" name="naeherungx_lh">
|
<column id="603" parent="559" name="naeherungx_lh">
|
||||||
<Position>2</Position>
|
<Position>2</Position>
|
||||||
<StoredType>NUMERIC(9,3)|0s</StoredType>
|
<StoredType>NUMERIC(9,3)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="586" parent="558" name="naeherungy_lh">
|
<column id="604" parent="559" name="naeherungy_lh">
|
||||||
<Position>3</Position>
|
<Position>3</Position>
|
||||||
<StoredType>NUMERIC(7,3)|0s</StoredType>
|
<StoredType>NUMERIC(7,3)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="587" parent="558" name="naeherungz_lh">
|
<column id="605" parent="559" name="naeherungz_lh">
|
||||||
<Position>4</Position>
|
<Position>4</Position>
|
||||||
<StoredType>NUMERIC(8,3)|0s</StoredType>
|
<StoredType>NUMERIC(8,3)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="588" parent="558" name="naeherungx_us">
|
<column id="606" parent="559" name="naeherungx_us">
|
||||||
<Position>5</Position>
|
<Position>5</Position>
|
||||||
<StoredType>NUMERIC(9,3)|0s</StoredType>
|
<StoredType>NUMERIC(9,3)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="589" parent="558" name="naeherungy_us">
|
<column id="607" parent="559" name="naeherungy_us">
|
||||||
<Position>6</Position>
|
<Position>6</Position>
|
||||||
<StoredType>NUMERIC(7,3)|0s</StoredType>
|
<StoredType>NUMERIC(7,3)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="590" parent="558" name="naeherungz_us">
|
<column id="608" parent="559" name="naeherungz_us">
|
||||||
<Position>7</Position>
|
<Position>7</Position>
|
||||||
<StoredType>NUMERIC(8,3)|0s</StoredType>
|
<StoredType>NUMERIC(8,3)|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<index id="591" parent="558" name="sqlite_autoindex_Netzpunkte_1">
|
<column id="609" parent="559" name="datumskoordinate_x">
|
||||||
|
<Position>8</Position>
|
||||||
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="610" parent="559" name="datumskoordinate_y">
|
||||||
|
<Position>9</Position>
|
||||||
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="611" parent="559" name="datumskoordinate_z">
|
||||||
|
<Position>10</Position>
|
||||||
|
<StoredType>INTEGER|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="612" parent="559" name="stabw_vorinfo_x">
|
||||||
|
<Position>11</Position>
|
||||||
|
<StoredType>NUMERIC(3,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="613" parent="559" name="stabw_vorinfo_y">
|
||||||
|
<Position>12</Position>
|
||||||
|
<StoredType>NUMERIC(3,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<column id="614" parent="559" name="stabw_vorinfo_z">
|
||||||
|
<Position>13</Position>
|
||||||
|
<StoredType>NUMERIC(3,8)|0s</StoredType>
|
||||||
|
</column>
|
||||||
|
<index id="615" parent="559" name="sqlite_autoindex_Netzpunkte_1">
|
||||||
<ColNames>punktnummer</ColNames>
|
<ColNames>punktnummer</ColNames>
|
||||||
<NameSurrogate>1</NameSurrogate>
|
<NameSurrogate>1</NameSurrogate>
|
||||||
<Unique>1</Unique>
|
<Unique>1</Unique>
|
||||||
</index>
|
</index>
|
||||||
<key id="592" parent="558" name="pk_Netzpunkte">
|
<key id="616" parent="559" name="pk_Netzpunkte">
|
||||||
<ColNames>punktnummer</ColNames>
|
<ColNames>punktnummer</ColNames>
|
||||||
<Primary>1</Primary>
|
<Primary>1</Primary>
|
||||||
<UnderlyingIndexName>sqlite_autoindex_Netzpunkte_1</UnderlyingIndexName>
|
<UnderlyingIndexName>sqlite_autoindex_Netzpunkte_1</UnderlyingIndexName>
|
||||||
</key>
|
</key>
|
||||||
<column id="593" parent="559" name="type">
|
<column id="617" parent="560" name="type">
|
||||||
<Position>1</Position>
|
<Position>1</Position>
|
||||||
<StoredType>TEXT|0s</StoredType>
|
<StoredType>TEXT|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="594" parent="559" name="name">
|
<column id="618" parent="560" name="name">
|
||||||
<Position>2</Position>
|
<Position>2</Position>
|
||||||
<StoredType>TEXT|0s</StoredType>
|
<StoredType>TEXT|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="595" parent="559" name="tbl_name">
|
<column id="619" parent="560" name="tbl_name">
|
||||||
<Position>3</Position>
|
<Position>3</Position>
|
||||||
<StoredType>TEXT|0s</StoredType>
|
<StoredType>TEXT|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="596" parent="559" name="rootpage">
|
<column id="620" parent="560" name="rootpage">
|
||||||
<Position>4</Position>
|
<Position>4</Position>
|
||||||
<StoredType>INT|0s</StoredType>
|
<StoredType>INT|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
<column id="597" parent="559" name="sql">
|
<column id="621" parent="560" name="sql">
|
||||||
<Position>5</Position>
|
<Position>5</Position>
|
||||||
<StoredType>TEXT|0s</StoredType>
|
<StoredType>TEXT|0s</StoredType>
|
||||||
</column>
|
</column>
|
||||||
|
|||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -3,5 +3,5 @@
|
|||||||
<component name="Black">
|
<component name="Black">
|
||||||
<option name="sdkName" value="Python 3.14" />
|
<option name="sdkName" value="Python 3.14" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.14 (Masterprojekt)" project-jdk-type="Python SDK" />
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.14" project-jdk-type="Python SDK" />
|
||||||
</project>
|
</project>
|
||||||
@@ -24,7 +24,7 @@ class Berechnungen:
|
|||||||
|
|
||||||
def B(self, z, x, y):
|
def B(self, z, x, y):
|
||||||
hilfswinkel = self.hilfswinkel(z, x, y)
|
hilfswinkel = self.hilfswinkel(z, x, y)
|
||||||
B = sp.atan2((z + self.e_strich_quadrat_wert * self.b_wert * sp.sin(hilfswinkel) ** 3), (self.P(x, y) - self.e_strich_quadrat_wert * self.a_wert * sp.cos(hilfswinkel) ** 3))
|
B = sp.atan2((z + self.e_strich_quadrat_wert * self.b_wert * sp.sin(hilfswinkel) ** 3), (self.P(x, y) - self.e_quadrat_wert * self.a_wert * sp.cos(hilfswinkel) ** 3))
|
||||||
return B
|
return B
|
||||||
|
|
||||||
def L(self, x, y):
|
def L(self, x, y):
|
||||||
|
|||||||
BIN
Campusnetz.db
BIN
Campusnetz.db
Binary file not shown.
1254
Campusnetz.ipynb
1254
Campusnetz.ipynb
File diff suppressed because it is too large
Load Diff
17
Daten/Koordinaten_OL_umliegend_bereinigt.csv
Normal file
17
Daten/Koordinaten_OL_umliegend_bereinigt.csv
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
0645,Referenz,11/24/2025 07:59:44,3793994.4529,495758.0093,5085958.2047,0.0000,0.0000,0.0000
|
||||||
|
0648,Referenz,11/24/2025 07:59:44,3762551.5682,538424.8576,5104809.1503,0.0000,0.0000,0.0000
|
||||||
|
0656,Referenz,11/24/2025 07:59:44,3794838.5802,546995.3112,5080116.5503,0.0000,0.0000,0.0000
|
||||||
|
0995,Referenz,11/24/2025 07:59:44,3794519.9177,588539.9138,5075743.9332,0.0000,0.0000,0.0000
|
||||||
|
1675,Referenz,11/24/2025 07:59:44,3813621.0427,566004.8947,5064056.9300,0.0000,0.0000,0.0000
|
||||||
|
ESTE,Referenz,11/24/2025 07:59:44,3816914.7110,507636.8120,5067733.4670,0.0000,0.0000,0.0000
|
||||||
|
GNA2,Referenz,11/24/2025 07:59:44,3767530.6335,597990.0978,5094563.5073,0.0000,0.0000,0.0000
|
||||||
|
10054,Gemittelt,11/24/2025 16:26:50,3794889.0494,547086.9874,5080038.1528,0.0030,0.0017,0.0023
|
||||||
|
10014,Gemittelt,11/24/2025 11:45:48,3794838.7464,546812.3658,5080105.2000,0.0024,0.0010,0.0031
|
||||||
|
10008,Gemittelt,11/24/2025 16:27:15,3794783.8581,546746.6347,5080152.7404,0.0026,0.0008,0.0031
|
||||||
|
10059,Gemittelt,11/24/2025 14:56:52,3794736.9649,547079.4678,5080152.3224,0.0034,0.0036,0.0039
|
||||||
|
10037,Gemittelt,11/24/2025 13:31:07,3794800.5693,546960.7477,5080117.6650,0.0034,0.0018,0.0044
|
||||||
|
10044,Gemittelt,11/24/2025 16:26:33,3794752.6696,546958.3218,5080154.2579,0.0042,0.0013,0.0054
|
||||||
|
10026,Gemittelt,11/24/2025 14:56:51,3794753.8595,546827.4296,5080167.0938,0.0048,0.0021,0.0058
|
||||||
|
10001,Gemittelt,11/24/2025 11:46:05,3794901.5252,546745.5590,5080065.7672,0.0068,0.0042,0.0064
|
||||||
|
10002,Gemittelt,11/24/2025 13:31:18,3794866.9711,546729.5958,5080092.6364,0.0087,0.0025,0.0117
|
||||||
|
10028,Gemittelt,11/24/2025 16:26:51,3794889.7348,546908.7636,5080056.9381,0.0105,0.0026,0.0135
|
||||||
|
996
Daten/Niv_bereinigt.DAT.csv
Normal file
996
Daten/Niv_bereinigt.DAT.csv
Normal file
@@ -0,0 +1,996 @@
|
|||||||
|
For M5|Adr 1|TO campusne.dat | | | |
|
||||||
|
For M5|Adr 2|TO Zugbeginn RVVR 4| | | |
|
||||||
|
For M5|Adr 3|KD1 812 4| | |Z 3.99900 m |
|
||||||
|
For M5|Adr 4|KD1 812 09:53:303 4|Lr 1.39706 m |E 11.549 m | |
|
||||||
|
For M5|Adr 5|KD1 10047 09:54:203 4|Lv 1.68890 m |E 12.750 m | |
|
||||||
|
For M5|Adr 6|KD1 10047 09:54:333 4|Lv 1.68890 m |E 12.749 m | |
|
||||||
|
For M5|Adr 7|KD1 812 09:55:033 4|Lr 1.39703 m |E 11.551 m | |
|
||||||
|
For M5|Adr 8|KD1 10047 09:55:03 4| | |Z 3.70714 m |
|
||||||
|
For M5|Adr 9|KD1 10047 09:59:533 4|Lr 1.65691 m |E 9.203 m | |
|
||||||
|
For M5|Adr 10|KD1 10046 10:00:303 4|Lv 1.71918 m |E 9.976 m | |
|
||||||
|
For M5|Adr 11|KD1 10046 10:00:433 4|Lv 1.71914 m |E 9.979 m | |
|
||||||
|
For M5|Adr 12|KD1 10047 10:01:083 4|Lr 1.65699 m |E 9.197 m | |
|
||||||
|
For M5|Adr 13|KD1 10046 10:01:08 4| | |Z 3.64493 m |
|
||||||
|
For M5|Adr 14|KD1 10046 10:04:453 4|Lr 1.64909 m |E 22.277 m | |
|
||||||
|
For M5|Adr 15|KD1 10045 10:05:313 4|Lv 1.46372 m |E 22.458 m | |
|
||||||
|
For M5|Adr 16|KD1 10045 10:05:423 4|Lv 1.46374 m |E 22.456 m | |
|
||||||
|
For M5|Adr 17|KD1 10046 10:06:053 4|Lr 1.64912 m |E 22.280 m | |
|
||||||
|
For M5|Adr 18|KD1 10045 10:06:05 4| | |Z 3.83031 m |
|
||||||
|
For M5|Adr 19|KD1 10045 10:12:053 4|Lr 1.66446 m |E 27.048 m | |
|
||||||
|
For M5|Adr 20|KD1 10034 10:12:413 4|Lv 1.64826 m |E 27.294 m | |
|
||||||
|
For M5|Adr 21|KD1 10034 10:12:553 4|Lv 1.64832 m |E 27.302 m | |
|
||||||
|
For M5|Adr 22|KD1 10045 10:13:153 4|Lr 1.66447 m |E 27.043 m | |
|
||||||
|
For M5|Adr 23|KD1 10034 10:13:15 4| | |Z 3.84648 m |
|
||||||
|
For M5|Adr 24|KD1 10034 10:18:393 4|Lr 1.44965 m |E 19.268 m | |
|
||||||
|
For M5|Adr 25|KD1 FH14 10:19:383 4|Lv 1.17715 m |E 21.291 m | |
|
||||||
|
For M5|Adr 26|KD1 FH14 10:19:513 4|Lv 1.17714 m |E 21.294 m | |
|
||||||
|
For M5|Adr 27|KD1 10034 10:20:183 4|Lr 1.44965 m |E 19.271 m | |
|
||||||
|
For M5|Adr 28|KD1 FH14 10:20:18 4| | |Z 4.11899 m |
|
||||||
|
For M5|Adr 29|KD1 FH14 10:27:123 4|Lr 1.31064 m |E 6.766 m | |
|
||||||
|
For M5|Adr 30|KD1 80001 10:27:563 4|Lv 1.38606 m |E 6.459 m | |
|
||||||
|
For M5|Adr 31|KD1 80001 10:28:073 4|Lv 1.38605 m |E 6.460 m | |
|
||||||
|
For M5|Adr 32|KD1 FH14 10:28:333 4|Lr 1.31062 m |E 6.764 m | |
|
||||||
|
For M5|Adr 33|KD1 80001 10:28:33 4| | |Z 4.04356 m |
|
||||||
|
For M5|Adr 34|KD1 80001 10:30:063 4|Lr 1.39870 m |E 6.429 m | |
|
||||||
|
For M5|Adr 35|KD1 FH11 10:31:393 4|Lv 1.37748 m |E 6.981 m | |
|
||||||
|
For M5|Adr 36|KD1 FH11 10:31:493 4|Lv 1.37749 m |E 6.980 m | |
|
||||||
|
For M5|Adr 37|KD1 80001 10:32:173 4|Lr 1.39874 m |E 6.427 m | |
|
||||||
|
For M5|Adr 38|KD1 FH11 10:32:17 4| | |Z 4.06480 m |
|
||||||
|
For M5|Adr 39|KD1 FH11 10:37:503 4|Lr 1.35705 m |E 7.697 m | |
|
||||||
|
For M5|Adr 40|KD1 10035 10:38:303 4|Lv 1.23483 m |E 7.710 m | |
|
||||||
|
For M5|Adr 41|KD1 10035 10:38:423 4|Lv 1.23483 m |E 7.710 m | |
|
||||||
|
For M5|Adr 42|KD1 FH11 10:39:123 4|Lr 1.35706 m |E 7.695 m | |
|
||||||
|
For M5|Adr 43|KD1 10035 10:39:12 4| | |Z 4.18702 m |
|
||||||
|
For M5|Adr 50|KD1 10035 10:50:433 4|Lr 1.95597 m |E 23.656 m | |
|
||||||
|
For M5|Adr 51|KD1 10029 10:51:233 4|Lv 2.48616 m |E 23.246 m | |
|
||||||
|
For M5|Adr 52|KD1 10029 10:51:353 4|Lv 2.48630 m |E 23.241 m | |
|
||||||
|
For M5|Adr 53|KD1 10035 10:52:063 4|Lr 1.95605 m |E 23.649 m | |
|
||||||
|
For M5|Adr 54|KD1 10029 10:52:06 4| | |Z 3.65680 m |
|
||||||
|
For M5|Adr 55|KD1 10029 10:57:193 4|Lr 1.67832 m |E 6.896 m | |
|
||||||
|
For M5|Adr 56|KD1 10030 10:57:423 4|Lv 1.64905 m |E 6.987 m | |
|
||||||
|
For M5|Adr 57|KD1 10030 10:57:523 4|Lv 1.64902 m |E 6.989 m | |
|
||||||
|
For M5|Adr 58|KD1 10029 10:58:153 4|Lr 1.67837 m |E 6.892 m | |
|
||||||
|
For M5|Adr 59|KD1 10030 10:58:15 4| | |Z 3.68611 m |
|
||||||
|
For M5|Adr 60|KD1 10030 11:01:423 4|Lr 1.50486 m |E 19.416 m | |
|
||||||
|
For M5|Adr 61|KD1 10031 11:02:143 4|Lv 1.21639 m |E 19.867 m | |
|
||||||
|
For M5|Adr 62|KD1 10031 11:02:233 4|Lv 1.21638 m |E 19.868 m | |
|
||||||
|
For M5|Adr 63|KD1 10030 11:02:503 4|Lr 1.50478 m |E 19.416 m | |
|
||||||
|
For M5|Adr 64|KD1 10031 11:02:50 4| | |Z 3.97455 m |
|
||||||
|
For M5|Adr 83|KD1 10031 11:14:183 4|Lr 1.63655 m |E 23.104 m | |
|
||||||
|
For M5|Adr 84|KD1 10017 11:14:403 4|Lv 1.52782 m |E 22.926 m | |
|
||||||
|
For M5|Adr 85|KD1 10017 11:14:503 4|Lv 1.52774 m |E 22.928 m | |
|
||||||
|
For M5|Adr 86|KD1 10031 11:15:153 4|Lr 1.63651 m |E 23.104 m | |
|
||||||
|
For M5|Adr 87|KD1 10017 11:15:15 4| | |Z 4.08330 m |
|
||||||
|
For M5|Adr 88|KD1 10017 11:22:123 4|Lr 1.47830 m |E 15.439 m | |
|
||||||
|
For M5|Adr 89|KD1 10013 11:22:393 4|Lv 1.64947 m |E 15.415 m | |
|
||||||
|
For M5|Adr 90|KD1 10013 11:22:493 4|Lv 1.64949 m |E 15.414 m | |
|
||||||
|
For M5|Adr 91|KD1 10017 11:23:133 4|Lr 1.47831 m |E 15.436 m | |
|
||||||
|
For M5|Adr 92|KD1 10013 11:23:13 4| | |Z 3.91212 m |
|
||||||
|
For M5|Adr 93|KD1 10013 11:27:253 4|Lr 1.73178 m |E 10.896 m | |
|
||||||
|
For M5|Adr 94|KD1 10012 11:27:543 4|Lv 1.63664 m |E 11.066 m | |
|
||||||
|
For M5|Adr 95|KD1 10012 11:28:063 4|Lv 1.63662 m |E 11.066 m | |
|
||||||
|
For M5|Adr 99|KD1 10013 11:28:513 4|Lr 1.73186 m |E 10.894 m | |
|
||||||
|
For M5|Adr 100|KD1 10012 11:28:51 4| | |Z 4.00731 m |
|
||||||
|
For M5|Adr 101|KD1 10012 11:33:303 4|Lr 1.80824 m |E 9.890 m | |
|
||||||
|
For M5|Adr 102|KD1 10014 11:34:093 4|Lv 1.80461 m |E 9.826 m | |
|
||||||
|
For M5|Adr 103|KD1 10014 11:34:203 4|Lv 1.80462 m |E 9.827 m | |
|
||||||
|
For M5|Adr 104|KD1 10012 11:34:443 4|Lr 1.80825 m |E 9.894 m | |
|
||||||
|
For M5|Adr 105|KD1 10014 11:34:44 4| | |Z 4.01094 m |
|
||||||
|
For M5|Adr 106|KD1 10014 11:40:133 4|Lr 1.65135 m |E 9.470 m | |
|
||||||
|
For M5|Adr 107|KD1 10015 11:40:423 4|Lv 1.56393 m |E 9.446 m | |
|
||||||
|
For M5|Adr 108|KD1 10015 11:40:513 4|Lv 1.56390 m |E 9.445 m | |
|
||||||
|
For M5|Adr 109|KD1 10014 11:41:113 4|Lr 1.65136 m |E 9.469 m | |
|
||||||
|
For M5|Adr 110|KD1 10015 11:41:11 4| | |Z 4.09838 m |
|
||||||
|
For M5|Adr 111|KD1 10015 11:44:553 4|Lr 1.63558 m |E 8.618 m | |
|
||||||
|
For M5|Adr 112|KD1 10016 11:45:203 4|Lv 1.56235 m |E 8.348 m | |
|
||||||
|
For M5|Adr 113|KD1 10016 11:45:293 4|Lv 1.56236 m |E 8.348 m | |
|
||||||
|
For M5|Adr 114|KD1 10015 11:45:523 4|Lr 1.63568 m |E 8.615 m | |
|
||||||
|
For M5|Adr 115|KD1 10016 11:45:52 4| | |Z 4.17166 m |
|
||||||
|
For M5|Adr 116|KD1 10016 11:49:533 4|Lr 1.52939 m |E 15.124 m | |
|
||||||
|
For M5|Adr 117|KD1 10007 11:50:273 4|Lv 1.66752 m |E 15.190 m | |
|
||||||
|
For M5|Adr 118|KD1 10007 11:50:363 4|Lv 1.66757 m |E 15.189 m | |
|
||||||
|
For M5|Adr 119|KD1 10016 11:51:033 4|Lr 1.52940 m |E 15.123 m | |
|
||||||
|
For M5|Adr 120|KD1 10007 11:51:03 4| | |Z 4.03351 m |
|
||||||
|
For M5|Adr 121|KD1 10007 11:55:073 4|Lr 1.61183 m |E 2.055 m | |
|
||||||
|
For M5|Adr 122|KD1 FH13 11:56:333 4|Lv 1.09650 m |E 2.175 m | |
|
||||||
|
For M5|Adr 123|KD1 FH13 11:56:453 4|Lv 1.09651 m |E 2.174 m | |
|
||||||
|
For M5|Adr 124|KD1 10007 11:57:153 4|Lr 1.61180 m |E 2.055 m | |
|
||||||
|
For M5|Adr 125|KD1 FH13 11:57:15 4| | |Z 4.54882 m |
|
||||||
|
For M5|Adr 126|KD1 FH13 11:58:373 4|Lr 1.09649 m |E 2.175 m | |
|
||||||
|
For M5|Adr 127|KD1 10007 11:59:343 4|Lv 1.61180 m |E 2.054 m | |
|
||||||
|
For M5|Adr 128|KD1 10007 11:59:423 4|Lv 1.61181 m |E 2.053 m | |
|
||||||
|
For M5|Adr 129|KD1 FH13 12:00:133 4|Lr 1.09649 m |E 2.175 m | |
|
||||||
|
For M5|Adr 130|KD1 10007 12:00:13 4| | |Z 4.03350 m |
|
||||||
|
For M5|Adr 131|KD1 10007 12:02:323 4|Lr 1.63719 m |E 15.129 m | |
|
||||||
|
For M5|Adr 132|KD1 10016 12:03:073 4|Lv 1.49910 m |E 15.204 m | |
|
||||||
|
For M5|Adr 133|KD1 10016 12:03:173 4|Lv 1.49909 m |E 15.208 m | |
|
||||||
|
For M5|Adr 134|KD1 10007 12:04:023 4|Lr 1.63728 m |E 15.125 m | |
|
||||||
|
For M5|Adr 135|KD1 10016 12:04:02 4| | |Z 4.17164 m |
|
||||||
|
For M5|Adr 136|KD1 10016 12:07:103 4|Lr 1.52278 m |E 8.383 m | |
|
||||||
|
For M5|Adr 137|KD1 10015 12:08:033 4|Lv 1.59614 m |E 8.574 m | |
|
||||||
|
For M5|Adr 138|KD1 10015 12:08:123 4|Lv 1.59608 m |E 8.574 m | |
|
||||||
|
For M5|Adr 139|KD1 10016 12:08:373 4|Lr 1.52283 m |E 8.383 m | |
|
||||||
|
For M5|Adr 140|KD1 10015 12:08:37 4| | |Z 4.09834 m |
|
||||||
|
For M5|Adr 143|KD1 10015 12:10:393 4|Lr 1.57310 m |E 9.538 m | |
|
||||||
|
For M5|Adr 144|KD1 10014 12:11:063 4|Lv 1.66049 m |E 9.372 m | |
|
||||||
|
For M5|Adr 145|KD1 10014 12:11:163 4|Lv 1.66050 m |E 9.372 m | |
|
||||||
|
For M5|Adr 146|KD1 10015 12:11:393 4|Lr 1.57309 m |E 9.538 m | |
|
||||||
|
For M5|Adr 147|KD1 10014 12:11:39 4| | |Z 4.01094 m |
|
||||||
|
For M5|Adr 148|KD1 10014 12:14:493 4|Lr 1.75416 m |E 9.886 m | |
|
||||||
|
For M5|Adr 149|KD1 10012 12:15:223 4|Lv 1.75767 m |E 9.820 m | |
|
||||||
|
For M5|Adr 150|KD1 10012 12:15:313 4|Lv 1.75767 m |E 9.817 m | |
|
||||||
|
For M5|Adr 151|KD1 10014 12:16:023 4|Lr 1.75414 m |E 9.888 m | |
|
||||||
|
For M5|Adr 152|KD1 10012 12:16:02 4| | |Z 4.00742 m |
|
||||||
|
For M5|Adr 153|KD1 10012 12:18:173 4|Lr 1.57379 m |E 10.939 m | |
|
||||||
|
For M5|Adr 154|KD1 10013 12:18:463 4|Lv 1.66894 m |E 11.020 m | |
|
||||||
|
For M5|Adr 155|KD1 10013 12:18:553 4|Lv 1.66899 m |E 11.018 m | |
|
||||||
|
For M5|Adr 156|KD1 10012 12:19:203 4|Lr 1.57377 m |E 10.942 m | |
|
||||||
|
For M5|Adr 157|KD1 10013 12:19:20 4| | |Z 3.91223 m |
|
||||||
|
For M5|Adr 158|KD1 10013 12:21:593 4|Lr 1.60035 m |E 15.475 m | |
|
||||||
|
For M5|Adr 159|KD1 10017 12:22:283 4|Lv 1.42909 m |E 15.360 m | |
|
||||||
|
For M5|Adr 160|KD1 10017 12:22:383 4|Lv 1.42915 m |E 15.358 m | |
|
||||||
|
For M5|Adr 161|KD1 10013 12:23:023 4|Lr 1.60037 m |E 15.474 m | |
|
||||||
|
For M5|Adr 162|KD1 10017 12:23:02 4| | |Z 4.08347 m |
|
||||||
|
For M5|Adr 163|KD1 10017 12:25:283 4|Lr 1.53530 m |E 22.899 m | |
|
||||||
|
For M5|Adr 164|KD1 10031 12:26:003 4|Lv 1.64401 m |E 23.127 m | |
|
||||||
|
For M5|Adr 165|KD1 10031 12:26:103 4|Lv 1.64400 m |E 23.132 m | |
|
||||||
|
For M5|Adr 166|KD1 10017 12:26:413 4|Lr 1.53537 m |E 22.892 m | |
|
||||||
|
For M5|Adr 167|KD1 10031 12:26:41 4| | |Z 3.97480 m |
|
||||||
|
For M5|Adr 168|KD1 10031 12:29:053 4|Lr 1.17075 m |E 19.935 m | |
|
||||||
|
For M5|Adr 169|KD1 10030 12:31:403 4|Lv 1.45912 m |E 19.344 m | |
|
||||||
|
For M5|Adr 170|KD1 10030 12:31:493 4|Lv 1.45914 m |E 19.343 m | |
|
||||||
|
For M5|Adr 171|KD1 10031 12:32:123 4|Lr 1.17090 m |E 19.923 m | |
|
||||||
|
For M5|Adr 172|KD1 10030 12:32:12 4| | |Z 3.68650 m |
|
||||||
|
For M5|Adr 173|KD1 10030 12:34:163 4|Lr 1.64673 m |E 6.987 m | |
|
||||||
|
For M5|Adr 174|KD1 10029 12:34:453 4|Lv 1.67597 m |E 6.897 m | |
|
||||||
|
For M5|Adr 175|KD1 10029 12:34:543 4|Lv 1.67596 m |E 6.898 m | |
|
||||||
|
For M5|Adr 176|KD1 10030 12:35:243 4|Lr 1.64669 m |E 6.989 m | |
|
||||||
|
For M5|Adr 177|KD1 10029 12:35:24 4| | |Z 3.65724 m |
|
||||||
|
For M5|Adr 178|KD1 10029 12:40:173 4|Lr 2.43659 m |E 23.323 m | |
|
||||||
|
For M5|Adr 179|KD1 10035 12:41:223 4|Lv 1.90619 m |E 23.600 m | |
|
||||||
|
For M5|Adr 180|KD1 10035 12:41:323 4|Lv 1.90625 m |E 23.596 m | |
|
||||||
|
For M5|Adr 181|KD1 10029 12:42:273 4|Lr 2.43658 m |E 23.334 m | |
|
||||||
|
For M5|Adr 182|KD1 10035 12:42:27 4| | |Z 4.18761 m |
|
||||||
|
For M5|Adr 183|KD1 10035 12:44:263 4|Lr 1.22866 m |E 7.709 m | |
|
||||||
|
For M5|Adr 184|KD1 FH11 12:45:123 4|Lv 1.35067 m |E 7.709 m | |
|
||||||
|
For M5|Adr 185|KD1 FH11 12:45:223 4|Lv 1.35067 m |E 7.708 m | |
|
||||||
|
For M5|Adr 186|KD1 10035 12:45:453 4|Lr 1.22870 m |E 7.708 m | |
|
||||||
|
For M5|Adr 187|KD1 FH11 12:45:45 4| | |Z 4.06562 m |
|
||||||
|
For M5|Adr 188|KD1 FH11 12:49:173 4|Lr 1.38479 m |E 6.608 m | |
|
||||||
|
For M5|Adr 189|KD1 80002 12:49:473 4|Lv 1.40789 m |E 6.861 m | |
|
||||||
|
For M5|Adr 190|KD1 80002 12:49:563 4|Lv 1.40790 m |E 6.861 m | |
|
||||||
|
For M5|Adr 191|KD1 FH11 12:50:223 4|Lr 1.38473 m |E 6.612 m | |
|
||||||
|
For M5|Adr 192|KD1 80002 12:50:22 4| | |Z 4.04248 m |
|
||||||
|
For M5|Adr 193|KD1 80002 12:50:563 4|Lr 1.40787 m |E 6.861 m | |
|
||||||
|
For M5|Adr 194|KD1 FH14 12:51:293 4|Lv 1.33063 m |E 6.482 m | |
|
||||||
|
For M5|Adr 195|KD1 FH14 12:51:383 4|Lv 1.33063 m |E 6.483 m | |
|
||||||
|
For M5|Adr 196|KD1 80002 12:52:033 4|Lr 1.40787 m |E 6.860 m | |
|
||||||
|
For M5|Adr 197|KD1 FH14 12:52:03 4| | |Z 4.11972 m |
|
||||||
|
For M5|Adr 198|KD1 FH14 12:55:383 4|Lr 1.15536 m |E 21.362 m | |
|
||||||
|
For M5|Adr 199|KD1 10034 12:56:173 4|Lv 1.42796 m |E 19.192 m | |
|
||||||
|
For M5|Adr 200|KD1 10034 12:56:283 4|Lv 1.42787 m |E 19.193 m | |
|
||||||
|
For M5|Adr 201|KD1 FH14 12:56:553 4|Lr 1.15532 m |E 21.365 m | |
|
||||||
|
For M5|Adr 202|KD1 10034 12:56:55 4| | |Z 3.84715 m |
|
||||||
|
For M5|Adr 203|KD1 10034 13:00:053 4|Lr 1.65228 m |E 27.229 m | |
|
||||||
|
For M5|Adr 204|KD1 10045 13:00:433 4|Lv 1.66849 m |E 27.097 m | |
|
||||||
|
For M5|Adr 205|KD1 10045 13:00:523 4|Lv 1.66855 m |E 27.099 m | |
|
||||||
|
For M5|Adr 206|KD1 10034 13:01:163 4|Lr 1.65218 m |E 27.223 m | |
|
||||||
|
For M5|Adr 207|KD1 10045 13:01:16 4| | |Z 3.83086 m |
|
||||||
|
For M5|Adr 208|KD1 10045 13:07:513 4|Lr 1.51518 m |E 24.208 m | |
|
||||||
|
For M5|Adr 209|KD1 10046 13:08:393 4|Lv 1.70048 m |E 20.544 m | |
|
||||||
|
For M5|Adr 210|KD1 10046 13:08:493 4|Lv 1.70049 m |E 20.547 m | |
|
||||||
|
For M5|Adr 211|KD1 10045 13:09:273 4|Lr 1.51526 m |E 24.198 m | |
|
||||||
|
For M5|Adr 212|KD1 10046 13:09:27 4| | |Z 3.64559 m |
|
||||||
|
For M5|Adr 213|KD1 10046 13:11:463 4|Lr 1.70298 m |E 9.796 m | |
|
||||||
|
For M5|Adr 214|KD1 10047 13:12:153 4|Lv 1.64111 m |E 9.353 m | |
|
||||||
|
For M5|Adr 215|KD1 10047 13:12:233 4|Lv 1.64098 m |E 9.359 m | |
|
||||||
|
For M5|Adr 216|KD1 10046 13:12:453 4|Lr 1.70302 m |E 9.800 m | |
|
||||||
|
For M5|Adr 217|KD1 10047 13:12:45 4| | |Z 3.70755 m |
|
||||||
|
For M5|Adr 218|KD1 10047 13:16:453 4|Lr 1.59226 m |E 12.622 m | |
|
||||||
|
For M5|Adr 219|KD1 812 13:17:123 4|Lv 1.30021 m |E 11.674 m | |
|
||||||
|
For M5|Adr 220|KD1 812 13:17:233 4|Lv 1.30017 m |E 11.678 m | |
|
||||||
|
For M5|Adr 221|KD1 10047 13:17:443 4|Lr 1.59221 m |E 12.623 m | |
|
||||||
|
For M5|Adr 222|KD1 812 13:17:44 4| | |Z 3.99959 m |
|
||||||
|
For M5|Adr 223|KD1 812 4|Sh 0.00059 m |dz -0.00059 m |Z 3.99900 m |
|
||||||
|
For M5|Adr 224|KD2 812 38 4|Sr 515.85 m |Sv 512.71 m |Z 3.99959 m |
|
||||||
|
For M5|Adr 225|TO Zugende 4| | | |
|
||||||
|
For M5|Adr 226|TO Zugbeginn RVVR 5| | | |
|
||||||
|
For M5|Adr 227|KD1 666 5| | |Z 3.89100 m |
|
||||||
|
For M5|Adr 228|KD1 666 14:37:163 5|Lr 1.39867 m |E 13.038 m | |
|
||||||
|
For M5|Adr 229|KD1 10054 14:37:573 5|Lv 1.47673 m |E 14.220 m | |
|
||||||
|
For M5|Adr 230|KD1 10054 14:38:053 5|Lv 1.47668 m |E 14.218 m | |
|
||||||
|
For M5|Adr 231|KD1 666 14:38:453 5|Lr 1.39866 m |E 13.045 m | |
|
||||||
|
For M5|Adr 232|KD1 10054 14:38:45 5| | |Z 3.81296 m |
|
||||||
|
For M5|Adr 233|KD1 10054 14:42:253 5|Lr 1.45840 m |E 28.371 m | |
|
||||||
|
For M5|Adr 234|KD1 90001 14:45:043 5|Lv 1.58418 m |E 28.252 m | |
|
||||||
|
For M5|Adr 235|KD1 90001 14:45:143 5|Lv 1.58404 m |E 28.259 m | |
|
||||||
|
For M5|Adr 236|KD1 10054 14:45:363 5|Lr 1.45849 m |E 28.366 m | |
|
||||||
|
For M5|Adr 237|KD1 90001 14:45:36 5| | |Z 3.68729 m |
|
||||||
|
For M5|Adr 238|KD1 90001 14:50:003 5|Lr 1.55312 m |E 11.759 m | |
|
||||||
|
For M5|Adr 239|KD1 10056 14:50:293 5|Lv 1.70349 m |E 12.042 m | |
|
||||||
|
For M5|Adr 240|KD1 10056 14:50:373 5|Lv 1.70349 m |E 12.043 m | |
|
||||||
|
For M5|Adr 241|KD1 90001 14:51:023 5|Lr 1.55307 m |E 11.760 m | |
|
||||||
|
For M5|Adr 242|KD1 10056 14:51:02 5| | |Z 3.53690 m |
|
||||||
|
For M5|Adr 243|KD1 10056 14:58:063 5|Lr 1.74315 m |E 17.451 m | |
|
||||||
|
For M5|Adr 244|KD1 90002 14:59:493 5|Lv 1.43533 m |E 17.098 m | |
|
||||||
|
For M5|Adr 245|KD1 90002 14:59:583 5|Lv 1.43532 m |E 17.100 m | |
|
||||||
|
For M5|Adr 246|KD1 10056 15:00:233 5|Lr 1.74313 m |E 17.455 m | |
|
||||||
|
For M5|Adr 247|KD1 90002 15:00:23 5| | |Z 3.84471 m |
|
||||||
|
For M5|Adr 248|KD1 90002 15:04:153 5|Lr 1.62973 m |E 19.670 m | |
|
||||||
|
For M5|Adr 249|KD1 10058 15:04:483 5|Lv 1.49413 m |E 19.740 m | |
|
||||||
|
For M5|Adr 250|KD1 10058 15:04:573 5|Lv 1.49416 m |E 19.739 m | |
|
||||||
|
For M5|Adr 251|KD1 90002 15:05:193 5|Lr 1.62970 m |E 19.674 m | |
|
||||||
|
For M5|Adr 252|KD1 10058 15:05:19 5| | |Z 3.98028 m |
|
||||||
|
For M5|Adr 253|KD1 10058 15:17:083 5|Lr 1.76359 m |E 19.431 m | |
|
||||||
|
For M5|Adr 254|KD1 90003 15:17:373 5|Lv 1.48142 m |E 19.399 m | |
|
||||||
|
For M5|Adr 255|KD1 90003 15:17:533 5|Lv 1.48141 m |E 19.405 m | |
|
||||||
|
For M5|Adr 256|KD1 10058 15:18:213 5|Lr 1.76359 m |E 19.432 m | |
|
||||||
|
For M5|Adr 257|KD1 90003 15:18:21 5| | |Z 4.26246 m |
|
||||||
|
For M5|Adr 258|KD1 90003 15:21:413 5|Lr 1.70182 m |E 28.153 m | |
|
||||||
|
For M5|Adr 259|KD1 90004 15:23:523 5|Lv 1.52352 m |E 28.112 m | |
|
||||||
|
For M5|Adr 260|KD1 90004 15:24:013 5|Lv 1.52362 m |E 28.114 m | |
|
||||||
|
For M5|Adr 261|KD1 90003 15:24:303 5|Lr 1.70185 m |E 28.154 m | |
|
||||||
|
For M5|Adr 262|KD1 90004 15:24:30 5| | |Z 4.44073 m |
|
||||||
|
For M5|Adr 263|KD1 90004 15:30:413 5|Lr 1.55902 m |E 24.249 m | |
|
||||||
|
For M5|Adr 264|KD1 10052 15:31:173 5|Lv 1.60091 m |E 24.643 m | |
|
||||||
|
For M5|Adr 265|KD1 10052 15:31:273 5|Lv 1.60083 m |E 24.645 m | |
|
||||||
|
For M5|Adr 266|KD1 90004 15:31:483 5|Lr 1.55909 m |E 24.246 m | |
|
||||||
|
For M5|Adr 267|KD1 10052 15:31:48 5| | |Z 4.39891 m |
|
||||||
|
For M5|Adr 268|KD1 10052 15:36:233 5|Lr 1.80901 m |E 19.945 m | |
|
||||||
|
For M5|Adr 269|KD1 90005 15:37:113 5|Lv 1.59310 m |E 17.113 m | |
|
||||||
|
For M5|Adr 270|KD1 90005 15:37:223 5|Lv 1.59308 m |E 17.114 m | |
|
||||||
|
For M5|Adr 271|KD1 10052 15:37:533 5|Lr 1.80903 m |E 19.938 m | |
|
||||||
|
For M5|Adr 272|KD1 90005 15:37:53 5| | |Z 4.61484 m |
|
||||||
|
For M5|Adr 273|KD1 90005 15:41:253 5|Lr 1.52989 m |E 14.156 m | |
|
||||||
|
For M5|Adr 274|KD1 10043 15:41:593 5|Lv 1.71581 m |E 14.289 m | |
|
||||||
|
For M5|Adr 275|KD1 10043 15:42:083 5|Lv 1.71582 m |E 14.293 m | |
|
||||||
|
For M5|Adr 276|KD1 90005 15:42:293 5|Lr 1.52998 m |E 14.156 m | |
|
||||||
|
For M5|Adr 277|KD1 10043 15:42:29 5| | |Z 4.42896 m |
|
||||||
|
For M5|Adr 278|KD1 10043 15:48:113 5|Lr 1.58481 m |E 23.024 m | |
|
||||||
|
For M5|Adr 279|KD1 90006 15:48:473 5|Lv 1.53904 m |E 22.992 m | |
|
||||||
|
For M5|Adr 280|KD1 90006 15:48:563 5|Lv 1.53903 m |E 22.993 m | |
|
||||||
|
For M5|Adr 281|KD1 10043 15:49:263 5|Lr 1.58478 m |E 23.023 m | |
|
||||||
|
For M5|Adr 282|KD1 90006 15:49:26 5| | |Z 4.47472 m |
|
||||||
|
For M5|Adr 283|KD1 90006 15:53:493 5|Lr 1.61106 m |E 23.101 m | |
|
||||||
|
For M5|Adr 284|KD1 10026 15:54:193 5|Lv 1.66814 m |E 22.955 m | |
|
||||||
|
For M5|Adr 285|KD1 10026 15:54:313 5|Lv 1.66810 m |E 22.963 m | |
|
||||||
|
For M5|Adr 286|KD1 90006 15:54:503 5|Lr 1.61105 m |E 23.102 m | |
|
||||||
|
For M5|Adr 287|KD1 10026 15:54:50 5| | |Z 4.41766 m |
|
||||||
|
For M5|Adr 288|KD1 10026 16:01:473 5|Lr 1.65763 m |E 14.994 m | |
|
||||||
|
For M5|Adr 289|KD1 90007 16:02:203 5|Lv 1.70698 m |E 15.001 m | |
|
||||||
|
For M5|Adr 290|KD1 90007 16:02:283 5|Lv 1.70700 m |E 15.004 m | |
|
||||||
|
For M5|Adr 291|KD1 10026 16:02:583 5|Lr 1.65762 m |E 14.993 m | |
|
||||||
|
For M5|Adr 292|KD1 90007 16:02:58 5| | |Z 4.36829 m |
|
||||||
|
For M5|Adr 293|KD1 90007 16:06:323 5|Lr 1.48945 m |E 15.112 m | |
|
||||||
|
For M5|Adr 294|KD1 10010 16:07:183 5|Lv 1.81492 m |E 14.908 m | |
|
||||||
|
For M5|Adr 295|KD1 10010 16:07:273 5|Lv 1.81492 m |E 14.909 m | |
|
||||||
|
For M5|Adr 296|KD1 90007 16:07:543 5|Lr 1.48952 m |E 15.104 m | |
|
||||||
|
For M5|Adr 297|KD1 10010 16:07:54 5| | |Z 4.04286 m |
|
||||||
|
For M5|Adr 298|KD1 10010 16:14:043 5|Lr 1.54850 m |E 30.713 m | |
|
||||||
|
For M5|Adr 299|KD1 10006 16:14:383 5|Lv 1.89019 m |E 30.148 m | |
|
||||||
|
For M5|Adr 300|KD1 10006 16:14:543 5|Lv 1.89018 m |E 30.147 m | |
|
||||||
|
For M5|Adr 301|KD1 10010 16:15:183 5|Lr 1.54849 m |E 30.712 m | |
|
||||||
|
For M5|Adr 302|KD1 10006 16:15:18 5| | |Z 3.70117 m |
|
||||||
|
For M5|Adr 303|KD1 10006 16:15:443 5|Lr 1.89023 m |E 30.145 m | |
|
||||||
|
For M5|Adr 304|KD1 10010 16:16:203 5|Lv 1.54850 m |E 30.715 m | |
|
||||||
|
For M5|Adr 305|KD1 10010 16:16:293 5|Lv 1.54853 m |E 30.710 m | |
|
||||||
|
For M5|Adr 306|KD1 10006 16:17:173 5|Lr 1.89020 m |E 30.146 m | |
|
||||||
|
For M5|Adr 307|KD1 10010 16:17:17 5| | |Z 4.04287 m |
|
||||||
|
For M5|Adr 308|KD1 10010 16:20:003 5|Lr 1.81252 m |E 14.967 m | |
|
||||||
|
For M5|Adr 309|KD1 90008 16:20:383 5|Lv 1.48511 m |E 15.065 m | |
|
||||||
|
For M5|Adr 310|KD1 90008 16:20:473 5|Lv 1.48511 m |E 15.064 m | |
|
||||||
|
For M5|Adr 311|KD1 10010 16:21:133 5|Lr 1.81251 m |E 14.967 m | |
|
||||||
|
For M5|Adr 312|KD1 90008 16:21:13 5| | |Z 4.37027 m |
|
||||||
|
For M5|Adr 313|KD1 90008 16:24:023 5|Lr 1.72972 m |E 14.969 m | |
|
||||||
|
For M5|Adr 314|KD1 10026 16:24:453 5|Lv 1.68214 m |E 14.993 m | |
|
||||||
|
For M5|Adr 315|KD1 10026 16:24:543 5|Lv 1.68214 m |E 14.993 m | |
|
||||||
|
For M5|Adr 316|KD1 90008 16:25:143 5|Lr 1.72973 m |E 14.969 m | |
|
||||||
|
For M5|Adr 317|KD1 10026 16:25:14 5| | |Z 4.41786 m |
|
||||||
|
For M5|Adr 318|KD1 10026 16:27:293 5|Lr 1.70960 m |E 22.912 m | |
|
||||||
|
For M5|Adr 319|KD1 90009 16:27:583 5|Lv 1.65195 m |E 23.128 m | |
|
||||||
|
For M5|Adr 320|KD1 90009 16:28:113 5|Lv 1.65194 m |E 23.130 m | |
|
||||||
|
For M5|Adr 321|KD1 10026 16:28:323 5|Lr 1.70955 m |E 22.912 m | |
|
||||||
|
For M5|Adr 322|KD1 90009 16:28:32 5| | |Z 4.47549 m |
|
||||||
|
For M5|Adr 323|KD1 90009 16:31:043 5|Lr 1.54039 m |E 22.927 m | |
|
||||||
|
For M5|Adr 324|KD1 10043 16:31:383 5|Lv 1.58675 m |E 23.104 m | |
|
||||||
|
For M5|Adr 325|KD1 10043 16:31:493 5|Lv 1.58680 m |E 23.103 m | |
|
||||||
|
For M5|Adr 326|KD1 90009 16:32:323 5|Lr 1.54042 m |E 22.929 m | |
|
||||||
|
For M5|Adr 327|KD1 10043 16:32:32 5| | |Z 4.42912 m |
|
||||||
|
For M5|Adr 328|KD1 10043 16:34:403 5|Lr 1.72117 m |E 14.338 m | |
|
||||||
|
For M5|Adr 329|KD1 90010 16:35:213 5|Lv 1.53519 m |E 14.077 m | |
|
||||||
|
For M5|Adr 330|KD1 90010 16:35:313 5|Lv 1.53520 m |E 14.075 m | |
|
||||||
|
For M5|Adr 331|KD1 10043 16:35:513 5|Lr 1.72118 m |E 14.335 m | |
|
||||||
|
For M5|Adr 332|KD1 90010 16:35:51 5| | |Z 4.61510 m |
|
||||||
|
For M5|Adr 333|KD1 90010 16:38:073 5|Lr 1.58466 m |E 17.097 m | |
|
||||||
|
For M5|Adr 334|KD1 10052 16:38:473 5|Lv 1.80056 m |E 19.995 m | |
|
||||||
|
For M5|Adr 335|KD1 10052 16:38:573 5|Lv 1.80055 m |E 19.994 m | |
|
||||||
|
For M5|Adr 336|KD1 90010 16:39:223 5|Lr 1.58471 m |E 17.092 m | |
|
||||||
|
For M5|Adr 337|KD1 10052 16:39:22 5| | |Z 4.39923 m |
|
||||||
|
For M5|Adr 338|KD1 10052 16:41:353 5|Lr 1.61506 m |E 24.763 m | |
|
||||||
|
For M5|Adr 339|KD1 90011 16:42:083 5|Lv 1.57441 m |E 24.137 m | |
|
||||||
|
For M5|Adr 340|KD1 90011 16:42:223 5|Lv 1.57435 m |E 24.141 m | |
|
||||||
|
For M5|Adr 344|KD1 10052 16:43:093 5|Lr 1.61509 m |E 24.763 m | |
|
||||||
|
For M5|Adr 345|KD1 90011 16:43:09 5| | |Z 4.43992 m |
|
||||||
|
For M5|Adr 346|KD1 90011 16:45:243 5|Lr 1.47995 m |E 27.999 m | |
|
||||||
|
For M5|Adr 347|KD1 90012 16:47:103 5|Lv 1.65760 m |E 28.242 m | |
|
||||||
|
For M5|Adr 348|KD1 90012 16:47:263 5|Lv 1.65761 m |E 28.244 m | |
|
||||||
|
For M5|Adr 349|KD1 90011 16:47:493 5|Lr 1.47989 m |E 28.005 m | |
|
||||||
|
For M5|Adr 350|KD1 90012 16:47:49 5| | |Z 4.26224 m |
|
||||||
|
For M5|Adr 351|KD1 90012 16:50:263 5|Lr 1.51218 m |E 19.328 m | |
|
||||||
|
For M5|Adr 352|KD1 10058 16:50:553 5|Lv 1.79366 m |E 19.510 m | |
|
||||||
|
For M5|Adr 353|KD1 10058 16:51:063 5|Lv 1.79364 m |E 19.511 m | |
|
||||||
|
For M5|Adr 354|KD1 90012 16:51:303 5|Lr 1.51214 m |E 19.333 m | |
|
||||||
|
For M5|Adr 355|KD1 10058 16:51:30 5| | |Z 3.98075 m |
|
||||||
|
For M5|Adr 356|KD1 10058 16:53:383 5|Lr 1.50891 m |E 19.790 m | |
|
||||||
|
For M5|Adr 357|KD1 90013 16:54:203 5|Lv 1.64471 m |E 19.613 m | |
|
||||||
|
For M5|Adr 358|KD1 90013 16:54:353 5|Lv 1.64470 m |E 19.614 m | |
|
||||||
|
For M5|Adr 359|KD1 10058 16:55:103 5|Lr 1.50889 m |E 19.789 m | |
|
||||||
|
For M5|Adr 360|KD1 90013 16:55:10 5| | |Z 3.84494 m |
|
||||||
|
For M5|Adr 361|KD1 90013 16:58:343 5|Lr 1.44948 m |E 17.096 m | |
|
||||||
|
For M5|Adr 362|KD1 10056 16:59:153 5|Lv 1.75707 m |E 17.451 m | |
|
||||||
|
For M5|Adr 363|KD1 10056 16:59:333 5|Lv 1.75706 m |E 17.449 m | |
|
||||||
|
For M5|Adr 364|KD1 90013 17:00:063 5|Lr 1.44951 m |E 17.095 m | |
|
||||||
|
For M5|Adr 365|KD1 10056 17:00:06 5| | |Z 3.53737 m |
|
||||||
|
For M5|Adr 366|KD1 10056 17:02:103 5|Lr 1.70377 m |E 12.043 m | |
|
||||||
|
For M5|Adr 367|KD1 90014 17:02:503 5|Lv 1.55344 m |E 11.776 m | |
|
||||||
|
For M5|Adr 368|KD1 90014 17:03:053 5|Lv 1.55343 m |E 11.777 m | |
|
||||||
|
For M5|Adr 369|KD1 10056 17:03:363 5|Lr 1.70376 m |E 12.039 m | |
|
||||||
|
For M5|Adr 370|KD1 90014 17:03:36 5| | |Z 3.68770 m |
|
||||||
|
For M5|Adr 371|KD1 90014 17:06:143 5|Lr 1.57937 m |E 28.592 m | |
|
||||||
|
For M5|Adr 372|KD1 10054 17:06:543 5|Lv 1.45366 m |E 28.099 m | |
|
||||||
|
For M5|Adr 373|KD1 10054 17:07:083 5|Lv 1.45366 m |E 28.098 m | |
|
||||||
|
For M5|Adr 374|KD1 90014 17:08:103 5|Lr 1.57943 m |E 28.610 m | |
|
||||||
|
For M5|Adr 375|KD1 10054 17:08:10 5| | |Z 3.81344 m |
|
||||||
|
For M5|Adr 376|KD1 10054 17:10:543 5|Lr 1.41573 m |E 14.338 m | |
|
||||||
|
For M5|Adr 377|KD1 666 17:11:283 5|Lv 1.33762 m |E 13.233 m | |
|
||||||
|
For M5|Adr 378|KD1 666 17:11:433 5|Lv 1.33760 m |E 13.233 m | |
|
||||||
|
For M5|Adr 379|KD1 10054 17:12:493 5|Lr 1.41572 m |E 14.351 m | |
|
||||||
|
For M5|Adr 380|KD1 666 17:12:49 5| | |Z 3.89156 m |
|
||||||
|
For M5|Adr 381|KD1 666 5|Sh 0.00056 m |dz -0.00056 m |Z 3.89100 m |
|
||||||
|
For M5|Adr 382|KD2 666 30 5|Sr 604.48 m |Sv 604.07 m |Z 3.89156 m |
|
||||||
|
For M5|Adr 383|TO Zugende 5| | | |
|
||||||
|
For M5|Adr 556|TO Zugbeginn RVVR 3| | | |
|
||||||
|
For M5|Adr 557|KD1 816 3| | |Z 3.99500 m |
|
||||||
|
For M5|Adr 558|KD1 816 13:55:263 3|Lr 1.25780 m |E 8.247 m | |
|
||||||
|
For M5|Adr 559|KD1 10048 13:56:053 3|Lv 1.35560 m |E 7.735 m | |
|
||||||
|
For M5|Adr 560|KD1 10048 13:56:153 3|Lv 1.35559 m |E 7.735 m | |
|
||||||
|
For M5|Adr 561|KD1 816 13:56:393 3|Lr 1.25781 m |E 8.250 m | |
|
||||||
|
For M5|Adr 562|KD1 10048 13:56:39 3| | |Z 3.89721 m |
|
||||||
|
For M5|Adr 565|KD1 10048 14:01:423 3|Lr 1.45841 m |E 25.048 m | |
|
||||||
|
For M5|Adr 566|KD1 812 14:02:073 3|Lv 1.35803 m |E 26.564 m | |
|
||||||
|
For M5|Adr 567|KD1 812 14:02:153 3|Lv 1.35806 m |E 26.564 m | |
|
||||||
|
For M5|Adr 568|KD1 10048 14:02:393 3|Lr 1.45843 m |E 25.043 m | |
|
||||||
|
For M5|Adr 569|KD1 812 14:02:39 3| | |Z 3.99758 m |
|
||||||
|
For M5|Adr 570|KD1 812 14:04:273 3|Lr 1.35796 m |E 26.564 m | |
|
||||||
|
For M5|Adr 571|KD1 FH3 14:05:353 3|Lv 0.64553 m |E 23.684 m | |
|
||||||
|
For M5|Adr 572|KD1 FH3 14:05:443 3|Lv 0.64561 m |E 23.683 m | |
|
||||||
|
For M5|Adr 573|KD1 812 14:06:053 3|Lr 1.35800 m |E 26.564 m | |
|
||||||
|
For M5|Adr 574|KD1 FH3 14:06:05 3| | |Z 4.70999 m |
|
||||||
|
For M5|Adr 575|KD1 FH3 14:09:593 3|Lr 0.85590 m |E 15.274 m | |
|
||||||
|
For M5|Adr 578|KD1 10049 14:10:523 3|Lv 1.46108 m |E 15.044 m | |
|
||||||
|
For M5|Adr 579|KD1 10049 14:11:003 3|Lv 1.46109 m |E 15.042 m | |
|
||||||
|
For M5|Adr 580|KD1 FH3 14:11:253 3|Lr 0.85595 m |E 15.273 m | |
|
||||||
|
For M5|Adr 581|KD1 10049 14:11:25 3| | |Z 4.10483 m |
|
||||||
|
For M5|Adr 584|KD1 10049 14:17:043 3|Lr 1.86477 m |E 25.296 m | |
|
||||||
|
For M5|Adr 585|KD1 10053 14:17:353 3|Lv 1.58367 m |E 23.503 m | |
|
||||||
|
For M5|Adr 586|KD1 10053 14:17:443 3|Lv 1.58367 m |E 23.505 m | |
|
||||||
|
For M5|Adr 587|KD1 10049 14:18:123 3|Lr 1.86480 m |E 25.295 m | |
|
||||||
|
For M5|Adr 588|KD1 10053 14:18:12 3| | |Z 4.38595 m |
|
||||||
|
For M5|Adr 595|KD1 10053 14:24:043 3|Lr 1.59302 m |E 11.937 m | |
|
||||||
|
For M5|Adr 596|KD1 10050 14:24:273 3|Lv 1.70498 m |E 11.859 m | |
|
||||||
|
For M5|Adr 597|KD1 10050 14:24:353 3|Lv 1.70499 m |E 11.860 m | |
|
||||||
|
For M5|Adr 598|KD1 10053 14:24:593 3|Lr 1.59302 m |E 11.938 m | |
|
||||||
|
For M5|Adr 599|KD1 10050 14:24:59 3| | |Z 4.27398 m |
|
||||||
|
For M5|Adr 600|KD1 10050 14:28:033 3|Lr 1.64664 m |E 11.995 m | |
|
||||||
|
For M5|Adr 601|KD1 10051 14:28:273 3|Lv 1.52512 m |E 11.920 m | |
|
||||||
|
For M5|Adr 602|KD1 10051 14:28:363 3|Lv 1.52508 m |E 11.921 m | |
|
||||||
|
For M5|Adr 603|KD1 10050 14:28:573 3|Lr 1.64667 m |E 11.994 m | |
|
||||||
|
For M5|Adr 604|KD1 10051 14:28:57 3| | |Z 4.39554 m |
|
||||||
|
For M5|Adr 605|KD1 10051 14:32:573 3|Lr 1.73789 m |E 4.658 m | |
|
||||||
|
For M5|Adr 606|KD1 FH4 14:33:433 3|Lv 1.40480 m |E 3.784 m | |
|
||||||
|
For M5|Adr 607|KD1 FH4 14:33:523 3|Lv 1.40481 m |E 3.784 m | |
|
||||||
|
For M5|Adr 608|KD1 10051 14:34:153 3|Lr 1.73788 m |E 4.659 m | |
|
||||||
|
For M5|Adr 609|KD1 FH4 14:34:15 3| | |Z 4.72862 m |
|
||||||
|
For M5|Adr 610|KD1 FH4 14:39:433 3|Lr 1.10682 m |E 12.093 m | |
|
||||||
|
For M5|Adr 611|KD1 70001 14:40:233 3|Lv 1.56911 m |E 12.437 m | |
|
||||||
|
For M5|Adr 612|KD1 70001 14:40:323 3|Lv 1.56912 m |E 12.435 m | |
|
||||||
|
For M5|Adr 613|KD1 FH4 14:40:503 3|Lr 1.10685 m |E 12.098 m | |
|
||||||
|
For M5|Adr 614|KD1 70001 14:40:50 3| | |Z 4.26634 m |
|
||||||
|
For M5|Adr 615|KD1 70001 14:43:363 3|Lr 1.55753 m |E 6.319 m | |
|
||||||
|
For M5|Adr 616|KD1 10040 14:44:093 3|Lv 1.54680 m |E 6.558 m | |
|
||||||
|
For M5|Adr 617|KD1 10040 14:44:173 3|Lv 1.54678 m |E 6.561 m | |
|
||||||
|
For M5|Adr 618|KD1 70001 14:44:413 3|Lr 1.55755 m |E 6.318 m | |
|
||||||
|
For M5|Adr 619|KD1 10040 14:44:41 3| | |Z 4.27709 m |
|
||||||
|
For M5|Adr 620|KD1 10040 14:47:303 3|Lr 1.55171 m |E 12.698 m | |
|
||||||
|
For M5|Adr 621|KD1 10037 14:47:543 3|Lv 1.72431 m |E 12.854 m | |
|
||||||
|
For M5|Adr 622|KD1 10037 14:48:033 3|Lv 1.72435 m |E 12.853 m | |
|
||||||
|
For M5|Adr 623|KD1 10040 14:48:343 3|Lr 1.55178 m |E 12.688 m | |
|
||||||
|
For M5|Adr 624|KD1 10037 14:48:34 3| | |Z 4.10450 m |
|
||||||
|
For M5|Adr 625|KD1 10037 14:56:543 3|Lr 1.64329 m |E 15.835 m | |
|
||||||
|
For M5|Adr 626|KD1 10038 14:57:193 3|Lv 1.54875 m |E 15.734 m | |
|
||||||
|
For M5|Adr 627|KD1 10038 14:57:293 3|Lv 1.54876 m |E 15.735 m | |
|
||||||
|
For M5|Adr 628|KD1 10037 14:57:503 3|Lr 1.64328 m |E 15.837 m | |
|
||||||
|
For M5|Adr 629|KD1 10038 14:57:50 3| | |Z 4.19904 m |
|
||||||
|
For M5|Adr 630|KD1 10038 15:00:273 3|Lr 1.71297 m |E 7.534 m | |
|
||||||
|
For M5|Adr 631|KD1 10039 15:00:513 3|Lv 1.70499 m |E 7.887 m | |
|
||||||
|
For M5|Adr 632|KD1 10039 15:01:013 3|Lv 1.70496 m |E 7.888 m | |
|
||||||
|
For M5|Adr 633|KD1 10038 15:01:223 3|Lr 1.71295 m |E 7.534 m | |
|
||||||
|
For M5|Adr 634|KD1 10039 15:01:22 3| | |Z 4.20702 m |
|
||||||
|
For M5|Adr 635|KD1 10039 15:03:313 3|Lr 1.48376 m |E 13.239 m | |
|
||||||
|
For M5|Adr 636|KD1 10032 15:03:523 3|Lv 1.85155 m |E 13.231 m | |
|
||||||
|
For M5|Adr 637|KD1 10032 15:04:013 3|Lv 1.85153 m |E 13.229 m | |
|
||||||
|
For M5|Adr 638|KD1 10039 15:04:263 3|Lr 1.48383 m |E 13.234 m | |
|
||||||
|
For M5|Adr 639|KD1 10032 15:04:26 3| | |Z 3.83927 m |
|
||||||
|
For M5|Adr 640|KD1 10032 15:07:263 3|Lr 1.79581 m |E 10.023 m | |
|
||||||
|
For M5|Adr 641|KD1 10031 15:07:503 3|Lv 1.66171 m |E 9.826 m | |
|
||||||
|
For M5|Adr 642|KD1 10031 15:08:003 3|Lv 1.66171 m |E 9.827 m | |
|
||||||
|
For M5|Adr 643|KD1 10032 15:08:183 3|Lr 1.79582 m |E 10.026 m | |
|
||||||
|
For M5|Adr 644|KD1 10031 15:08:18 3| | |Z 3.97338 m |
|
||||||
|
For M5|Adr 645|KD1 10031 15:11:563 3|Lr 1.60346 m |E 18.179 m | |
|
||||||
|
For M5|Adr 646|KD1 FH15 15:12:413 3|Lv 0.84368 m |E 17.968 m | |
|
||||||
|
For M5|Adr 647|KD1 FH15 15:12:503 3|Lv 0.84365 m |E 17.969 m | |
|
||||||
|
For M5|Adr 648|KD1 10031 15:13:123 3|Lr 1.60354 m |E 18.174 m | |
|
||||||
|
For M5|Adr 649|KD1 FH15 15:13:12 3| | |Z 4.73321 m |
|
||||||
|
For M5|Adr 650|KD1 FH15 15:16:153 3|Lr 0.96888 m |E 4.579 m | |
|
||||||
|
For M5|Adr 651|KD1 10033 15:16:553 3|Lv 1.73410 m |E 4.384 m | |
|
||||||
|
For M5|Adr 652|KD1 10033 15:17:033 3|Lv 1.73413 m |E 4.381 m | |
|
||||||
|
For M5|Adr 653|KD1 FH15 15:17:253 3|Lr 0.96889 m |E 4.578 m | |
|
||||||
|
For M5|Adr 654|KD1 10033 15:17:25 3| | |Z 3.96798 m |
|
||||||
|
For M5|Adr 655|KD1 10033 15:20:153 3|Lr 1.97628 m |E 16.343 m | |
|
||||||
|
For M5|Adr 656|KD1 10025 15:20:393 3|Lv 1.41616 m |E 16.532 m | |
|
||||||
|
For M5|Adr 657|KD1 10025 15:20:483 3|Lv 1.41616 m |E 16.533 m | |
|
||||||
|
For M5|Adr 658|KD1 10033 15:21:133 3|Lr 1.97632 m |E 16.343 m | |
|
||||||
|
For M5|Adr 659|KD1 10025 15:21:13 3| | |Z 4.52812 m |
|
||||||
|
For M5|Adr 660|KD1 10025 15:24:483 3|Lr 1.51866 m |E 7.463 m | |
|
||||||
|
For M5|Adr 661|KD1 10024 15:25:113 3|Lv 1.63060 m |E 7.494 m | |
|
||||||
|
For M5|Adr 662|KD1 10024 15:25:203 3|Lv 1.63060 m |E 7.494 m | |
|
||||||
|
For M5|Adr 663|KD1 10025 15:25:393 3|Lr 1.51866 m |E 7.464 m | |
|
||||||
|
For M5|Adr 664|KD1 10024 15:25:39 3| | |Z 4.41618 m |
|
||||||
|
For M5|Adr 665|KD1 10024 15:27:393 3|Lr 1.68731 m |E 6.433 m | |
|
||||||
|
For M5|Adr 666|KD1 10023 15:28:103 3|Lv 1.64811 m |E 6.511 m | |
|
||||||
|
For M5|Adr 667|KD1 10023 15:28:223 3|Lv 1.64807 m |E 6.513 m | |
|
||||||
|
For M5|Adr 668|KD1 10024 15:28:433 3|Lr 1.68727 m |E 6.435 m | |
|
||||||
|
For M5|Adr 669|KD1 10023 15:28:43 3| | |Z 4.45538 m |
|
||||||
|
For M5|Adr 670|KD1 10023 15:30:503 3|Lr 1.58885 m |E 3.514 m | |
|
||||||
|
For M5|Adr 671|KD1 10022 15:31:193 3|Lv 1.71195 m |E 3.641 m | |
|
||||||
|
For M5|Adr 672|KD1 10022 15:31:283 3|Lv 1.71198 m |E 3.639 m | |
|
||||||
|
For M5|Adr 673|KD1 10023 15:31:493 3|Lr 1.58889 m |E 3.513 m | |
|
||||||
|
For M5|Adr 674|KD1 10022 15:31:49 3| | |Z 4.33229 m |
|
||||||
|
For M5|Adr 675|KD1 10022 15:33:463 3|Lr 1.65679 m |E 4.275 m | |
|
||||||
|
For M5|Adr 676|KD1 10021 15:34:133 3|Lv 1.52393 m |E 4.456 m | |
|
||||||
|
For M5|Adr 677|KD1 10021 15:34:223 3|Lv 1.52392 m |E 4.455 m | |
|
||||||
|
For M5|Adr 678|KD1 10022 15:34:473 3|Lr 1.65682 m |E 4.273 m | |
|
||||||
|
For M5|Adr 679|KD1 10021 15:34:47 3| | |Z 4.46517 m |
|
||||||
|
For M5|Adr 680|KD1 10021 15:37:223 3|Lr 1.66620 m |E 14.393 m | |
|
||||||
|
For M5|Adr 681|KD1 10026 15:38:203 3|Lv 1.71514 m |E 14.263 m | |
|
||||||
|
For M5|Adr 682|KD1 10026 15:38:283 3|Lv 1.71514 m |E 14.263 m | |
|
||||||
|
For M5|Adr 683|KD1 10021 15:38:503 3|Lr 1.66623 m |E 14.385 m | |
|
||||||
|
For M5|Adr 684|KD1 10026 15:38:50 3| | |Z 4.41624 m |
|
||||||
|
For M5|Adr 685|KD1 10026 15:41:213 3|Lr 1.79969 m |E 18.495 m | |
|
||||||
|
For M5|Adr 686|KD1 10020 15:41:453 3|Lv 1.76451 m |E 18.383 m | |
|
||||||
|
For M5|Adr 687|KD1 10020 15:41:533 3|Lv 1.76453 m |E 18.385 m | |
|
||||||
|
For M5|Adr 688|KD1 10026 15:42:153 3|Lr 1.79972 m |E 18.492 m | |
|
||||||
|
For M5|Adr 689|KD1 10020 15:42:15 3| | |Z 4.45143 m |
|
||||||
|
For M5|Adr 690|KD1 10020 15:44:513 3|Lr 1.51582 m |E 11.212 m | |
|
||||||
|
For M5|Adr 691|KD1 10019 15:45:173 3|Lv 1.87733 m |E 10.815 m | |
|
||||||
|
For M5|Adr 692|KD1 10019 15:45:273 3|Lv 1.87736 m |E 10.812 m | |
|
||||||
|
For M5|Adr 693|KD1 10020 15:45:533 3|Lr 1.51581 m |E 11.212 m | |
|
||||||
|
For M5|Adr 694|KD1 10019 15:45:53 3| | |Z 4.08990 m |
|
||||||
|
For M5|Adr 695|KD1 10019 15:48:513 3|Lr 1.53263 m |E 15.514 m | |
|
||||||
|
For M5|Adr 696|KD1 10017 15:49:213 3|Lv 1.54067 m |E 15.456 m | |
|
||||||
|
For M5|Adr 697|KD1 10017 15:49:303 3|Lv 1.54070 m |E 15.457 m | |
|
||||||
|
For M5|Adr 698|KD1 10019 15:49:513 3|Lr 1.53262 m |E 15.512 m | |
|
||||||
|
For M5|Adr 699|KD1 10017 15:49:51 3| | |Z 4.08184 m |
|
||||||
|
For M5|Adr 700|KD1 10017 15:50:163 3|Lr 1.54066 m |E 15.458 m | |
|
||||||
|
For M5|Adr 701|KD1 10019 15:51:053 3|Lv 1.53264 m |E 15.515 m | |
|
||||||
|
For M5|Adr 702|KD1 10019 15:51:143 3|Lv 1.53268 m |E 15.514 m | |
|
||||||
|
For M5|Adr 703|KD1 10017 15:51:333 3|Lr 1.54066 m |E 15.457 m | |
|
||||||
|
For M5|Adr 704|KD1 10019 15:51:33 3| | |Z 4.08984 m |
|
||||||
|
For M5|Adr 705|KD1 10019 15:53:323 3|Lr 1.88995 m |E 10.824 m | |
|
||||||
|
For M5|Adr 706|KD1 10020 15:53:533 3|Lv 1.52838 m |E 11.213 m | |
|
||||||
|
For M5|Adr 707|KD1 10020 15:54:023 3|Lv 1.52839 m |E 11.212 m | |
|
||||||
|
For M5|Adr 708|KD1 10019 15:54:253 3|Lr 1.88999 m |E 10.822 m | |
|
||||||
|
For M5|Adr 709|KD1 10020 15:54:25 3| | |Z 4.45142 m |
|
||||||
|
For M5|Adr 710|KD1 10020 15:56:133 3|Lr 1.76907 m |E 18.577 m | |
|
||||||
|
For M5|Adr 711|KD1 10026 15:56:383 3|Lv 1.80417 m |E 18.318 m | |
|
||||||
|
For M5|Adr 712|KD1 10026 15:56:493 3|Lv 1.80424 m |E 18.315 m | |
|
||||||
|
For M5|Adr 713|KD1 10020 15:57:113 3|Lr 1.76908 m |E 18.574 m | |
|
||||||
|
For M5|Adr 714|KD1 10026 15:57:11 3| | |Z 4.41629 m |
|
||||||
|
For M5|Adr 715|KD1 10026 15:58:253 3|Lr 1.71887 m |E 14.264 m | |
|
||||||
|
For M5|Adr 716|KD1 10021 15:58:513 3|Lv 1.66996 m |E 14.394 m | |
|
||||||
|
For M5|Adr 717|KD1 10021 15:59:033 3|Lv 1.66996 m |E 14.392 m | |
|
||||||
|
For M5|Adr 718|KD1 10026 15:59:253 3|Lr 1.71886 m |E 14.263 m | |
|
||||||
|
For M5|Adr 719|KD1 10021 15:59:25 3| | |Z 4.46520 m |
|
||||||
|
For M5|Adr 720|KD1 10021 16:00:493 3|Lr 1.54285 m |E 4.447 m | |
|
||||||
|
For M5|Adr 721|KD1 10022 16:01:123 3|Lv 1.67564 m |E 4.286 m | |
|
||||||
|
For M5|Adr 722|KD1 10022 16:01:243 3|Lv 1.67567 m |E 4.284 m | |
|
||||||
|
For M5|Adr 723|KD1 10021 16:01:463 3|Lr 1.54286 m |E 4.446 m | |
|
||||||
|
For M5|Adr 724|KD1 10022 16:01:46 3| | |Z 4.33240 m |
|
||||||
|
For M5|Adr 725|KD1 10022 16:02:583 3|Lr 1.71046 m |E 3.462 m | |
|
||||||
|
For M5|Adr 726|KD1 10023 16:03:223 3|Lv 1.58736 m |E 3.703 m | |
|
||||||
|
For M5|Adr 727|KD1 10023 16:03:323 3|Lv 1.58737 m |E 3.702 m | |
|
||||||
|
For M5|Adr 728|KD1 10022 16:03:553 3|Lr 1.71050 m |E 3.457 m | |
|
||||||
|
For M5|Adr 729|KD1 10023 16:03:55 3| | |Z 4.45551 m |
|
||||||
|
For M5|Adr 730|KD1 10023 16:05:163 3|Lr 1.62331 m |E 6.454 m | |
|
||||||
|
For M5|Adr 731|KD1 10024 16:05:433 3|Lv 1.66248 m |E 6.490 m | |
|
||||||
|
For M5|Adr 732|KD1 10024 16:05:523 3|Lv 1.66257 m |E 6.484 m | |
|
||||||
|
For M5|Adr 733|KD1 10023 16:06:143 3|Lr 1.62325 m |E 6.459 m | |
|
||||||
|
For M5|Adr 734|KD1 10024 16:06:14 3| | |Z 4.41627 m |
|
||||||
|
For M5|Adr 735|KD1 10024 16:07:473 3|Lr 1.62462 m |E 7.412 m | |
|
||||||
|
For M5|Adr 736|KD1 10025 16:08:183 3|Lv 1.51265 m |E 7.540 m | |
|
||||||
|
For M5|Adr 737|KD1 10025 16:08:283 3|Lv 1.51267 m |E 7.539 m | |
|
||||||
|
For M5|Adr 738|KD1 10024 16:08:493 3|Lr 1.62461 m |E 7.413 m | |
|
||||||
|
For M5|Adr 739|KD1 10025 16:08:49 3| | |Z 4.52822 m |
|
||||||
|
For M5|Adr 740|KD1 10025 16:10:343 3|Lr 1.41321 m |E 16.544 m | |
|
||||||
|
For M5|Adr 741|KD1 10033 16:11:023 3|Lv 1.97332 m |E 16.338 m | |
|
||||||
|
For M5|Adr 742|KD1 10033 16:11:123 3|Lv 1.97337 m |E 16.333 m | |
|
||||||
|
For M5|Adr 743|KD1 10025 16:11:393 3|Lr 1.41318 m |E 16.543 m | |
|
||||||
|
For M5|Adr 744|KD1 10033 16:11:39 3| | |Z 3.96807 m |
|
||||||
|
For M5|Adr 745|KD1 10033 16:13:083 3|Lr 1.72530 m |E 4.385 m | |
|
||||||
|
For M5|Adr 746|KD1 FH15 16:13:463 3|Lv 0.96011 m |E 4.588 m | |
|
||||||
|
For M5|Adr 747|KD1 FH15 16:13:553 3|Lv 0.96012 m |E 4.588 m | |
|
||||||
|
For M5|Adr 748|KD1 10033 16:14:203 3|Lr 1.72528 m |E 4.388 m | |
|
||||||
|
For M5|Adr 749|KD1 FH15 16:14:20 3| | |Z 4.73325 m |
|
||||||
|
For M5|Adr 750|KD1 FH15 16:16:013 3|Lr 0.81462 m |E 18.051 m | |
|
||||||
|
For M5|Adr 751|KD1 10031 16:16:543 3|Lv 1.57445 m |E 18.098 m | |
|
||||||
|
For M5|Adr 752|KD1 10031 16:17:063 3|Lv 1.57446 m |E 18.099 m | |
|
||||||
|
For M5|Adr 753|KD1 FH15 16:17:293 3|Lr 0.81464 m |E 18.048 m | |
|
||||||
|
For M5|Adr 754|KD1 10031 16:17:29 3| | |Z 3.97342 m |
|
||||||
|
For M5|Adr 755|KD1 10031 16:19:023 3|Lr 1.70992 m |E 9.854 m | |
|
||||||
|
For M5|Adr 756|KD1 10032 16:19:343 3|Lv 1.84400 m |E 9.988 m | |
|
||||||
|
For M5|Adr 757|KD1 10032 16:19:493 3|Lv 1.84402 m |E 9.986 m | |
|
||||||
|
For M5|Adr 758|KD1 10031 16:20:163 3|Lr 1.70994 m |E 9.853 m | |
|
||||||
|
For M5|Adr 759|KD1 10032 16:20:16 3| | |Z 3.83934 m |
|
||||||
|
For M5|Adr 760|KD1 10032 16:22:213 3|Lr 1.86686 m |E 13.225 m | |
|
||||||
|
For M5|Adr 761|KD1 10039 16:22:523 3|Lv 1.49909 m |E 13.263 m | |
|
||||||
|
For M5|Adr 762|KD1 10039 16:23:073 3|Lv 1.49908 m |E 13.263 m | |
|
||||||
|
For M5|Adr 763|KD1 10032 16:23:393 3|Lr 1.86689 m |E 13.224 m | |
|
||||||
|
For M5|Adr 764|KD1 10039 16:23:39 3| | |Z 4.20713 m |
|
||||||
|
For M5|Adr 765|KD1 10039 16:25:173 3|Lr 1.69401 m |E 7.802 m | |
|
||||||
|
For M5|Adr 766|KD1 10038 16:25:463 3|Lv 1.70193 m |E 7.622 m | |
|
||||||
|
For M5|Adr 767|KD1 10038 16:26:023 3|Lv 1.70194 m |E 7.622 m | |
|
||||||
|
For M5|Adr 768|KD1 10039 16:26:283 3|Lr 1.69400 m |E 7.802 m | |
|
||||||
|
For M5|Adr 769|KD1 10038 16:26:28 3| | |Z 4.19920 m |
|
||||||
|
For M5|Adr 770|KD1 10038 16:28:073 3|Lr 1.55007 m |E 15.748 m | |
|
||||||
|
For M5|Adr 771|KD1 10037 16:28:313 3|Lv 1.64459 m |E 15.835 m | |
|
||||||
|
For M5|Adr 772|KD1 10037 16:28:413 3|Lv 1.64460 m |E 15.834 m | |
|
||||||
|
For M5|Adr 773|KD1 10038 16:29:043 3|Lr 1.55007 m |E 15.749 m | |
|
||||||
|
For M5|Adr 774|KD1 10037 16:29:04 3| | |Z 4.10468 m |
|
||||||
|
For M5|Adr 775|KD1 10037 16:31:083 3|Lr 1.67815 m |E 12.662 m | |
|
||||||
|
For M5|Adr 776|KD1 10040 16:31:313 3|Lv 1.50556 m |E 12.905 m | |
|
||||||
|
For M5|Adr 777|KD1 10040 16:31:413 3|Lv 1.50557 m |E 12.906 m | |
|
||||||
|
For M5|Adr 778|KD1 10037 16:32:023 3|Lr 1.67815 m |E 12.664 m | |
|
||||||
|
For M5|Adr 779|KD1 10040 16:32:02 3| | |Z 4.27726 m |
|
||||||
|
For M5|Adr 780|KD1 10040 16:33:223 3|Lr 1.54946 m |E 6.498 m | |
|
||||||
|
For M5|Adr 781|KD1 70002 16:33:523 3|Lv 1.55940 m |E 6.375 m | |
|
||||||
|
For M5|Adr 782|KD1 70002 16:34:033 3|Lv 1.55939 m |E 6.376 m | |
|
||||||
|
For M5|Adr 783|KD1 10040 16:34:273 3|Lr 1.54942 m |E 6.498 m | |
|
||||||
|
For M5|Adr 784|KD1 70002 16:34:27 3| | |Z 4.26731 m |
|
||||||
|
For M5|Adr 785|KD1 70002 16:35:563 3|Lr 1.59282 m |E 12.344 m | |
|
||||||
|
For M5|Adr 786|KD1 FH4 16:36:363 3|Lv 1.13142 m |E 12.188 m | |
|
||||||
|
For M5|Adr 787|KD1 FH4 16:36:523 3|Lv 1.13140 m |E 12.188 m | |
|
||||||
|
For M5|Adr 788|KD1 70002 16:37:183 3|Lr 1.59290 m |E 12.347 m | |
|
||||||
|
For M5|Adr 789|KD1 FH4 16:37:18 3| | |Z 4.72876 m |
|
||||||
|
For M5|Adr 790|KD1 FH4 16:39:563 3|Lr 1.49096 m |E 4.247 m | |
|
||||||
|
For M5|Adr 791|KD1 10051 16:41:483 3|Lv 1.82399 m |E 4.148 m | |
|
||||||
|
For M5|Adr 792|KD1 10051 16:42:043 3|Lv 1.82401 m |E 4.146 m | |
|
||||||
|
For M5|Adr 793|KD1 FH4 16:42:303 3|Lr 1.49098 m |E 4.248 m | |
|
||||||
|
For M5|Adr 794|KD1 10051 16:42:30 3| | |Z 4.39573 m |
|
||||||
|
For M5|Adr 795|KD1 10051 16:44:153 3|Lr 1.47922 m |E 11.936 m | |
|
||||||
|
For M5|Adr 796|KD1 10050 16:44:483 3|Lv 1.60061 m |E 11.975 m | |
|
||||||
|
For M5|Adr 797|KD1 10050 16:45:053 3|Lv 1.60057 m |E 11.977 m | |
|
||||||
|
For M5|Adr 798|KD1 10051 16:45:323 3|Lr 1.47919 m |E 11.937 m | |
|
||||||
|
For M5|Adr 799|KD1 10050 16:45:32 3| | |Z 4.27434 m |
|
||||||
|
For M5|Adr 800|KD1 10050 16:47:273 3|Lr 1.70650 m |E 11.350 m | |
|
||||||
|
For M5|Adr 801|KD1 10053 16:48:033 3|Lv 1.59473 m |E 12.410 m | |
|
||||||
|
For M5|Adr 802|KD1 10053 16:48:203 3|Lv 1.59475 m |E 12.408 m | |
|
||||||
|
For M5|Adr 803|KD1 10050 16:48:493 3|Lr 1.70655 m |E 11.349 m | |
|
||||||
|
For M5|Adr 804|KD1 10053 16:48:49 3| | |Z 4.38613 m |
|
||||||
|
For M5|Adr 805|KD1 10053 16:53:053 3|Lr 1.59530 m |E 24.190 m | |
|
||||||
|
For M5|Adr 806|KD1 10049 16:53:343 3|Lv 1.87627 m |E 24.624 m | |
|
||||||
|
For M5|Adr 807|KD1 10049 16:53:543 3|Lv 1.87630 m |E 24.626 m | |
|
||||||
|
For M5|Adr 808|KD1 10053 16:54:253 3|Lr 1.59533 m |E 24.185 m | |
|
||||||
|
For M5|Adr 809|KD1 10049 16:54:25 3| | |Z 4.10516 m |
|
||||||
|
For M5|Adr 810|KD1 10049 16:56:233 3|Lr 1.40780 m |E 14.745 m | |
|
||||||
|
For M5|Adr 811|KD1 FH3 16:57:093 3|Lv 0.80238 m |E 15.610 m | |
|
||||||
|
For M5|Adr 812|KD1 FH3 16:57:243 3|Lv 0.80236 m |E 15.609 m | |
|
||||||
|
For M5|Adr 813|KD1 10049 16:57:513 3|Lr 1.40777 m |E 14.741 m | |
|
||||||
|
For M5|Adr 814|KD1 FH3 16:57:51 3| | |Z 4.71057 m |
|
||||||
|
For M5|Adr 817|KD1 FH3 17:02:383 3|Lr 0.64466 m |E 23.862 m | |
|
||||||
|
For M5|Adr 818|KD1 812 17:03:163 3|Lv 1.35722 m |E 26.312 m | |
|
||||||
|
For M5|Adr 819|KD1 812 17:03:353 3|Lv 1.35712 m |E 26.316 m | |
|
||||||
|
For M5|Adr 820|KD1 FH3 17:04:123 3|Lr 0.64467 m |E 23.868 m | |
|
||||||
|
For M5|Adr 821|KD1 812 17:04:12 3| | |Z 3.99807 m |
|
||||||
|
For M5|Adr 822|KD1 812 17:04:553 3|Lr 1.35712 m |E 26.321 m | |
|
||||||
|
For M5|Adr 823|KD1 10048 17:05:353 3|Lv 1.45751 m |E 25.242 m | |
|
||||||
|
For M5|Adr 824|KD1 10048 17:05:503 3|Lv 1.45748 m |E 25.241 m | |
|
||||||
|
For M5|Adr 825|KD1 812 17:06:213 3|Lr 1.35717 m |E 26.307 m | |
|
||||||
|
For M5|Adr 826|KD1 10048 17:06:21 3| | |Z 3.89772 m |
|
||||||
|
For M5|Adr 827|KD1 10048 17:08:243 3|Lr 1.41657 m |E 7.786 m | |
|
||||||
|
For M5|Adr 828|KD1 816 17:09:343 3|Lv 1.31900 m |E 8.208 m | |
|
||||||
|
For M5|Adr 829|KD1 816 17:09:513 3|Lv 1.31900 m |E 8.209 m | |
|
||||||
|
For M5|Adr 830|KD1 10048 17:10:213 3|Lr 1.41659 m |E 7.776 m | |
|
||||||
|
For M5|Adr 831|KD1 816 17:10:21 3| | |Z 3.99530 m |
|
||||||
|
For M5|Adr 832|KD1 816 3|Sh 0.00030 m |dz -0.00030 m |Z 3.99500 m |
|
||||||
|
For M5|Adr 833|KD2 816 52 3|Sr 649.58 m |Sv 649.70 m |Z 3.99530 m |
|
||||||
|
For M5|Adr 834|TO Zugende 3| | | |
|
||||||
|
For M5|Adr 835|TO Zugbeginn RVVR 2| | | |
|
||||||
|
For M5|Adr 836|KD1 816 2| | |Z 3.99500 m |
|
||||||
|
For M5|Adr 837|KD1 816 14:30:403 2|Lr 1.43758 m |E 23.399 m | |
|
||||||
|
For M5|Adr 838|KD1 812 14:31:083 2|Lv 1.43473 m |E 21.489 m | |
|
||||||
|
For M5|Adr 839|KD1 812 14:31:173 2|Lv 1.43477 m |E 21.488 m | |
|
||||||
|
For M5|Adr 840|KD1 816 14:31:403 2|Lr 1.43768 m |E 23.400 m | |
|
||||||
|
For M5|Adr 841|KD1 812 14:31:40 2| | |Z 3.99788 m |
|
||||||
|
For M5|Adr 842|KD1 812 14:35:573 2|Lr 1.35778 m |E 4.039 m | |
|
||||||
|
For M5|Adr 843|KD1 60001 14:36:333 2|Lv 1.50396 m |E 4.427 m | |
|
||||||
|
For M5|Adr 844|KD1 60001 14:36:433 2|Lv 1.50396 m |E 4.427 m | |
|
||||||
|
For M5|Adr 845|KD1 812 14:37:023 2|Lr 1.35777 m |E 4.039 m | |
|
||||||
|
For M5|Adr 846|KD1 60001 14:37:02 2| | |Z 3.85169 m |
|
||||||
|
For M5|Adr 847|KD1 60001 14:40:263 2|Lr 1.54562 m |E 19.274 m | |
|
||||||
|
For M5|Adr 848|KD1 10045 14:40:493 2|Lv 1.56808 m |E 19.224 m | |
|
||||||
|
For M5|Adr 849|KD1 10045 14:40:583 2|Lv 1.56811 m |E 19.224 m | |
|
||||||
|
For M5|Adr 850|KD1 60001 14:41:183 2|Lr 1.54563 m |E 19.273 m | |
|
||||||
|
For M5|Adr 851|KD1 10045 14:41:18 2| | |Z 3.82922 m |
|
||||||
|
For M5|Adr 852|KD1 10045 14:46:233 2|Lr 1.67307 m |E 26.557 m | |
|
||||||
|
For M5|Adr 853|KD1 10034 14:46:573 2|Lv 1.65673 m |E 27.732 m | |
|
||||||
|
For M5|Adr 854|KD1 10034 14:47:073 2|Lv 1.65669 m |E 27.733 m | |
|
||||||
|
For M5|Adr 855|KD1 10045 14:47:253 2|Lr 1.67302 m |E 26.559 m | |
|
||||||
|
For M5|Adr 856|KD1 10034 14:47:25 2| | |Z 3.84556 m |
|
||||||
|
For M5|Adr 857|KD1 10034 14:51:143 2|Lr 1.61495 m |E 25.466 m | |
|
||||||
|
For M5|Adr 858|KD1 10035 14:51:423 2|Lv 1.27430 m |E 25.236 m | |
|
||||||
|
For M5|Adr 859|KD1 10035 14:51:513 2|Lv 1.27430 m |E 25.238 m | |
|
||||||
|
For M5|Adr 860|KD1 10034 14:52:113 2|Lr 1.61488 m |E 25.465 m | |
|
||||||
|
For M5|Adr 861|KD1 10035 14:52:11 2| | |Z 4.18617 m |
|
||||||
|
For M5|Adr 862|KD1 10035 14:56:273 2|Lr 1.80675 m |E 19.340 m | |
|
||||||
|
For M5|Adr 863|KD1 10036 14:56:453 2|Lv 1.88078 m |E 19.429 m | |
|
||||||
|
For M5|Adr 864|KD1 10036 14:56:543 2|Lv 1.88079 m |E 19.427 m | |
|
||||||
|
For M5|Adr 865|KD1 10035 14:57:143 2|Lr 1.80672 m |E 19.342 m | |
|
||||||
|
For M5|Adr 866|KD1 10036 14:57:14 2| | |Z 4.11213 m |
|
||||||
|
For M5|Adr 867|KD1 10036 15:05:313 2|Lr 1.56667 m |E 6.641 m | |
|
||||||
|
For M5|Adr 868|KD1 FH5 15:06:083 2|Lv 0.96341 m |E 10.417 m | |
|
||||||
|
For M5|Adr 869|KD1 FH5 15:06:173 2|Lv 0.96349 m |E 10.417 m | |
|
||||||
|
For M5|Adr 870|KD1 10036 15:06:403 2|Lr 1.56681 m |E 6.638 m | |
|
||||||
|
For M5|Adr 871|KD1 FH5 15:06:40 2| | |Z 4.71542 m |
|
||||||
|
For M5|Adr 872|KD1 FH5 15:07:103 2|Lr 0.96347 m |E 10.418 m | |
|
||||||
|
For M5|Adr 873|KD1 10036 15:07:393 2|Lv 1.56678 m |E 6.640 m | |
|
||||||
|
For M5|Adr 874|KD1 10036 15:07:483 2|Lv 1.56677 m |E 6.642 m | |
|
||||||
|
For M5|Adr 875|KD1 FH5 15:08:103 2|Lr 0.96350 m |E 10.417 m | |
|
||||||
|
For M5|Adr 876|KD1 10036 15:08:10 2| | |Z 4.11213 m |
|
||||||
|
For M5|Adr 877|KD1 10036 15:10:183 2|Lr 1.88504 m |E 19.391 m | |
|
||||||
|
For M5|Adr 878|KD1 10035 15:10:483 2|Lv 1.81094 m |E 19.359 m | |
|
||||||
|
For M5|Adr 879|KD1 10035 15:10:593 2|Lv 1.81094 m |E 19.359 m | |
|
||||||
|
For M5|Adr 880|KD1 10036 15:11:203 2|Lr 1.88498 m |E 19.392 m | |
|
||||||
|
For M5|Adr 881|KD1 10035 15:11:20 2| | |Z 4.18620 m |
|
||||||
|
For M5|Adr 882|KD1 10035 15:13:103 2|Lr 1.28679 m |E 25.062 m | |
|
||||||
|
For M5|Adr 883|KD1 10034 15:13:343 2|Lv 1.62729 m |E 25.615 m | |
|
||||||
|
For M5|Adr 884|KD1 10034 15:13:433 2|Lv 1.62732 m |E 25.609 m | |
|
||||||
|
For M5|Adr 885|KD1 10035 15:14:013 2|Lr 1.28680 m |E 25.061 m | |
|
||||||
|
For M5|Adr 886|KD1 10034 15:14:01 2| | |Z 3.84569 m |
|
||||||
|
For M5|Adr 887|KD1 10034 15:16:543 2|Lr 1.66493 m |E 28.745 m | |
|
||||||
|
For M5|Adr 888|KD1 10028 15:17:183 2|Lv 1.61072 m |E 28.420 m | |
|
||||||
|
For M5|Adr 889|KD1 10028 15:17:283 2|Lv 1.61079 m |E 28.422 m | |
|
||||||
|
For M5|Adr 890|KD1 10034 15:17:483 2|Lr 1.66498 m |E 28.741 m | |
|
||||||
|
For M5|Adr 891|KD1 10028 15:17:48 2| | |Z 3.89989 m |
|
||||||
|
For M5|Adr 892|KD1 10028 15:21:203 2|Lr 1.59959 m |E 19.000 m | |
|
||||||
|
For M5|Adr 893|KD1 60002 15:22:083 2|Lv 1.54667 m |E 18.962 m | |
|
||||||
|
For M5|Adr 894|KD1 60002 15:22:193 2|Lv 1.54668 m |E 18.961 m | |
|
||||||
|
For M5|Adr 895|KD1 10028 15:22:423 2|Lr 1.59967 m |E 19.003 m | |
|
||||||
|
For M5|Adr 896|KD1 60002 15:22:42 2| | |Z 3.95284 m |
|
||||||
|
For M5|Adr 897|KD1 60002 15:25:443 2|Lr 1.60831 m |E 18.850 m | |
|
||||||
|
For M5|Adr 898|KD1 10011 15:26:143 2|Lv 1.63237 m |E 19.103 m | |
|
||||||
|
For M5|Adr 899|KD1 10011 15:26:233 2|Lv 1.63235 m |E 19.104 m | |
|
||||||
|
For M5|Adr 900|KD1 60002 15:26:433 2|Lr 1.60829 m |E 18.852 m | |
|
||||||
|
For M5|Adr 901|KD1 10011 15:26:43 2| | |Z 3.92878 m |
|
||||||
|
For M5|Adr 902|KD1 10011 15:30:183 2|Lr 1.67286 m |E 21.967 m | |
|
||||||
|
For M5|Adr 903|KD1 60003 15:30:433 2|Lv 1.63170 m |E 22.073 m | |
|
||||||
|
For M5|Adr 904|KD1 60003 15:30:523 2|Lv 1.63172 m |E 22.072 m | |
|
||||||
|
For M5|Adr 905|KD1 10011 15:31:263 2|Lr 1.67286 m |E 21.965 m | |
|
||||||
|
For M5|Adr 906|KD1 60003 15:31:26 2| | |Z 3.96993 m |
|
||||||
|
For M5|Adr 907|KD1 60003 15:35:353 2|Lr 1.68025 m |E 21.958 m | |
|
||||||
|
For M5|Adr 908|KD1 10001 15:36:073 2|Lv 1.63896 m |E 21.883 m | |
|
||||||
|
For M5|Adr 909|KD1 10001 15:36:163 2|Lv 1.63897 m |E 21.881 m | |
|
||||||
|
For M5|Adr 910|KD1 60003 15:36:403 2|Lr 1.68030 m |E 21.961 m | |
|
||||||
|
For M5|Adr 911|KD1 10001 15:36:40 2| | |Z 4.01124 m |
|
||||||
|
For M5|Adr 912|KD1 10001 15:40:373 2|Lr 1.39478 m |E 19.268 m | |
|
||||||
|
For M5|Adr 913|KD1 60004 15:41:133 2|Lv 1.61995 m |E 18.718 m | |
|
||||||
|
For M5|Adr 914|KD1 60004 15:41:223 2|Lv 1.62017 m |E 18.717 m | |
|
||||||
|
For M5|Adr 915|KD1 10001 15:41:403 2|Lr 1.39479 m |E 19.268 m | |
|
||||||
|
For M5|Adr 916|KD1 60004 15:41:40 2| | |Z 3.78596 m |
|
||||||
|
For M5|Adr 917|KD1 60004 15:45:233 2|Lr 1.57515 m |E 19.137 m | |
|
||||||
|
For M5|Adr 918|KD1 10003 15:45:483 2|Lv 1.49858 m |E 19.431 m | |
|
||||||
|
For M5|Adr 919|KD1 10003 15:45:573 2|Lv 1.49859 m |E 19.431 m | |
|
||||||
|
For M5|Adr 920|KD1 60004 15:46:193 2|Lr 1.57509 m |E 19.139 m | |
|
||||||
|
For M5|Adr 921|KD1 10003 15:46:19 2| | |Z 3.86250 m |
|
||||||
|
For M5|Adr 922|KD1 10003 15:49:033 2|Lr 1.81482 m |E 13.285 m | |
|
||||||
|
For M5|Adr 923|KD1 10007 15:49:313 2|Lv 1.64518 m |E 12.877 m | |
|
||||||
|
For M5|Adr 924|KD1 10007 15:49:403 2|Lv 1.64518 m |E 12.878 m | |
|
||||||
|
For M5|Adr 925|KD1 10003 15:50:003 2|Lr 1.81488 m |E 13.284 m | |
|
||||||
|
For M5|Adr 926|KD1 10007 15:50:00 2| | |Z 4.03217 m |
|
||||||
|
For M5|Adr 927|KD1 10007 15:52:403 2|Lr 1.62453 m |E 30.297 m | |
|
||||||
|
For M5|Adr 928|KD1 10008 15:53:043 2|Lv 1.80896 m |E 30.375 m | |
|
||||||
|
For M5|Adr 929|KD1 10008 15:53:133 2|Lv 1.80894 m |E 30.376 m | |
|
||||||
|
For M5|Adr 930|KD1 10007 15:53:413 2|Lr 1.62452 m |E 30.255 m | |
|
||||||
|
For M5|Adr 931|KD1 10008 15:53:41 2| | |Z 3.84774 m |
|
||||||
|
For M5|Adr 932|KD1 10008 15:56:393 2|Lr 1.74534 m |E 13.415 m | |
|
||||||
|
For M5|Adr 933|KD1 10005 15:57:033 2|Lv 1.75588 m |E 13.286 m | |
|
||||||
|
For M5|Adr 934|KD1 10005 15:57:123 2|Lv 1.75590 m |E 13.286 m | |
|
||||||
|
For M5|Adr 935|KD1 10008 15:57:313 2|Lr 1.74539 m |E 13.416 m | |
|
||||||
|
For M5|Adr 936|KD1 10005 15:57:31 2| | |Z 3.83722 m |
|
||||||
|
For M5|Adr 937|KD1 10005 16:01:303 2|Lr 1.40465 m |E 20.041 m | |
|
||||||
|
For M5|Adr 938|KD1 10006 16:01:513 2|Lv 1.54197 m |E 19.066 m | |
|
||||||
|
For M5|Adr 939|KD1 10006 16:02:003 2|Lv 1.54198 m |E 19.066 m | |
|
||||||
|
For M5|Adr 940|KD1 10005 16:02:213 2|Lr 1.40455 m |E 20.044 m | |
|
||||||
|
For M5|Adr 941|KD1 10006 16:02:21 2| | |Z 3.69984 m |
|
||||||
|
For M5|Adr 942|KD1 10006 16:03:563 2|Lr 1.60546 m |E 23.103 m | |
|
||||||
|
For M5|Adr 943|KD1 10004 16:04:203 2|Lv 1.69468 m |E 24.031 m | |
|
||||||
|
For M5|Adr 944|KD1 10004 16:04:293 2|Lv 1.69467 m |E 24.034 m | |
|
||||||
|
For M5|Adr 945|KD1 10006 16:04:493 2|Lr 1.60547 m |E 23.099 m | |
|
||||||
|
For M5|Adr 946|KD1 10004 16:04:49 2| | |Z 3.61063 m |
|
||||||
|
For M5|Adr 947|KD1 10004 16:08:293 2|Lr 1.62333 m |E 20.862 m | |
|
||||||
|
For M5|Adr 948|KD1 60005 16:08:533 2|Lv 1.61400 m |E 21.223 m | |
|
||||||
|
For M5|Adr 949|KD1 60005 16:09:033 2|Lv 1.61401 m |E 21.226 m | |
|
||||||
|
For M5|Adr 950|KD1 10004 16:09:233 2|Lr 1.62337 m |E 20.868 m | |
|
||||||
|
For M5|Adr 951|KD1 60005 16:09:23 2| | |Z 3.61998 m |
|
||||||
|
For M5|Adr 952|KD1 60005 16:12:113 2|Lr 1.62803 m |E 19.769 m | |
|
||||||
|
For M5|Adr 953|KD1 10002 16:12:333 2|Lv 1.53886 m |E 19.690 m | |
|
||||||
|
For M5|Adr 954|KD1 10002 16:12:423 2|Lv 1.53887 m |E 19.688 m | |
|
||||||
|
For M5|Adr 955|KD1 60005 16:13:013 2|Lr 1.62803 m |E 19.768 m | |
|
||||||
|
For M5|Adr 956|KD1 10002 16:13:01 2| | |Z 3.70914 m |
|
||||||
|
For M5|Adr 957|KD1 10002 16:13:263 2|Lr 1.53886 m |E 19.674 m | |
|
||||||
|
For M5|Adr 958|KD1 60006 16:13:483 2|Lv 1.62806 m |E 19.768 m | |
|
||||||
|
For M5|Adr 959|KD1 60006 16:13:583 2|Lv 1.62801 m |E 19.770 m | |
|
||||||
|
For M5|Adr 960|KD1 10002 16:14:163 2|Lr 1.53885 m |E 19.675 m | |
|
||||||
|
For M5|Adr 961|KD1 60006 16:14:16 2| | |Z 3.61996 m |
|
||||||
|
For M5|Adr 962|KD1 60006 16:16:263 2|Lr 1.60384 m |E 20.993 m | |
|
||||||
|
For M5|Adr 963|KD1 10004 16:16:513 2|Lv 1.61318 m |E 21.085 m | |
|
||||||
|
For M5|Adr 964|KD1 10004 16:17:013 2|Lv 1.61318 m |E 21.084 m | |
|
||||||
|
For M5|Adr 965|KD1 60006 16:17:233 2|Lr 1.60386 m |E 20.994 m | |
|
||||||
|
For M5|Adr 966|KD1 10004 16:17:23 2| | |Z 3.61063 m |
|
||||||
|
For M5|Adr 967|KD1 10004 16:19:003 2|Lr 1.65949 m |E 24.008 m | |
|
||||||
|
For M5|Adr 968|KD1 10006 16:19:343 2|Lv 1.57013 m |E 23.123 m | |
|
||||||
|
For M5|Adr 969|KD1 10006 16:19:443 2|Lv 1.57013 m |E 23.124 m | |
|
||||||
|
For M5|Adr 970|KD1 10004 16:20:013 2|Lr 1.65952 m |E 23.998 m | |
|
||||||
|
For M5|Adr 971|KD1 10006 16:20:01 2| | |Z 3.70001 m |
|
||||||
|
For M5|Adr 972|KD1 10006 16:21:163 2|Lr 1.49590 m |E 18.993 m | |
|
||||||
|
For M5|Adr 973|KD1 10005 16:21:523 2|Lv 1.35852 m |E 20.150 m | |
|
||||||
|
For M5|Adr 974|KD1 10005 16:22:033 2|Lv 1.35849 m |E 20.150 m | |
|
||||||
|
For M5|Adr 975|KD1 10006 16:22:213 2|Lr 1.49595 m |E 18.996 m | |
|
||||||
|
For M5|Adr 976|KD1 10005 16:22:21 2| | |Z 3.83743 m |
|
||||||
|
For M5|Adr 977|KD1 10005 16:23:553 2|Lr 1.76288 m |E 13.359 m | |
|
||||||
|
For M5|Adr 978|KD1 10008 16:24:193 2|Lv 1.75238 m |E 13.351 m | |
|
||||||
|
For M5|Adr 979|KD1 10008 16:24:303 2|Lv 1.75236 m |E 13.351 m | |
|
||||||
|
For M5|Adr 980|KD1 10005 16:24:513 2|Lr 1.76288 m |E 13.359 m | |
|
||||||
|
For M5|Adr 981|KD1 10008 16:24:51 2| | |Z 3.84794 m |
|
||||||
|
For M5|Adr 982|KD1 10008 16:27:193 2|Lr 1.83398 m |E 30.253 m | |
|
||||||
|
For M5|Adr 983|KD1 10007 16:27:413 2|Lv 1.64958 m |E 30.375 m | |
|
||||||
|
For M5|Adr 984|KD1 10007 16:27:513 2|Lv 1.64959 m |E 30.377 m | |
|
||||||
|
For M5|Adr 985|KD1 10008 16:28:103 2|Lr 1.83397 m |E 30.251 m | |
|
||||||
|
For M5|Adr 986|KD1 10007 16:28:10 2| | |Z 4.03233 m |
|
||||||
|
For M5|Adr 987|KD1 10007 16:29:513 2|Lr 1.63925 m |E 13.080 m | |
|
||||||
|
For M5|Adr 988|KD1 10003 16:30:253 2|Lv 1.80901 m |E 13.038 m | |
|
||||||
|
For M5|Adr 989|KD1 10003 16:30:353 2|Lv 1.80904 m |E 13.034 m | |
|
||||||
|
For M5|Adr 990|KD1 10007 16:31:063 2|Lr 1.63930 m |E 13.082 m | |
|
||||||
|
For M5|Adr 991|KD1 10003 16:31:06 2| | |Z 3.86258 m |
|
||||||
|
For M5|Adr 992|KD1 10003 16:33:333 2|Lr 1.47515 m |E 19.257 m | |
|
||||||
|
For M5|Adr 993|KD1 60007 16:34:013 2|Lv 1.55199 m |E 19.323 m | |
|
||||||
|
For M5|Adr 994|KD1 60007 16:34:163 2|Lv 1.55202 m |E 19.323 m | |
|
||||||
|
For M5|Adr 995|KD1 10003 16:34:403 2|Lr 1.47515 m |E 19.259 m | |
|
||||||
|
For M5|Adr 996|KD1 60007 16:34:40 2| | |Z 3.78572 m |
|
||||||
|
For M5|Adr 997|KD1 60007 16:36:413 2|Lr 1.63027 m |E 18.873 m | |
|
||||||
|
For M5|Adr 998|KD1 10001 16:37:093 2|Lv 1.40449 m |E 19.130 m | |
|
||||||
|
For M5|Adr 999|KD1 10001 16:37:243 2|Lv 1.40450 m |E 19.130 m | |
|
||||||
|
For M5|Adr 1000|KD1 60007 16:37:513 2|Lr 1.63028 m |E 18.871 m | |
|
||||||
|
For M5|Adr 1001|KD1 10001 16:37:51 2| | |Z 4.01151 m |
|
||||||
|
For M5|Adr 1002|KD1 10001 16:39:533 2|Lr 1.65957 m |E 21.975 m | |
|
||||||
|
For M5|Adr 1003|KD1 60008 16:40:383 2|Lv 1.70161 m |E 21.868 m | |
|
||||||
|
For M5|Adr 1004|KD1 60008 16:41:003 2|Lv 1.70156 m |E 21.869 m | |
|
||||||
|
For M5|Adr 1005|KD1 10001 16:41:233 2|Lr 1.65960 m |E 21.974 m | |
|
||||||
|
For M5|Adr 1006|KD1 60008 16:41:23 2| | |Z 3.96951 m |
|
||||||
|
For M5|Adr 1007|KD1 60008 16:43:203 2|Lr 1.63618 m |E 22.050 m | |
|
||||||
|
For M5|Adr 1008|KD1 10011 16:43:483 2|Lv 1.67665 m |E 21.988 m | |
|
||||||
|
For M5|Adr 1009|KD1 10011 16:44:003 2|Lv 1.67668 m |E 21.989 m | |
|
||||||
|
For M5|Adr 1010|KD1 60008 16:44:233 2|Lr 1.63618 m |E 22.050 m | |
|
||||||
|
For M5|Adr 1011|KD1 10011 16:44:23 2| | |Z 3.92902 m |
|
||||||
|
For M5|Adr 1012|KD1 10011 16:46:093 2|Lr 1.63475 m |E 19.055 m | |
|
||||||
|
For M5|Adr 1013|KD1 60009 16:46:373 2|Lv 1.61073 m |E 18.874 m | |
|
||||||
|
For M5|Adr 1014|KD1 60009 16:46:533 2|Lv 1.61073 m |E 18.871 m | |
|
||||||
|
For M5|Adr 1015|KD1 10011 16:47:173 2|Lr 1.63475 m |E 19.053 m | |
|
||||||
|
For M5|Adr 1016|KD1 60009 16:47:17 2| | |Z 3.95304 m |
|
||||||
|
For M5|Adr 1017|KD1 60009 16:49:003 2|Lr 1.55716 m |E 19.033 m | |
|
||||||
|
For M5|Adr 1018|KD1 10028 16:49:383 2|Lv 1.61006 m |E 18.947 m | |
|
||||||
|
For M5|Adr 1019|KD1 10028 16:49:503 2|Lv 1.61010 m |E 18.946 m | |
|
||||||
|
For M5|Adr 1020|KD1 60009 16:50:113 2|Lr 1.55714 m |E 19.040 m | |
|
||||||
|
For M5|Adr 1021|KD1 10028 16:50:11 2| | |Z 3.90011 m |
|
||||||
|
For M5|Adr 1022|KD1 10028 16:51:563 2|Lr 1.57370 m |E 28.434 m | |
|
||||||
|
For M5|Adr 1023|KD1 10034 16:52:203 2|Lv 1.62804 m |E 28.757 m | |
|
||||||
|
For M5|Adr 1024|KD1 10034 16:52:323 2|Lv 1.62798 m |E 28.741 m | |
|
||||||
|
For M5|Adr 1025|KD1 10028 16:52:553 2|Lr 1.57369 m |E 28.415 m | |
|
||||||
|
For M5|Adr 1026|KD1 10034 16:52:55 2| | |Z 3.84579 m |
|
||||||
|
For M5|Adr 1027|KD1 10034 16:54:523 2|Lr 1.63172 m |E 27.842 m | |
|
||||||
|
For M5|Adr 1028|KD1 10045 16:55:403 2|Lv 1.64796 m |E 26.502 m | |
|
||||||
|
For M5|Adr 1029|KD1 10045 16:56:173 2|Lv 1.64808 m |E 26.502 m | |
|
||||||
|
For M5|Adr 1030|KD1 10034 16:56:483 2|Lr 1.63175 m |E 27.777 m | |
|
||||||
|
For M5|Adr 1031|KD1 10045 16:56:48 2| | |Z 3.82951 m |
|
||||||
|
For M5|Adr 1032|KD1 10045 16:58:373 2|Lr 1.53441 m |E 19.112 m | |
|
||||||
|
For M5|Adr 1033|KD1 60010 16:59:113 2|Lv 1.51027 m |E 19.388 m | |
|
||||||
|
For M5|Adr 1034|KD1 60010 16:59:273 2|Lv 1.51031 m |E 19.381 m | |
|
||||||
|
For M5|Adr 1035|KD1 10045 16:59:513 2|Lr 1.53444 m |E 19.110 m | |
|
||||||
|
For M5|Adr 1036|KD1 60010 16:59:51 2| | |Z 3.85364 m |
|
||||||
|
For M5|Adr 1037|KD1 60010 17:01:473 2|Lr 1.43941 m |E 4.448 m | |
|
||||||
|
For M5|Adr 1038|KD1 812 17:02:203 2|Lv 1.29479 m |E 4.019 m | |
|
||||||
|
For M5|Adr 1039|KD1 812 17:02:373 2|Lv 1.29478 m |E 4.019 m | |
|
||||||
|
For M5|Adr 1040|KD1 60010 17:03:173 2|Lr 1.43941 m |E 4.450 m | |
|
||||||
|
For M5|Adr 1041|KD1 812 17:03:17 2| | |Z 3.99827 m |
|
||||||
|
For M5|Adr 1042|KD1 812 17:05:363 2|Lr 1.43168 m |E 21.741 m | |
|
||||||
|
For M5|Adr 1043|KD1 816 17:06:183 2|Lv 1.43443 m |E 23.124 m | |
|
||||||
|
For M5|Adr 1044|KD1 816 17:06:343 2|Lv 1.43443 m |E 23.124 m | |
|
||||||
|
For M5|Adr 1045|KD1 812 17:07:043 2|Lr 1.43159 m |E 21.743 m | |
|
||||||
|
For M5|Adr 1046|KD1 816 17:07:04 2| | |Z 3.99547 m |
|
||||||
|
For M5|Adr 1047|KD1 816 2|Sh 0.00048 m |dz -0.00048 m |Z 3.99500 m |
|
||||||
|
For M5|Adr 1048|KD2 816 42 2|Sr 831.40 m |Sv 831.50 m |Z 3.99547 m |
|
||||||
|
For M5|Adr 1049|TO Zugende 2| | | |
|
||||||
|
For M5|Adr 1050|TO Zugbeginn RVVR 6| | | |
|
||||||
|
For M5|Adr 1051|KD1 666 6| | |Z 3.89100 m |
|
||||||
|
For M5|Adr 1052|KD1 666 09:40:063 6|Lr 1.44931 m |E 18.409 m | |
|
||||||
|
For M5|Adr 1053|KD1 10055 09:40:483 6|Lv 1.77704 m |E 18.557 m | |
|
||||||
|
For M5|Adr 1054|KD1 10055 09:41:003 6|Lv 1.77705 m |E 18.556 m | |
|
||||||
|
For M5|Adr 1055|KD1 666 09:41:233 6|Lr 1.44933 m |E 18.404 m | |
|
||||||
|
For M5|Adr 1056|KD1 10055 09:41:23 6| | |Z 3.56327 m |
|
||||||
|
For M5|Adr 1057|KD1 10055 09:44:543 6|Lr 1.78051 m |E 23.397 m | |
|
||||||
|
For M5|Adr 1058|KD1 10057 09:45:323 6|Lv 1.46532 m |E 23.457 m | |
|
||||||
|
For M5|Adr 1059|KD1 10057 09:45:423 6|Lv 1.46531 m |E 23.458 m | |
|
||||||
|
For M5|Adr 1060|KD1 10055 09:46:023 6|Lr 1.78056 m |E 23.394 m | |
|
||||||
|
For M5|Adr 1061|KD1 10057 09:46:02 6| | |Z 3.87849 m |
|
||||||
|
For M5|Adr 1062|KD1 10057 09:49:323 6|Lr 1.99642 m |E 19.914 m | |
|
||||||
|
For M5|Adr 1063|KD1 30001 09:50:063 6|Lv 1.65143 m |E 20.119 m | |
|
||||||
|
For M5|Adr 1064|KD1 30001 09:50:153 6|Lv 1.65136 m |E 20.122 m | |
|
||||||
|
For M5|Adr 1065|KD1 10057 09:50:403 6|Lr 1.99645 m |E 19.913 m | |
|
||||||
|
For M5|Adr 1066|KD1 30001 09:50:40 6| | |Z 4.22353 m |
|
||||||
|
For M5|Adr 1067|KD1 30001 09:54:053 6|Lr 1.63978 m |E 20.030 m | |
|
||||||
|
For M5|Adr 1068|KD1 10059 09:54:343 6|Lv 1.71977 m |E 20.092 m | |
|
||||||
|
For M5|Adr 1069|KD1 10059 09:54:463 6|Lv 1.71974 m |E 20.094 m | |
|
||||||
|
For M5|Adr 1070|KD1 30001 09:55:113 6|Lr 1.63989 m |E 20.026 m | |
|
||||||
|
For M5|Adr 1071|KD1 10059 09:55:11 6| | |Z 4.14361 m |
|
||||||
|
For M5|Adr 1072|KD1 10059 09:58:163 6|Lr 1.78165 m |E 19.164 m | |
|
||||||
|
For M5|Adr 1073|KD1 30002 09:59:533 6|Lv 1.51405 m |E 19.433 m | |
|
||||||
|
For M5|Adr 1074|KD1 30002 10:00:033 6|Lv 1.51404 m |E 19.434 m | |
|
||||||
|
For M5|Adr 1075|KD1 10059 10:00:313 6|Lr 1.78152 m |E 19.171 m | |
|
||||||
|
For M5|Adr 1076|KD1 30002 10:00:31 6| | |Z 4.41115 m |
|
||||||
|
For M5|Adr 1077|KD1 30002 10:03:513 6|Lr 1.60517 m |E 12.252 m | |
|
||||||
|
For M5|Adr 1078|KD1 10053 10:04:223 6|Lv 1.62944 m |E 12.461 m | |
|
||||||
|
For M5|Adr 1079|KD1 10053 10:04:303 6|Lv 1.62944 m |E 12.462 m | |
|
||||||
|
For M5|Adr 1080|KD1 30002 10:04:513 6|Lr 1.60518 m |E 12.253 m | |
|
||||||
|
For M5|Adr 1081|KD1 10053 10:04:51 6| | |Z 4.38689 m |
|
||||||
|
For M5|Adr 1082|KD1 10053 10:07:543 6|Lr 1.76780 m |E 29.779 m | |
|
||||||
|
For M5|Adr 1083|KD1 10044 10:08:393 6|Lv 1.49774 m |E 29.777 m | |
|
||||||
|
For M5|Adr 1084|KD1 10044 10:08:483 6|Lv 1.49776 m |E 29.775 m | |
|
||||||
|
For M5|Adr 1085|KD1 10053 10:09:093 6|Lr 1.76782 m |E 29.783 m | |
|
||||||
|
For M5|Adr 1086|KD1 10044 10:09:09 6| | |Z 4.65695 m |
|
||||||
|
For M5|Adr 1087|KD1 10044 10:13:023 6|Lr 1.42742 m |E 18.722 m | |
|
||||||
|
For M5|Adr 1088|KD1 10040 10:13:303 6|Lv 1.80634 m |E 16.387 m | |
|
||||||
|
For M5|Adr 1089|KD1 10040 10:13:403 6|Lv 1.80635 m |E 16.388 m | |
|
||||||
|
For M5|Adr 1090|KD1 10044 10:14:053 6|Lr 1.42740 m |E 18.714 m | |
|
||||||
|
For M5|Adr 1091|KD1 10040 10:14:05 6| | |Z 4.27801 m |
|
||||||
|
For M5|Adr 1092|KD1 10040 10:17:293 6|Lr 1.64722 m |E 16.416 m | |
|
||||||
|
For M5|Adr 1093|KD1 10041 10:17:513 6|Lv 1.32581 m |E 15.808 m | |
|
||||||
|
For M5|Adr 1094|KD1 10041 10:18:013 6|Lv 1.32585 m |E 15.805 m | |
|
||||||
|
For M5|Adr 1095|KD1 10040 10:18:343 6|Lr 1.64719 m |E 16.417 m | |
|
||||||
|
For M5|Adr 1096|KD1 10041 10:18:34 6| | |Z 4.59939 m |
|
||||||
|
For M5|Adr 1097|KD1 10041 10:22:583 6|Lr 1.62142 m |E 12.038 m | |
|
||||||
|
For M5|Adr 1098|KD1 10042 10:23:333 6|Lv 1.75351 m |E 13.648 m | |
|
||||||
|
For M5|Adr 1099|KD1 10042 10:23:423 6|Lv 1.75354 m |E 13.647 m | |
|
||||||
|
For M5|Adr 1100|KD1 10041 10:24:023 6|Lr 1.62146 m |E 12.031 m | |
|
||||||
|
For M5|Adr 1101|KD1 10042 10:24:02 6| | |Z 4.46730 m |
|
||||||
|
For M5|Adr 1102|KD1 10042 10:27:173 6|Lr 1.80021 m |E 4.666 m | |
|
||||||
|
For M5|Adr 1103|KD1 30003 10:28:483 6|Lv 1.71065 m |E 4.794 m | |
|
||||||
|
For M5|Adr 1104|KD1 30003 10:28:583 6|Lv 1.71065 m |E 4.795 m | |
|
||||||
|
For M5|Adr 1105|KD1 10042 10:29:213 6|Lr 1.80017 m |E 4.673 m | |
|
||||||
|
For M5|Adr 1106|KD1 30003 10:29:21 6| | |Z 4.55685 m |
|
||||||
|
For M5|Adr 1107|KD1 30003 10:34:423 6|Lr 1.38670 m |E 28.622 m | |
|
||||||
|
For M5|Adr 1108|KD1 10027 10:35:173 6|Lv 1.50025 m |E 29.351 m | |
|
||||||
|
For M5|Adr 1109|KD1 10027 10:35:253 6|Lv 1.50030 m |E 29.349 m | |
|
||||||
|
For M5|Adr 1110|KD1 30003 10:35:513 6|Lr 1.38675 m |E 28.618 m | |
|
||||||
|
For M5|Adr 1111|KD1 10027 10:35:51 6| | |Z 4.44329 m |
|
||||||
|
For M5|Adr 1112|KD1 10027 10:39:283 6|Lr 1.69754 m |E 19.008 m | |
|
||||||
|
For M5|Adr 1113|KD1 30004 10:39:523 6|Lv 1.52641 m |E 19.069 m | |
|
||||||
|
For M5|Adr 1114|KD1 30004 10:40:023 6|Lv 1.52641 m |E 19.068 m | |
|
||||||
|
For M5|Adr 1115|KD1 10027 10:40:243 6|Lr 1.69754 m |E 19.005 m | |
|
||||||
|
For M5|Adr 1116|KD1 30004 10:40:24 6| | |Z 4.61442 m |
|
||||||
|
For M5|Adr 1117|KD1 30004 10:43:223 6|Lr 1.53664 m |E 19.451 m | |
|
||||||
|
For M5|Adr 1118|KD1 10018 10:43:473 6|Lv 1.77885 m |E 19.381 m | |
|
||||||
|
For M5|Adr 1119|KD1 10018 10:43:563 6|Lv 1.77887 m |E 19.381 m | |
|
||||||
|
For M5|Adr 1120|KD1 30004 10:44:183 6|Lr 1.53667 m |E 19.455 m | |
|
||||||
|
For M5|Adr 1121|KD1 10018 10:44:18 6| | |Z 4.37222 m |
|
||||||
|
For M5|Adr 1122|KD1 10018 10:48:463 6|Lr 1.51624 m |E 28.858 m | |
|
||||||
|
For M5|Adr 1123|KD1 10009 10:49:213 6|Lv 1.76559 m |E 29.011 m | |
|
||||||
|
For M5|Adr 1124|KD1 10009 10:49:323 6|Lv 1.76568 m |E 29.007 m | |
|
||||||
|
For M5|Adr 1125|KD1 10018 10:50:123 6|Lr 1.51630 m |E 28.874 m | |
|
||||||
|
For M5|Adr 1126|KD1 10009 10:50:12 6| | |Z 4.12286 m |
|
||||||
|
For M5|Adr 1127|KD1 10009 10:53:433 6|Lr 1.50785 m |E 15.483 m | |
|
||||||
|
For M5|Adr 1128|KD1 10006 10:54:163 6|Lv 1.92998 m |E 17.279 m | |
|
||||||
|
For M5|Adr 1129|KD1 10006 10:54:263 6|Lv 1.92997 m |E 17.281 m | |
|
||||||
|
For M5|Adr 1130|KD1 10009 10:54:503 6|Lr 1.50796 m |E 15.468 m | |
|
||||||
|
For M5|Adr 1131|KD1 10006 10:54:50 6| | |Z 3.70079 m |
|
||||||
|
For M5|Adr 1132|KD1 10006 10:55:133 6|Lr 1.92996 m |E 17.279 m | |
|
||||||
|
For M5|Adr 1133|KD1 10009 10:55:423 6|Lv 1.50798 m |E 15.468 m | |
|
||||||
|
For M5|Adr 1134|KD1 10009 10:55:523 6|Lv 1.50806 m |E 15.467 m | |
|
||||||
|
For M5|Adr 1135|KD1 10006 10:56:143 6|Lr 1.92999 m |E 17.275 m | |
|
||||||
|
For M5|Adr 1136|KD1 10009 10:56:14 6| | |Z 4.12274 m |
|
||||||
|
For M5|Adr 1137|KD1 10009 10:58:263 6|Lr 1.73986 m |E 28.805 m | |
|
||||||
|
For M5|Adr 1138|KD1 10018 10:58:543 6|Lv 1.49083 m |E 29.081 m | |
|
||||||
|
For M5|Adr 1139|KD1 10018 10:59:033 6|Lv 1.49078 m |E 29.082 m | |
|
||||||
|
For M5|Adr 1140|KD1 10009 10:59:283 6|Lr 1.73999 m |E 28.805 m | |
|
||||||
|
For M5|Adr 1141|KD1 10018 10:59:28 6| | |Z 4.37186 m |
|
||||||
|
For M5|Adr 1142|KD1 10018 11:01:403 6|Lr 1.79485 m |E 19.369 m | |
|
||||||
|
For M5|Adr 1143|KD1 30005 11:02:203 6|Lv 1.55327 m |E 19.464 m | |
|
||||||
|
For M5|Adr 1144|KD1 30005 11:02:323 6|Lv 1.55329 m |E 19.460 m | |
|
||||||
|
For M5|Adr 1145|KD1 10018 11:02:583 6|Lr 1.79484 m |E 19.365 m | |
|
||||||
|
For M5|Adr 1146|KD1 30005 11:02:58 6| | |Z 4.61343 m |
|
||||||
|
For M5|Adr 1147|KD1 30005 11:05:133 6|Lr 1.51209 m |E 19.018 m | |
|
||||||
|
For M5|Adr 1148|KD1 10027 11:05:443 6|Lv 1.68262 m |E 19.066 m | |
|
||||||
|
For M5|Adr 1149|KD1 10027 11:05:533 6|Lv 1.68267 m |E 19.065 m | |
|
||||||
|
For M5|Adr 1150|KD1 30005 11:06:163 6|Lr 1.51209 m |E 19.019 m | |
|
||||||
|
For M5|Adr 1151|KD1 10027 11:06:16 6| | |Z 4.44287 m |
|
||||||
|
For M5|Adr 1152|KD1 10027 11:08:083 6|Lr 1.48437 m |E 29.450 m | |
|
||||||
|
For M5|Adr 1153|KD1 30006 11:08:453 6|Lv 1.37039 m |E 28.524 m | |
|
||||||
|
For M5|Adr 1154|KD1 30006 11:08:543 6|Lv 1.37040 m |E 28.528 m | |
|
||||||
|
For M5|Adr 1155|KD1 10027 11:09:203 6|Lr 1.48442 m |E 29.415 m | |
|
||||||
|
For M5|Adr 1156|KD1 30006 11:09:20 6| | |Z 4.55687 m |
|
||||||
|
For M5|Adr 1157|KD1 30006 11:11:553 6|Lr 1.73019 m |E 4.625 m | |
|
||||||
|
For M5|Adr 1158|KD1 10042 11:12:293 6|Lv 1.82022 m |E 4.806 m | |
|
||||||
|
For M5|Adr 1159|KD1 10042 11:12:373 6|Lv 1.82019 m |E 4.808 m | |
|
||||||
|
For M5|Adr 1160|KD1 30006 11:13:013 6|Lr 1.73016 m |E 4.626 m | |
|
||||||
|
For M5|Adr 1161|KD1 10042 11:13:01 6| | |Z 4.46684 m |
|
||||||
|
For M5|Adr 1162|KD1 10042 11:15:033 6|Lr 1.79086 m |E 12.963 m | |
|
||||||
|
For M5|Adr 1163|KD1 10041 11:15:473 6|Lv 1.65881 m |E 12.773 m | |
|
||||||
|
For M5|Adr 1164|KD1 10041 11:15:553 6|Lv 1.65884 m |E 12.772 m | |
|
||||||
|
For M5|Adr 1165|KD1 10042 11:16:143 6|Lr 1.79084 m |E 12.961 m | |
|
||||||
|
For M5|Adr 1166|KD1 10041 11:16:14 6| | |Z 4.59887 m |
|
||||||
|
For M5|Adr 1167|KD1 10041 11:18:093 6|Lr 1.34751 m |E 15.795 m | |
|
||||||
|
For M5|Adr 1168|KD1 10040 11:18:353 6|Lv 1.66887 m |E 16.356 m | |
|
||||||
|
For M5|Adr 1169|KD1 10040 11:18:443 6|Lv 1.66885 m |E 16.358 m | |
|
||||||
|
For M5|Adr 1170|KD1 10041 11:19:043 6|Lr 1.34750 m |E 15.798 m | |
|
||||||
|
For M5|Adr 1171|KD1 10040 11:19:04 6| | |Z 4.27751 m |
|
||||||
|
For M5|Adr 1172|KD1 10040 11:20:573 6|Lr 1.86215 m |E 16.369 m | |
|
||||||
|
For M5|Adr 1173|KD1 10044 11:21:303 6|Lv 1.48325 m |E 18.739 m | |
|
||||||
|
For M5|Adr 1174|KD1 10044 11:21:383 6|Lv 1.48328 m |E 18.741 m | |
|
||||||
|
For M5|Adr 1175|KD1 10040 11:22:013 6|Lr 1.86215 m |E 16.367 m | |
|
||||||
|
For M5|Adr 1176|KD1 10044 11:22:01 6| | |Z 4.65640 m |
|
||||||
|
For M5|Adr 1177|KD1 10044 11:23:573 6|Lr 1.54273 m |E 29.939 m | |
|
||||||
|
For M5|Adr 1178|KD1 10053 11:24:253 6|Lv 1.81270 m |E 29.602 m | |
|
||||||
|
For M5|Adr 1179|KD1 10053 11:24:353 6|Lv 1.81271 m |E 29.606 m | |
|
||||||
|
For M5|Adr 1180|KD1 10044 11:24:543 6|Lr 1.54276 m |E 29.936 m | |
|
||||||
|
For M5|Adr 1181|KD1 10053 11:24:54 6| | |Z 4.38644 m |
|
||||||
|
For M5|Adr 1182|KD1 10053 11:27:173 6|Lr 1.65224 m |E 12.259 m | |
|
||||||
|
For M5|Adr 1183|KD1 30007 11:27:423 6|Lv 1.62743 m |E 12.460 m | |
|
||||||
|
For M5|Adr 1184|KD1 30007 11:27:523 6|Lv 1.62744 m |E 12.461 m | |
|
||||||
|
For M5|Adr 1185|KD1 10053 11:28:113 6|Lr 1.65224 m |E 12.257 m | |
|
||||||
|
For M5|Adr 1186|KD1 30007 11:28:11 6| | |Z 4.41124 m |
|
||||||
|
For M5|Adr 1189|KD1 30007 11:31:463 6|Lr 1.49070 m |E 20.101 m | |
|
||||||
|
For M5|Adr 1190|KD1 10059 11:32:133 6|Lv 1.75897 m |E 18.523 m | |
|
||||||
|
For M5|Adr 1191|KD1 10059 11:32:213 6|Lv 1.75892 m |E 18.522 m | |
|
||||||
|
For M5|Adr 1192|KD1 30007 11:32:423 6|Lr 1.49075 m |E 20.097 m | |
|
||||||
|
For M5|Adr 1193|KD1 10059 11:32:42 6| | |Z 4.14302 m |
|
||||||
|
For M5|Adr 1194|KD1 10059 11:34:423 6|Lr 1.66374 m |E 20.145 m | |
|
||||||
|
For M5|Adr 1195|KD1 30008 11:35:113 6|Lv 1.58386 m |E 19.960 m | |
|
||||||
|
For M5|Adr 1196|KD1 30008 11:35:193 6|Lv 1.58389 m |E 19.959 m | |
|
||||||
|
For M5|Adr 1197|KD1 10059 11:35:573 6|Lr 1.66375 m |E 20.143 m | |
|
||||||
|
For M5|Adr 1198|KD1 30008 11:35:57 6| | |Z 4.22289 m |
|
||||||
|
For M5|Adr 1199|KD1 30008 11:37:593 6|Lr 1.58922 m |E 20.268 m | |
|
||||||
|
For M5|Adr 1200|KD1 10057 11:38:363 6|Lv 1.93427 m |E 19.774 m | |
|
||||||
|
For M5|Adr 1201|KD1 10057 11:38:453 6|Lv 1.93425 m |E 19.773 m | |
|
||||||
|
For M5|Adr 1202|KD1 30008 11:39:123 6|Lr 1.58921 m |E 20.268 m | |
|
||||||
|
For M5|Adr 1203|KD1 10057 11:39:12 6| | |Z 3.87785 m |
|
||||||
|
For M5|Adr 1204|KD1 10057 11:41:073 6|Lr 1.46444 m |E 23.474 m | |
|
||||||
|
For M5|Adr 1205|KD1 10055 11:41:323 6|Lv 1.77959 m |E 23.416 m | |
|
||||||
|
For M5|Adr 1206|KD1 10055 11:41:403 6|Lv 1.77961 m |E 23.419 m | |
|
||||||
|
For M5|Adr 1207|KD1 10057 11:42:023 6|Lr 1.46448 m |E 23.481 m | |
|
||||||
|
For M5|Adr 1208|KD1 10055 11:42:02 6| | |Z 3.56271 m |
|
||||||
|
For M5|Adr 1209|KD1 10055 11:44:043 6|Lr 1.71700 m |E 18.545 m | |
|
||||||
|
For M5|Adr 1210|KD1 666 11:44:283 6|Lv 1.38939 m |E 18.452 m | |
|
||||||
|
For M5|Adr 1211|KD1 666 11:44:373 6|Lv 1.38939 m |E 18.451 m | |
|
||||||
|
For M5|Adr 1212|KD1 10055 11:44:583 6|Lr 1.71711 m |E 18.540 m | |
|
||||||
|
For M5|Adr 1213|KD1 666 11:44:58 6| | |Z 3.89037 m |
|
||||||
|
For M5|Adr 1214|KD1 666 6|Sh -0.00063 m |dz 0.00063 m |Z 3.89100 m |
|
||||||
|
For M5|Adr 1215|KD2 666 32 6|Sr 614.58 m |Sv 615.09 m |Z 3.89037 m |
|
||||||
|
For M5|Adr 1216|TO Zugende 6| | | |
|
||||||
|
169
Datenbank.py
169
Datenbank.py
@@ -21,9 +21,17 @@ class Datenbank_anlegen:
|
|||||||
naeherungx_lh NUMERIC(9,3),
|
naeherungx_lh NUMERIC(9,3),
|
||||||
naeherungy_lh NUMERIC(7,3),
|
naeherungy_lh NUMERIC(7,3),
|
||||||
naeherungz_lh NUMERIC(8,3),
|
naeherungz_lh NUMERIC(8,3),
|
||||||
|
naeherungz_lh_niv NUMERIC(8,3),
|
||||||
naeherungx_us NUMERIC(9,3),
|
naeherungx_us NUMERIC(9,3),
|
||||||
naeherungy_us NUMERIC(7,3),
|
naeherungy_us NUMERIC(7,3),
|
||||||
naeherungz_us NUMERIC(8,3),
|
naeherungz_us NUMERIC(8,3),
|
||||||
|
normalhoehe_hfp NUMERIC(5,3),
|
||||||
|
datumskoordinate_x INTEGER DEFAULT 0,
|
||||||
|
datumskoordinate_y INTEGER DEFAULT 0,
|
||||||
|
datumskoordinate_z INTEGER DEFAULT 0,
|
||||||
|
stabw_vorinfo_x NUMERIC(3, 8),
|
||||||
|
stabw_vorinfo_y NUMERIC(3, 8),
|
||||||
|
stabw_vorinfo_z NUMERIC(3, 8),
|
||||||
CONSTRAINT pk_Netzpunkte PRIMARY KEY (punktnummer)
|
CONSTRAINT pk_Netzpunkte PRIMARY KEY (punktnummer)
|
||||||
);
|
);
|
||||||
""");
|
""");
|
||||||
@@ -36,6 +44,22 @@ class Datenbank_anlegen:
|
|||||||
tachymeter_richtung NUMERIC(8, 6),
|
tachymeter_richtung NUMERIC(8, 6),
|
||||||
tachymeter_zenitwinkel NUMERIC(8, 6),
|
tachymeter_zenitwinkel NUMERIC(8, 6),
|
||||||
tachymeter_distanz NUMERIC(8, 4),
|
tachymeter_distanz NUMERIC(8, 4),
|
||||||
|
gnss_bx NUMERIC(7, 4),
|
||||||
|
gnss_by NUMERIC(7, 4),
|
||||||
|
gnss_bz NUMERIC(7, 4),
|
||||||
|
gnss_m0 NUMERIC(1, 8),
|
||||||
|
gnss_q11 NUMERIC(1, 8),
|
||||||
|
gnss_q12 NUMERIC(1, 8),
|
||||||
|
gnss_q13 NUMERIC(1, 8),
|
||||||
|
gnss_q21 NUMERIC(1, 8),
|
||||||
|
gnss_q22 NUMERIC(1, 8),
|
||||||
|
gnss_q23 NUMERIC(1, 8),
|
||||||
|
gnss_q31 NUMERIC(1, 8),
|
||||||
|
gnss_q32 NUMERIC(1, 8),
|
||||||
|
gnss_q33 NUMERIC(1, 8),
|
||||||
|
niv_dh NUMERIC(8, 6),
|
||||||
|
niv_strecke NUMERIC(8, 6),
|
||||||
|
niv_anz_standpkte INTEGER,
|
||||||
dateiname TEXT(200),
|
dateiname TEXT(200),
|
||||||
CONSTRAINT pk_Beobachtungen PRIMARY KEY (beobachtungenID),
|
CONSTRAINT pk_Beobachtungen PRIMARY KEY (beobachtungenID),
|
||||||
CONSTRAINT fk_Beobachtungen_Netzpunktesp FOREIGN KEY (punktnummer_sp) REFERENCES Netzpunkte(punktnummer),
|
CONSTRAINT fk_Beobachtungen_Netzpunktesp FOREIGN KEY (punktnummer_sp) REFERENCES Netzpunkte(punktnummer),
|
||||||
@@ -158,7 +182,7 @@ class Datenbankzugriff:
|
|||||||
con.close()
|
con.close()
|
||||||
return
|
return
|
||||||
|
|
||||||
if beobachtungsart == "Tachymeter_Richtung":
|
if beobachtungsart == "Tachymeter_Richtung" or beobachtungsart == "Tachymeter_Zenitwinkel" :
|
||||||
stabw_apriori_konstant = Einheitenumrechnung.mgon_to_rad_Decimal(stabw_apriori_konstant)
|
stabw_apriori_konstant = Einheitenumrechnung.mgon_to_rad_Decimal(stabw_apriori_konstant)
|
||||||
|
|
||||||
if beobachtungsart == "Tachymeter_Strecke":
|
if beobachtungsart == "Tachymeter_Strecke":
|
||||||
@@ -218,7 +242,125 @@ class Datenbankzugriff:
|
|||||||
cursor.close()
|
cursor.close()
|
||||||
con.close()
|
con.close()
|
||||||
|
|
||||||
def get_instrument(self, typ):
|
def set_datumskoordinaten(self, liste_datumskoordinaten_x, liste_datumskoordinaten_y, liste_datumskoordinaten_z, liste_datumskoordinaten_x_y_z):
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
|
||||||
|
liste_stabw_vorinfo_x = [str(row[0]).strip() for row in cursor.execute(
|
||||||
|
"SELECT punktnummer FROM Netzpunkte WHERE stabw_vorinfo_x IS NOT NULL").fetchall()]
|
||||||
|
liste_stabw_vorinfo_y = [str(row[0]).strip() for row in cursor.execute(
|
||||||
|
"SELECT punktnummer FROM Netzpunkte WHERE stabw_vorinfo_y IS NOT NULL").fetchall()]
|
||||||
|
liste_stabw_vorinfo_z = [str(row[0]).strip() for row in cursor.execute(
|
||||||
|
"SELECT punktnummer FROM Netzpunkte WHERE stabw_vorinfo_z IS NOT NULL").fetchall()]
|
||||||
|
liste_stabw_vorinfo_x_y_z = [str(row[0]).strip() for row in cursor.execute(
|
||||||
|
"SELECT punktnummer FROM Netzpunkte WHERE stabw_vorinfo_x IS NOT NULL AND stabw_vorinfo_y IS NOT NULL AND stabw_vorinfo_z IS NOT NULL").fetchall()]
|
||||||
|
|
||||||
|
if liste_datumskoordinaten_x != []:
|
||||||
|
for punktnummer in liste_datumskoordinaten_x:
|
||||||
|
punktnummer = str(punktnummer).strip()
|
||||||
|
if punktnummer in liste_stabw_vorinfo_x:
|
||||||
|
cursor.execute(f"UPDATE Netzpunkte SET datumskoordinate_x = 1 WHERE punktnummer = ? AND stabw_vorinfo_x IS NOT NULL", (str(punktnummer),))
|
||||||
|
else:
|
||||||
|
print(f"Die X-Koordinate des Punktes {punktnummer} wurde nicht in eine Datumskoordinate geändert, weil keine Vorinformationen zur Standardabweichung der X-Koordinate des Punktes vorliegen. Diese bitte zuerst erfassen und Datumsdefinition wiederholen.")
|
||||||
|
if liste_datumskoordinaten_y != []:
|
||||||
|
for punktnummer in liste_datumskoordinaten_y:
|
||||||
|
punktnummer = str(punktnummer).strip()
|
||||||
|
if punktnummer in liste_stabw_vorinfo_y:
|
||||||
|
cursor.execute(f"UPDATE Netzpunkte SET datumskoordinate_y = 1 WHERE punktnummer = ? AND stabw_vorinfo_y IS NOT NULL", (str(punktnummer),))
|
||||||
|
else:
|
||||||
|
print(f"Die Y-Koordinate des Punktes {punktnummer} wurde nicht in eine Datumskoordinate geändert, weil keine Vorinformationen zur Standardabweichung der Y-Koordinate des Punktes vorliegen. Diese bitte zuerst erfassen und Datumsdefinition wiederholen.")
|
||||||
|
|
||||||
|
if liste_datumskoordinaten_z != []:
|
||||||
|
for punktnummer in liste_datumskoordinaten_z:
|
||||||
|
punktnummer = str(punktnummer).strip()
|
||||||
|
if punktnummer in liste_stabw_vorinfo_z:
|
||||||
|
cursor.execute(f"UPDATE Netzpunkte SET datumskoordinate_z = 1 WHERE punktnummer = ? AND stabw_vorinfo_z IS NOT NULL", (str(punktnummer),))
|
||||||
|
else:
|
||||||
|
print(f"Die Z-Koordinate des Punktes {punktnummer} wurde nicht in eine Datumskoordinate geändert, weil keine Vorinformationen zur Standardabweichung der Z-Koordinate des Punktes vorliegen. Diese bitte zuerst erfassen und Datumsdefinition wiederholen.")
|
||||||
|
|
||||||
|
if liste_datumskoordinaten_x_y_z != []:
|
||||||
|
for punktnummer in liste_datumskoordinaten_x_y_z:
|
||||||
|
punktnummer = str(punktnummer).strip()
|
||||||
|
if punktnummer in liste_stabw_vorinfo_x_y_z:
|
||||||
|
cursor.execute(f"UPDATE Netzpunkte SET datumskoordinate_x = 1, datumskoordinate_y = 1, datumskoordinate_z = 1 WHERE punktnummer = ? AND stabw_vorinfo_x IS NOT NULL AND stabw_vorinfo_y IS NOT NULL AND stabw_vorinfo_z IS NOT NULL", (str(punktnummer),))
|
||||||
|
else:
|
||||||
|
print(f"Der Punkt {punktnummer} wurde nicht in einen Datumspunkt geändert, weil nicht alle Vorinformationen zur Standardabweichung der Koordinaten des Punktes vorliegen. Diese bitte zuerst erfassen und Datumsdefinition wiederholen.")
|
||||||
|
|
||||||
|
con.commit()
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
|
||||||
|
def set_datumskoordinaten_to_neupunkte(self, liste_datumskoordinaten_x, liste_datumskoordinaten_y, liste_datumskoordinaten_z, liste_datumskoordinaten_x_y_z):
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
if liste_datumskoordinaten_x != []:
|
||||||
|
for punktnummer in liste_datumskoordinaten_x:
|
||||||
|
punktnummer = str(punktnummer).strip()
|
||||||
|
cursor.execute(
|
||||||
|
f"UPDATE Netzpunkte SET datumskoordinate_x = 0 WHERE punktnummer = ?",
|
||||||
|
(str(punktnummer),))
|
||||||
|
if liste_datumskoordinaten_y != []:
|
||||||
|
for punktnummer in liste_datumskoordinaten_y:
|
||||||
|
punktnummer = str(punktnummer).strip()
|
||||||
|
cursor.execute(
|
||||||
|
f"UPDATE Netzpunkte SET datumskoordinate_y = 0 WHERE punktnummer = ?",
|
||||||
|
(str(punktnummer),))
|
||||||
|
if liste_datumskoordinaten_z != []:
|
||||||
|
for punktnummer in liste_datumskoordinaten_z:
|
||||||
|
punktnummer = str(punktnummer).strip()
|
||||||
|
cursor.execute(
|
||||||
|
f"UPDATE Netzpunkte SET datumskoordinate_z = 0 WHERE punktnummer = ?",
|
||||||
|
(str(punktnummer),))
|
||||||
|
if liste_datumskoordinaten_x_y_z != []:
|
||||||
|
for punktnummer in liste_datumskoordinaten_x_y_z:
|
||||||
|
punktnummer = str(punktnummer).strip()
|
||||||
|
cursor.execute(
|
||||||
|
f"UPDATE Netzpunkte SET datumskoordinate_x = 0, datumskoordinate_y = 0, datumskoordinate_z = 0 WHERE punktnummer = ?",
|
||||||
|
(str(punktnummer),))
|
||||||
|
|
||||||
|
con.commit()
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
|
||||||
|
def set_normalhoehe_hfp(self, liste_normalhoehe_hfp):
|
||||||
|
liste_hfp_in_db = self.get_normalhoehe_hfp()
|
||||||
|
if liste_normalhoehe_hfp != []:
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
liste_punktnummern_in_db = [str(r[0]) for r in cursor.execute(
|
||||||
|
"SELECT punktnummer FROM Netzpunkte"
|
||||||
|
).fetchall()]
|
||||||
|
ausgaben = []
|
||||||
|
for hfp in liste_normalhoehe_hfp:
|
||||||
|
if str(hfp[0]) in liste_punktnummern_in_db:
|
||||||
|
cursor.execute("UPDATE Netzpunkte SET normalhoehe_hfp = ? WHERE punktnummer = ?",
|
||||||
|
(hfp[1], hfp[0])
|
||||||
|
)
|
||||||
|
ausgaben.append(f"Der HFP {hfp[0]} wurde aktualisiert.")
|
||||||
|
else:
|
||||||
|
cursor.execute(
|
||||||
|
"INSERT INTO Netzpunkte (punktnummer, normalhoehe_hfp) VALUES (?, ?)",
|
||||||
|
(hfp[0], hfp[1])
|
||||||
|
)
|
||||||
|
ausgaben.append(f"Der HFP {hfp[0]} wurde neu hinzugefügt.")
|
||||||
|
|
||||||
|
con.commit()
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
return "\n".join(ausgaben)
|
||||||
|
else:
|
||||||
|
return f"Es wurden keine neuen Normalhöhen übergeben. Folgende Normalhöhen sind in der Datenbank enthalten: {liste_hfp_in_db}"
|
||||||
|
|
||||||
|
def get_normalhoehe_hfp(self):
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
liste_hfp = cursor.execute("SELECT punktnummer, normalhoehe_hfp FROM Netzpunkte WHERE normalhoehe_hfp IS NOT NULL").fetchall()
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
return liste_hfp
|
||||||
|
|
||||||
|
|
||||||
|
def get_instrument_liste(self, typ):
|
||||||
con = sqlite3.connect(self.pfad_datenbank)
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
cursor = con.cursor()
|
cursor = con.cursor()
|
||||||
liste_instrumente = cursor.execute("SELECT * FROM Instrumente WHERE typ = ?", (typ,)).fetchall()
|
liste_instrumente = cursor.execute("SELECT * FROM Instrumente WHERE typ = ?", (typ,)).fetchall()
|
||||||
@@ -229,6 +371,28 @@ class Datenbankzugriff:
|
|||||||
liste_instrumente = f"Kein Instrument vom Typ {typ} gefunden. Folgende Typen stehen aktuell zur Auswahl: {liste_typen}"
|
liste_instrumente = f"Kein Instrument vom Typ {typ} gefunden. Folgende Typen stehen aktuell zur Auswahl: {liste_typen}"
|
||||||
return liste_instrumente
|
return liste_instrumente
|
||||||
|
|
||||||
|
def get_genauigkeiten_dict(self):
|
||||||
|
dict = {}
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
liste_genauigkeiten = cursor.execute("SELECT * FROM Genauigkeiten").fetchall()
|
||||||
|
for genauigkeit in liste_genauigkeiten:
|
||||||
|
dict[genauigkeit[0]] = genauigkeit[1:]
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
return dict
|
||||||
|
|
||||||
|
def get_instrumenteID_beobachtungenID_dict(self):
|
||||||
|
dict = {}
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
liste_beobachtungen_instrumente = cursor.execute("SELECT beobachtungenID, instrumenteID FROM Beobachtungen").fetchall()
|
||||||
|
for i in liste_beobachtungen_instrumente:
|
||||||
|
dict[i[0]] = i[1]
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
return dict
|
||||||
|
|
||||||
def get_beobachtungen_id_beobachtungsgruppe_standpunkt_zielpunkt(self, beobachtungsart):
|
def get_beobachtungen_id_beobachtungsgruppe_standpunkt_zielpunkt(self, beobachtungsart):
|
||||||
con = sqlite3.connect(self.pfad_datenbank)
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
cursor = con.cursor()
|
cursor = con.cursor()
|
||||||
@@ -244,3 +408,4 @@ class Datenbankzugriff:
|
|||||||
cursor.close()
|
cursor.close()
|
||||||
con.close()
|
con.close()
|
||||||
return liste_beobachtungen
|
return liste_beobachtungen
|
||||||
|
|
||||||
|
|||||||
@@ -1,81 +1,154 @@
|
|||||||
import sympy as sp
|
import sympy as sp
|
||||||
from typing import List, Iterable, Tuple
|
from typing import Iterable, List, Sequence, Tuple, Optional
|
||||||
|
|
||||||
|
|
||||||
|
class Datumsfestlegung:
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def datumskomponenten(
|
||||||
|
auswahl: Iterable[Tuple[str, str]],
|
||||||
|
liste_punktnummern: Sequence[str],
|
||||||
|
*,
|
||||||
|
layout: str = "XYZ"
|
||||||
|
) -> List[int]:
|
||||||
|
punkt2pos = {str(p): i for i, p in enumerate(liste_punktnummern)}
|
||||||
|
|
||||||
|
layout = layout.upper()
|
||||||
|
if layout != "XYZ":
|
||||||
|
raise ValueError("Nur layout='XYZ' unterstützt (wie bei euch).")
|
||||||
|
comp2off = {"X": 0, "Y": 1, "Z": 2}
|
||||||
|
|
||||||
|
aktive: List[int] = []
|
||||||
|
for pt, comp in auswahl:
|
||||||
|
spt = str(pt)
|
||||||
|
c = comp.upper()
|
||||||
|
if spt not in punkt2pos:
|
||||||
|
raise KeyError(f"Punkt '{pt}' nicht in liste_punktnummern.")
|
||||||
|
if c not in comp2off:
|
||||||
|
raise ValueError(f"Komponente '{comp}' ungültig. Nur X,Y,Z.")
|
||||||
|
p = punkt2pos[spt]
|
||||||
|
aktive.append(3 * p + comp2off[c])
|
||||||
|
|
||||||
|
# Duplikate entfernen
|
||||||
|
out, seen = [], set()
|
||||||
|
for i in aktive:
|
||||||
|
if i not in seen:
|
||||||
|
seen.add(i)
|
||||||
|
out.append(i)
|
||||||
|
return out
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def auswahlmatrix_E(u: int, aktive_unbekannte_indices: Iterable[int]) -> sp.Matrix:
|
||||||
|
E = sp.zeros(u, u)
|
||||||
|
for idx in aktive_unbekannte_indices:
|
||||||
|
i = int(idx)
|
||||||
|
if not (0 <= i < u):
|
||||||
|
raise IndexError(f"Aktiver Index {i} außerhalb [0,{u-1}]")
|
||||||
|
E[i, i] = 1
|
||||||
|
return E
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def raenderungsmatrix_G(
|
def raenderungsmatrix_G(
|
||||||
x0: sp.Matrix,
|
x0: sp.Matrix,
|
||||||
idx_X: List[int],
|
liste_punktnummern: Sequence[str],
|
||||||
idx_Y: List[int],
|
*,
|
||||||
idx_Z: List[int],
|
|
||||||
mit_massstab: bool = True,
|
mit_massstab: bool = True,
|
||||||
|
layout: str = "XYZ",
|
||||||
) -> sp.Matrix:
|
) -> sp.Matrix:
|
||||||
|
if x0.cols != 1:
|
||||||
|
raise ValueError("x0 muss Spaltenvektor sein.")
|
||||||
|
layout = layout.upper()
|
||||||
|
if layout != "XYZ":
|
||||||
|
raise ValueError("Nur layout='XYZ' unterstützt (wie bei euch).")
|
||||||
|
|
||||||
|
nP = len(liste_punktnummern)
|
||||||
u = x0.rows
|
u = x0.rows
|
||||||
d = 7 if mit_massstab else 6
|
d = 7 if mit_massstab else 6
|
||||||
G = sp.zeros(u, d)
|
G = sp.zeros(u, d)
|
||||||
|
|
||||||
# --- Translationen ---
|
for p in range(nP):
|
||||||
for i in idx_X:
|
ix, iy, iz = 3*p, 3*p+1, 3*p+2
|
||||||
G[i, 0] = 1
|
xi, yi, zi = x0[ix, 0], x0[iy, 0], x0[iz, 0]
|
||||||
for i in idx_Y:
|
|
||||||
G[i, 1] = 1
|
|
||||||
for i in idx_Z:
|
|
||||||
G[i, 2] = 1
|
|
||||||
|
|
||||||
# --- Rotationen ---
|
# Translationen
|
||||||
# Rotation um X-Achse
|
G[ix, 0] = 1
|
||||||
for iy, iz in zip(idx_Y, idx_Z):
|
G[iy, 1] = 1
|
||||||
zi = x0[iz, 0]
|
G[iz, 2] = 1
|
||||||
yi = x0[iy, 0]
|
|
||||||
G[iy, 3] = -zi
|
|
||||||
G[iz, 3] = yi
|
|
||||||
|
|
||||||
# Rotation um Y-Achse
|
# Rotationen
|
||||||
for ix, iz in zip(idx_X, idx_Z):
|
G[iy, 3] = -zi; G[iz, 3] = yi # Rx
|
||||||
zi = x0[iz, 0]
|
G[ix, 4] = zi; G[iz, 4] = -xi # Ry
|
||||||
xi = x0[ix, 0]
|
G[ix, 5] = -yi; G[iy, 5] = xi # Rz
|
||||||
G[ix, 4] = zi
|
|
||||||
G[iz, 4] = -xi
|
|
||||||
|
|
||||||
# Rotation um Z-Achse
|
# Maßstab
|
||||||
for ix, iy in zip(idx_X, idx_Y):
|
|
||||||
yi = x0[iy, 0]
|
|
||||||
xi = x0[ix, 0]
|
|
||||||
G[ix, 5] = -yi
|
|
||||||
G[iy, 5] = xi
|
|
||||||
|
|
||||||
# --- Maßstab ---
|
|
||||||
if mit_massstab:
|
if mit_massstab:
|
||||||
for ix, iy, iz in zip(idx_X, idx_Y, idx_Z):
|
|
||||||
xi = x0[ix, 0]
|
|
||||||
yi = x0[iy, 0]
|
|
||||||
zi = x0[iz, 0]
|
|
||||||
G[ix, 6] = xi
|
G[ix, 6] = xi
|
||||||
G[iy, 6] = yi
|
G[iy, 6] = yi
|
||||||
G[iz, 6] = zi
|
G[iz, 6] = zi
|
||||||
|
|
||||||
return G
|
return G
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def auswahlmatrix_E(u: int, aktive_unbekannte_indices: Iterable[int]) -> sp.Matrix:
|
|
||||||
E = sp.zeros(u, u)
|
|
||||||
for idx in aktive_unbekannte_indices:
|
|
||||||
E[int(idx), int(idx)] = 1
|
|
||||||
return E
|
|
||||||
|
|
||||||
|
|
||||||
def teilspurminimierung_Gi(G: sp.Matrix, E: sp.Matrix) -> sp.Matrix:
|
|
||||||
Gi = E * G
|
|
||||||
return Gi
|
|
||||||
|
|
||||||
|
|
||||||
def berechne_dx_geraendert(N: sp.Matrix, n: sp.Matrix, Gi: sp.Matrix) -> sp.Matrix:
|
def berechne_dx_geraendert(N: sp.Matrix, n: sp.Matrix, Gi: sp.Matrix) -> sp.Matrix:
|
||||||
u = N.rows
|
if N.rows != N.cols:
|
||||||
d = Gi.shape[1]
|
raise ValueError("N muss quadratisch sein.")
|
||||||
|
if n.cols != 1:
|
||||||
|
raise ValueError("n muss Spaltenvektor sein.")
|
||||||
|
if Gi.rows != N.rows:
|
||||||
|
raise ValueError("Gi hat falsche Zeilenzahl.")
|
||||||
|
|
||||||
|
u = N.rows
|
||||||
|
d = Gi.cols
|
||||||
K = N.row_join(Gi)
|
K = N.row_join(Gi)
|
||||||
K = K.col_join(Gi.T.row_join(sp.zeros(d, d)))
|
K = K.col_join(Gi.T.row_join(sp.zeros(d, d)))
|
||||||
|
|
||||||
rhs = n.col_join(sp.zeros(d, 1))
|
rhs = n.col_join(sp.zeros(d, 1))
|
||||||
|
|
||||||
sol = K.LUsolve(rhs)
|
sol = K.LUsolve(rhs)
|
||||||
dx = sol[:u, :]
|
return sol[:u, :]
|
||||||
return dx
|
|
||||||
|
@staticmethod
|
||||||
|
def weiches_datum(
|
||||||
|
A: sp.Matrix,
|
||||||
|
dl: sp.Matrix,
|
||||||
|
Q_ll: sp.Matrix,
|
||||||
|
x0: sp.Matrix,
|
||||||
|
anschluss_indices: Sequence[int],
|
||||||
|
anschluss_werte: sp.Matrix,
|
||||||
|
Sigma_AA: Optional[sp.Matrix] = None,
|
||||||
|
) -> Tuple[sp.Matrix, sp.Matrix, sp.Matrix]:
|
||||||
|
if dl.cols != 1 or x0.cols != 1:
|
||||||
|
raise ValueError("dl und x0 müssen Spaltenvektoren sein.")
|
||||||
|
if A.rows != dl.rows:
|
||||||
|
raise ValueError("A.rows muss dl.rows entsprechen.")
|
||||||
|
if A.cols != x0.rows:
|
||||||
|
raise ValueError("A.cols muss x0.rows entsprechen.")
|
||||||
|
if Q_ll.rows != Q_ll.cols or Q_ll.rows != A.rows:
|
||||||
|
raise ValueError("Q_ll muss (n×n) sein und zu A.rows passen.")
|
||||||
|
|
||||||
|
u = A.cols
|
||||||
|
idx = [int(i) for i in anschluss_indices]
|
||||||
|
m = len(idx)
|
||||||
|
|
||||||
|
if anschluss_werte.cols != 1 or anschluss_werte.rows != m:
|
||||||
|
raise ValueError("anschluss_werte muss (m×1) sein.")
|
||||||
|
if Sigma_AA is None:
|
||||||
|
Sigma_AA = sp.eye(m)
|
||||||
|
if Sigma_AA.rows != m or Sigma_AA.cols != m:
|
||||||
|
raise ValueError("Sigma_AA muss (m×m) sein.")
|
||||||
|
|
||||||
|
A_A = sp.zeros(m, u)
|
||||||
|
for r, j in enumerate(idx):
|
||||||
|
if not (0 <= j < u):
|
||||||
|
raise IndexError(f"Anschluss-Index {j} außerhalb [0,{u-1}]")
|
||||||
|
A_A[r, j] = 1
|
||||||
|
|
||||||
|
x0_A = sp.Matrix([[x0[j, 0]] for j in idx])
|
||||||
|
dl_A = anschluss_werte - x0_A
|
||||||
|
|
||||||
|
A_ext = A.col_join(A_A)
|
||||||
|
dl_ext = dl.col_join(dl_A)
|
||||||
|
|
||||||
|
Q_ext = sp.zeros(Q_ll.rows + m, Q_ll.cols + m)
|
||||||
|
Q_ext[:Q_ll.rows, :Q_ll.cols] = Q_ll
|
||||||
|
Q_ext[Q_ll.rows:, Q_ll.cols:] = Sigma_AA
|
||||||
|
|
||||||
|
return A_ext, dl_ext, Q_ext
|
||||||
|
|||||||
@@ -8,12 +8,262 @@ class FunktionalesModell:
|
|||||||
def __init__(self, pfad_datenbank, a, b):
|
def __init__(self, pfad_datenbank, a, b):
|
||||||
self.pfad_datenbank = pfad_datenbank
|
self.pfad_datenbank = pfad_datenbank
|
||||||
self.berechnungen = Berechnungen(a, b)
|
self.berechnungen = Berechnungen(a, b)
|
||||||
self.substitutionen_dict = self.dict_substitutionen_naeherungen_us()
|
self.substitutionen_dict = self.dict_substitutionen_uebergeordnetes_system()
|
||||||
self.dict_punkt_symbole = {}
|
self.dict_punkt_symbole = {}
|
||||||
|
|
||||||
def jacobi_matrix_symbolisch(self):
|
def jacobi_matrix_symbolisch(self):
|
||||||
|
liste_beobachtungsarten = ["tachymeter_distanz", "tachymeter_richtung", "tachymeter_zenitwinkel"]
|
||||||
|
#liste_beobachtungsarten = ["tachymeter_distanz", "tachymeter_richtung"]
|
||||||
|
db_zugriff = Datenbankzugriff(self.pfad_datenbank)
|
||||||
|
|
||||||
|
liste_beobachtungen_rohdaten = []
|
||||||
|
liste_punktnummern =[]
|
||||||
|
|
||||||
|
liste_orientierungsunbekannte = []
|
||||||
|
|
||||||
|
for beobachtungsart in liste_beobachtungsarten:
|
||||||
|
liste_id_standpunkt_zielpunkt = db_zugriff.get_beobachtungen_id_beobachtungsgruppe_standpunkt_zielpunkt(beobachtungsart)
|
||||||
|
|
||||||
|
for beobachtungenID, beobachtungsgruppeID, standpunkt, zielpunkt in liste_id_standpunkt_zielpunkt:
|
||||||
|
liste_beobachtungen_rohdaten.append(
|
||||||
|
(beobachtungsart, beobachtungenID, beobachtungsgruppeID, standpunkt, zielpunkt)
|
||||||
|
)
|
||||||
|
|
||||||
|
if standpunkt not in liste_punktnummern:
|
||||||
|
liste_punktnummern.append(standpunkt)
|
||||||
|
if zielpunkt not in liste_punktnummern:
|
||||||
|
liste_punktnummern.append(zielpunkt)
|
||||||
|
|
||||||
|
if beobachtungsart == "tachymeter_richtung":
|
||||||
|
if beobachtungsgruppeID not in liste_orientierungsunbekannte:
|
||||||
|
liste_orientierungsunbekannte.append(beobachtungsgruppeID)
|
||||||
|
if liste_beobachtungen_rohdaten == []:
|
||||||
|
return None
|
||||||
|
|
||||||
|
#dict_punkt_symbole = {}
|
||||||
|
liste_unbekannte = []
|
||||||
|
|
||||||
|
for punkt in liste_punktnummern:
|
||||||
|
X, Y, Z = sp.symbols(f"X{punkt} Y{punkt} Z{punkt}")
|
||||||
|
self.dict_punkt_symbole[punkt] = (X, Y, Z)
|
||||||
|
liste_unbekannte.append(X)
|
||||||
|
liste_unbekannte.append(Y)
|
||||||
|
liste_unbekannte.append(Z)
|
||||||
|
|
||||||
|
dict_orientierung_symbole = {}
|
||||||
|
for orientierungsunbekannte in liste_orientierungsunbekannte:
|
||||||
|
O = sp.symbols(f"O{orientierungsunbekannte}")
|
||||||
|
dict_orientierung_symbole[orientierungsunbekannte] = O
|
||||||
|
liste_unbekannte.append(O)
|
||||||
|
|
||||||
|
liste_beobachtungsgleichungen_distanz =[]
|
||||||
|
liste_zeilenbeschriftungen_distanz = []
|
||||||
|
|
||||||
|
liste_A_richtung_zeilen = []
|
||||||
|
liste_zeilenbeschriftungen_richtung = []
|
||||||
|
liste_A_zenitwinkel_zeilen = []
|
||||||
|
liste_zeilenbeschriftungen_zenitwinkel = []
|
||||||
|
|
||||||
|
|
||||||
|
for beobachtungsart, beobachtungenID, beobachtungsgruppeID, standpunkt, zielpunkt in liste_beobachtungen_rohdaten:
|
||||||
|
X_sp, Y_sp, Z_sp = self.dict_punkt_symbole[standpunkt]
|
||||||
|
X_zp, Y_zp, Z_zp = self.dict_punkt_symbole[zielpunkt]
|
||||||
|
B_sp, L_sp = sp.symbols(f"B{standpunkt} L{standpunkt}")
|
||||||
|
|
||||||
|
# Symbole für die Beobachtungswerte (werden später numerisch substituiert)
|
||||||
|
alpha = sp.symbols(f"{beobachtungenID}_R_{beobachtungsgruppeID}_{standpunkt}_{zielpunkt}")
|
||||||
|
zw = sp.symbols(f"{beobachtungenID}_ZW_{beobachtungsgruppeID}_{standpunkt}_{zielpunkt}")
|
||||||
|
s = sp.symbols(f"{beobachtungenID}_SD_{beobachtungsgruppeID}_{standpunkt}_{zielpunkt}")
|
||||||
|
|
||||||
|
if beobachtungsart == "tachymeter_distanz":
|
||||||
|
beobachtungsgleichung = sp.sqrt((X_zp - X_sp) ** 2 + (Y_zp - Y_sp) ** 2 + (Z_zp - Z_sp) ** 2)
|
||||||
|
liste_beobachtungsgleichungen_distanz.append(beobachtungsgleichung)
|
||||||
|
liste_zeilenbeschriftungen_distanz.append(
|
||||||
|
f"{beobachtungenID}_SD_{beobachtungsgruppeID}_{standpunkt}_{zielpunkt}")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
elif beobachtungsart == "tachymeter_richtung":
|
||||||
|
|
||||||
|
# Richtung nach Otepka: r = a12 + O
|
||||||
|
|
||||||
|
# dB und dL werden bewusst weggelassen
|
||||||
|
|
||||||
|
dX = X_zp - X_sp
|
||||||
|
|
||||||
|
dY = Y_zp - Y_sp
|
||||||
|
|
||||||
|
dZ = Z_zp - Z_sp
|
||||||
|
|
||||||
|
# Lokales System: x_loc = Nord, y_loc = Ost
|
||||||
|
|
||||||
|
x_loc = (-sp.sin(B_sp) * sp.cos(L_sp)) * dX + (-sp.sin(B_sp) * sp.sin(L_sp)) * dY + (sp.cos(B_sp)) * dZ
|
||||||
|
|
||||||
|
y_loc = (-sp.sin(L_sp)) * dX + (sp.cos(L_sp)) * dY
|
||||||
|
|
||||||
|
# Otepka-Nenner: s12 * sin(zw12) = sqrt(x_loc^2 + y_loc^2)
|
||||||
|
|
||||||
|
s_horiz = sp.sqrt(x_loc ** 2 + y_loc ** 2)
|
||||||
|
|
||||||
|
# sin(t12), cos(t12) im Horizontsystem (t12 = Azimut, rechtsdrehend, Bezug Nord)
|
||||||
|
|
||||||
|
sin_t = y_loc / s_horiz
|
||||||
|
|
||||||
|
cos_t = x_loc / s_horiz
|
||||||
|
|
||||||
|
# Partielle Ableitungen nach Otepka (15) ohne dB und dL
|
||||||
|
|
||||||
|
d_r_dX_zp = (sp.sin(B_sp) * sp.cos(L_sp) * sin_t - sp.sin(L_sp) * cos_t) / s_horiz
|
||||||
|
|
||||||
|
d_r_dY_zp = (sp.sin(B_sp) * sp.sin(L_sp) * sin_t + sp.cos(L_sp) * cos_t) / s_horiz
|
||||||
|
|
||||||
|
d_r_dZ_zp = (-sp.cos(B_sp) * sin_t) / s_horiz
|
||||||
|
|
||||||
|
# Standpunkt-Ableitungen (SP) = negatives Vorzeichen
|
||||||
|
|
||||||
|
d_r_dX_sp, d_r_dY_sp, d_r_dZ_sp = -d_r_dX_zp, -d_r_dY_zp, -d_r_dZ_zp
|
||||||
|
|
||||||
|
# Orientierung: r = a + O => ∂r/∂O = -1
|
||||||
|
|
||||||
|
d_r_dO_sp = -1
|
||||||
|
|
||||||
|
zeile_A_Matrix = []
|
||||||
|
|
||||||
|
for punkt in liste_punktnummern:
|
||||||
|
|
||||||
|
if punkt == standpunkt:
|
||||||
|
|
||||||
|
zeile_A_Matrix.extend([d_r_dX_sp, d_r_dY_sp, d_r_dZ_sp])
|
||||||
|
|
||||||
|
elif punkt == zielpunkt:
|
||||||
|
|
||||||
|
zeile_A_Matrix.extend([d_r_dX_zp, d_r_dY_zp, d_r_dZ_zp])
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
zeile_A_Matrix.extend([0, 0, 0])
|
||||||
|
|
||||||
|
for orientierung in liste_orientierungsunbekannte:
|
||||||
|
zeile_A_Matrix.append(d_r_dO_sp if orientierung == beobachtungsgruppeID else 0)
|
||||||
|
|
||||||
|
liste_A_richtung_zeilen.append(zeile_A_Matrix)
|
||||||
|
|
||||||
|
liste_zeilenbeschriftungen_richtung.append(
|
||||||
|
|
||||||
|
f"{beobachtungenID}_R_{beobachtungsgruppeID}_{standpunkt}_{zielpunkt}"
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
elif beobachtungsart == "tachymeter_zenitwinkel":
|
||||||
|
|
||||||
|
# Zenitwinkel nach Otepka (16), dB und dL bewusst weggelassen
|
||||||
|
|
||||||
|
dX = X_zp - X_sp
|
||||||
|
|
||||||
|
dY = Y_zp - Y_sp
|
||||||
|
|
||||||
|
dZ = Z_zp - Z_sp
|
||||||
|
|
||||||
|
s_geom = sp.sqrt(dX ** 2 + dY ** 2 + dZ ** 2)
|
||||||
|
|
||||||
|
z_loc = (sp.cos(B_sp) * sp.cos(L_sp)) * dX + (sp.cos(B_sp) * sp.sin(L_sp)) * dY + (sp.sin(B_sp)) * dZ
|
||||||
|
|
||||||
|
cos_zw = z_loc / s_geom
|
||||||
|
|
||||||
|
sin_zw = sp.sqrt(1 - cos_zw ** 2)
|
||||||
|
|
||||||
|
denom = (s_geom ** 2) * sin_zw
|
||||||
|
|
||||||
|
d_zw_dX_zp = (dX * cos_zw - s_geom * sp.cos(B_sp) * sp.cos(L_sp)) / denom
|
||||||
|
|
||||||
|
d_zw_dY_zp = (dY * cos_zw - s_geom * sp.cos(B_sp) * sp.sin(L_sp)) / denom
|
||||||
|
|
||||||
|
d_zw_dZ_zp = (dZ * cos_zw - s_geom * sp.sin(B_sp)) / denom
|
||||||
|
|
||||||
|
d_zw_dX_sp, d_zw_dY_sp, d_zw_dZ_sp = -d_zw_dX_zp, -d_zw_dY_zp, -d_zw_dZ_zp
|
||||||
|
|
||||||
|
zeile_A_Matrix = []
|
||||||
|
|
||||||
|
for punkt in liste_punktnummern:
|
||||||
|
|
||||||
|
if punkt == standpunkt:
|
||||||
|
|
||||||
|
zeile_A_Matrix.extend([d_zw_dX_sp, d_zw_dY_sp, d_zw_dZ_sp])
|
||||||
|
|
||||||
|
elif punkt == zielpunkt:
|
||||||
|
|
||||||
|
zeile_A_Matrix.extend([d_zw_dX_zp, d_zw_dY_zp, d_zw_dZ_zp])
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
zeile_A_Matrix.extend([0, 0, 0])
|
||||||
|
|
||||||
|
# Zenitwinkel hat keine Orientierungsunbekannte
|
||||||
|
|
||||||
|
for orientierung in liste_orientierungsunbekannte:
|
||||||
|
zeile_A_Matrix.append(0)
|
||||||
|
|
||||||
|
liste_A_zenitwinkel_zeilen.append(zeile_A_Matrix)
|
||||||
|
|
||||||
|
liste_zeilenbeschriftungen_zenitwinkel.append(
|
||||||
|
|
||||||
|
f"{beobachtungenID}_ZW_{beobachtungsgruppeID}_{standpunkt}_{zielpunkt}"
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
if liste_beobachtungsgleichungen_distanz:
|
||||||
|
f_matrix_dist = sp.Matrix(liste_beobachtungsgleichungen_distanz)
|
||||||
|
unbekanntenvektor = sp.Matrix(liste_unbekannte)
|
||||||
|
A_dist = f_matrix_dist.jacobian(unbekanntenvektor)
|
||||||
|
else:
|
||||||
|
A_dist = None
|
||||||
|
|
||||||
|
if liste_A_richtung_zeilen:
|
||||||
|
A_richtung = sp.Matrix(liste_A_richtung_zeilen)
|
||||||
|
else:
|
||||||
|
A_richtung = None
|
||||||
|
|
||||||
|
if liste_A_zenitwinkel_zeilen:
|
||||||
|
A_zenitwinkel = sp.Matrix(liste_A_zenitwinkel_zeilen)
|
||||||
|
else:
|
||||||
|
A_zenitwinkel = None
|
||||||
|
|
||||||
|
A_gesamt = None
|
||||||
|
liste_zeilenbeschriftungen_gesamt = []
|
||||||
|
|
||||||
|
if A_dist is not None:
|
||||||
|
A_gesamt = A_dist
|
||||||
|
liste_zeilenbeschriftungen_gesamt.extend(liste_zeilenbeschriftungen_distanz)
|
||||||
|
|
||||||
|
if A_richtung is not None:
|
||||||
|
if A_gesamt is None:
|
||||||
|
A_gesamt = A_richtung
|
||||||
|
else:
|
||||||
|
A_gesamt = A_gesamt.col_join(A_richtung)
|
||||||
|
liste_zeilenbeschriftungen_gesamt.extend(liste_zeilenbeschriftungen_richtung)
|
||||||
|
|
||||||
|
if A_zenitwinkel is not None:
|
||||||
|
if A_gesamt is None:
|
||||||
|
A_gesamt = A_zenitwinkel
|
||||||
|
else:
|
||||||
|
A_gesamt = A_gesamt.col_join(A_zenitwinkel)
|
||||||
|
liste_zeilenbeschriftungen_gesamt.extend(liste_zeilenbeschriftungen_zenitwinkel)
|
||||||
|
|
||||||
|
if A_gesamt is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
self.liste_unbekanntenvektor_symbolisch = liste_unbekannte
|
||||||
|
|
||||||
|
Export.matrix_to_csv(r"Zwischenergebnisse\Jacobi_Matrix_Symbolisch.csv", liste_unbekannte,
|
||||||
|
liste_zeilenbeschriftungen_gesamt, A_gesamt, "Beobachtung")
|
||||||
|
return A_gesamt, liste_unbekannte, liste_zeilenbeschriftungen_gesamt
|
||||||
|
|
||||||
|
def jacobi_matrix_symbolisch_alt(self):
|
||||||
#liste_beobachtungsarten = ["tachymeter_distanz", "tachymeter_richtung", "tachymeter_zenitwinkel"]
|
#liste_beobachtungsarten = ["tachymeter_distanz", "tachymeter_richtung", "tachymeter_zenitwinkel"]
|
||||||
liste_beobachtungsarten = ["tachymeter_distanz"]
|
liste_beobachtungsarten = ["tachymeter_distanz", "tachymeter_richtung"]
|
||||||
db_zugriff = Datenbankzugriff(self.pfad_datenbank)
|
db_zugriff = Datenbankzugriff(self.pfad_datenbank)
|
||||||
|
|
||||||
liste_beobachtungen_rohdaten = []
|
liste_beobachtungen_rohdaten = []
|
||||||
@@ -160,6 +410,8 @@ class FunktionalesModell:
|
|||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
self.liste_unbekanntenvektor_symbolisch = liste_unbekannte
|
||||||
|
|
||||||
Export.matrix_to_csv(r"Zwischenergebnisse\Jacobi_Matrix_Symbolisch.csv", liste_unbekannte,
|
Export.matrix_to_csv(r"Zwischenergebnisse\Jacobi_Matrix_Symbolisch.csv", liste_unbekannte,
|
||||||
liste_zeilenbeschriftungen_gesamt, A_gesamt, "Beobachtung")
|
liste_zeilenbeschriftungen_gesamt, A_gesamt, "Beobachtung")
|
||||||
return A_gesamt, liste_unbekannte, liste_zeilenbeschriftungen_gesamt
|
return A_gesamt, liste_unbekannte, liste_zeilenbeschriftungen_gesamt
|
||||||
@@ -185,7 +437,7 @@ class FunktionalesModell:
|
|||||||
Export.matrix_to_csv(r"Zwischenergebnisse\Beobachtungsvektor_Numerisch.csv", [""], liste_beobachtungsvektor_symbolisch, beobachtungsvektor_numerisch, "Beobachtungsvektor")
|
Export.matrix_to_csv(r"Zwischenergebnisse\Beobachtungsvektor_Numerisch.csv", [""], liste_beobachtungsvektor_symbolisch, beobachtungsvektor_numerisch, "Beobachtungsvektor")
|
||||||
return beobachtungsvektor_numerisch
|
return beobachtungsvektor_numerisch
|
||||||
|
|
||||||
def beobachtungsvektor_naeherung_symbolisch(self, liste_beobachtungsvektor_symbolisch):
|
def beobachtungsvektor_naeherung_symbolisch_alt(self, liste_beobachtungsvektor_symbolisch):
|
||||||
liste_beobachtungsgleichungen = []
|
liste_beobachtungsgleichungen = []
|
||||||
self.dict_punkt_symbole = {}
|
self.dict_punkt_symbole = {}
|
||||||
liste_punktnummern = []
|
liste_punktnummern = []
|
||||||
@@ -222,6 +474,105 @@ class FunktionalesModell:
|
|||||||
+ (Z_zp - Z_sp) ** 2
|
+ (Z_zp - Z_sp) ** 2
|
||||||
)
|
)
|
||||||
liste_beobachtungsgleichungen.append(beobachtungsgleichung)
|
liste_beobachtungsgleichungen.append(beobachtungsgleichung)
|
||||||
|
elif beobachtungsart == "R":
|
||||||
|
X_sp, Y_sp, Z_sp = self.dict_punkt_symbole[standpunkt]
|
||||||
|
X_zp, Y_zp, Z_zp = self.dict_punkt_symbole[zielpunkt]
|
||||||
|
|
||||||
|
dX = X_zp - X_sp
|
||||||
|
dY = Y_zp - Y_sp
|
||||||
|
dZ = Z_zp - Z_sp
|
||||||
|
|
||||||
|
B_sp = sp.Symbol(f"B{standpunkt}")
|
||||||
|
L_sp = sp.Symbol(f"L{standpunkt}")
|
||||||
|
|
||||||
|
O_sp = sp.Symbol(f"O{beobachtungsgruppeID}")
|
||||||
|
|
||||||
|
x = (-sp.sin(B_sp) * sp.cos(L_sp)) * dX + (-sp.sin(B_sp) * sp.sin(L_sp)) * dY + (sp.cos(B_sp)) * dZ
|
||||||
|
y = (-sp.sin(L_sp)) * dX + (sp.cos(L_sp)) * dY
|
||||||
|
|
||||||
|
a12 = sp.atan2(y, x)
|
||||||
|
|
||||||
|
beobachtungsgleichung = a12 - O_sp
|
||||||
|
liste_beobachtungsgleichungen.append(beobachtungsgleichung)
|
||||||
|
|
||||||
|
beobachtungsvektor_naeherung_symbolisch = sp.Matrix(liste_beobachtungsgleichungen)
|
||||||
|
Export.matrix_to_csv(r"Zwischenergebnisse\Beobachtungsvektor_Näherung_Symbolisch.csv", [""],
|
||||||
|
liste_beobachtungsvektor_symbolisch, beobachtungsvektor_naeherung_symbolisch, "Beobachtungsvektor")
|
||||||
|
|
||||||
|
return beobachtungsvektor_naeherung_symbolisch
|
||||||
|
|
||||||
|
def beobachtungsvektor_naeherung_symbolisch(self, liste_beobachtungsvektor_symbolisch):
|
||||||
|
liste_beobachtungsgleichungen = []
|
||||||
|
self.dict_punkt_symbole = {}
|
||||||
|
liste_punktnummern = []
|
||||||
|
|
||||||
|
for beobachtung_symbolisch in liste_beobachtungsvektor_symbolisch:
|
||||||
|
aufgeteilt = beobachtung_symbolisch.split("_")
|
||||||
|
standpunkt = str(aufgeteilt[3])
|
||||||
|
zielpunkt = str(aufgeteilt[4])
|
||||||
|
|
||||||
|
if standpunkt not in liste_punktnummern:
|
||||||
|
liste_punktnummern.append(standpunkt)
|
||||||
|
if zielpunkt not in liste_punktnummern:
|
||||||
|
liste_punktnummern.append(zielpunkt)
|
||||||
|
|
||||||
|
for punkt in liste_punktnummern:
|
||||||
|
X, Y, Z = sp.symbols(f"X{punkt} Y{punkt} Z{punkt}")
|
||||||
|
self.dict_punkt_symbole[str(punkt)] = (X, Y, Z)
|
||||||
|
|
||||||
|
for beobachtung_symbolisch in liste_beobachtungsvektor_symbolisch:
|
||||||
|
aufgeteilt = beobachtung_symbolisch.split("_")
|
||||||
|
#beobachtungen_ID = aufgeteilt[0]
|
||||||
|
beobachtungsart = aufgeteilt[1] # "SD", "R", "ZW"
|
||||||
|
beobachtungsgruppeID = aufgeteilt[2]
|
||||||
|
standpunkt = str(aufgeteilt[3])
|
||||||
|
zielpunkt = str(aufgeteilt[4])
|
||||||
|
|
||||||
|
X_sp, Y_sp, Z_sp = self.dict_punkt_symbole[standpunkt]
|
||||||
|
X_zp, Y_zp, Z_zp = self.dict_punkt_symbole[zielpunkt]
|
||||||
|
|
||||||
|
dX = X_zp - X_sp
|
||||||
|
dY = Y_zp - Y_sp
|
||||||
|
dZ = Z_zp - Z_sp
|
||||||
|
s = sp.sqrt(dX ** 2 + dY ** 2 + dZ ** 2) # Schrägstrecke
|
||||||
|
|
||||||
|
B_sp = sp.Symbol(f"B{standpunkt}")
|
||||||
|
L_sp = sp.Symbol(f"L{standpunkt}")
|
||||||
|
|
||||||
|
if beobachtungsart == "SD":
|
||||||
|
|
||||||
|
s_geom = sp.sqrt(dX ** 2 + dY ** 2 + dZ ** 2)
|
||||||
|
liste_beobachtungsgleichungen.append(s_geom)
|
||||||
|
|
||||||
|
elif beobachtungsart == "R":
|
||||||
|
|
||||||
|
O_sp = sp.Symbol(f"O{beobachtungsgruppeID}")
|
||||||
|
|
||||||
|
# Lokales System: x_loc = Nord, y_loc = Ost
|
||||||
|
x_loc = (-sp.sin(B_sp) * sp.cos(L_sp)) * dX + (-sp.sin(B_sp) * sp.sin(L_sp)) * dY + (sp.cos(B_sp)) * dZ
|
||||||
|
y_loc = (-sp.sin(L_sp)) * dX + (sp.cos(L_sp)) * dY
|
||||||
|
|
||||||
|
a12 = sp.atan2(y_loc, x_loc)
|
||||||
|
|
||||||
|
# Richtung nach Otepka: r = a12 - O
|
||||||
|
liste_beobachtungsgleichungen.append(a12 - O_sp)
|
||||||
|
|
||||||
|
|
||||||
|
elif beobachtungsart == "ZW":
|
||||||
|
|
||||||
|
dX = X_zp - X_sp
|
||||||
|
|
||||||
|
dY = Y_zp - Y_sp
|
||||||
|
|
||||||
|
dZ = Z_zp - Z_sp
|
||||||
|
|
||||||
|
s_geom = sp.sqrt(dX ** 2 + dY ** 2 + dZ ** 2)
|
||||||
|
|
||||||
|
z_loc = (sp.cos(B_sp) * sp.cos(L_sp)) * dX + (sp.cos(B_sp) * sp.sin(L_sp)) * dY + (sp.sin(B_sp)) * dZ
|
||||||
|
|
||||||
|
zw = sp.acos(z_loc / s_geom)
|
||||||
|
|
||||||
|
liste_beobachtungsgleichungen.append(zw)
|
||||||
|
|
||||||
beobachtungsvektor_naeherung_symbolisch = sp.Matrix(liste_beobachtungsgleichungen)
|
beobachtungsvektor_naeherung_symbolisch = sp.Matrix(liste_beobachtungsgleichungen)
|
||||||
Export.matrix_to_csv(r"Zwischenergebnisse\Beobachtungsvektor_Näherung_Symbolisch.csv", [""],
|
Export.matrix_to_csv(r"Zwischenergebnisse\Beobachtungsvektor_Näherung_Symbolisch.csv", [""],
|
||||||
@@ -244,24 +595,61 @@ class FunktionalesModell:
|
|||||||
return(unbekanntenvektor_symbolisch)
|
return(unbekanntenvektor_symbolisch)
|
||||||
|
|
||||||
def unbekanntenvektor_numerisch(self, liste_unbekanntenvektor_symbolisch, unbekanntenvektor_symbolisch, dX_Vektor = None, unbekanntenvektor_neumerisch_vorherige_Iteration = None):
|
def unbekanntenvektor_numerisch(self, liste_unbekanntenvektor_symbolisch, unbekanntenvektor_symbolisch, dX_Vektor = None, unbekanntenvektor_neumerisch_vorherige_Iteration = None):
|
||||||
|
if not hasattr(self, "liste_unbekanntenvektor_symbolisch"):
|
||||||
|
self.liste_unbekanntenvektor_symbolisch = liste_unbekanntenvektor_symbolisch
|
||||||
|
|
||||||
if dX_Vektor is None and unbekanntenvektor_neumerisch_vorherige_Iteration is None:
|
if dX_Vektor is None and unbekanntenvektor_neumerisch_vorherige_Iteration is None:
|
||||||
unbekanntenvektor_numerisch = unbekanntenvektor_symbolisch.xreplace(self.substitutionen_dict)
|
unbekanntenvektor_numerisch = unbekanntenvektor_symbolisch.xreplace(self.substitutionen_dict)
|
||||||
else:
|
else:
|
||||||
unbekanntenvektor_numerisch = unbekanntenvektor_neumerisch_vorherige_Iteration + dX_Vektor
|
unbekanntenvektor_numerisch = unbekanntenvektor_neumerisch_vorherige_Iteration + dX_Vektor
|
||||||
|
|
||||||
|
self.substitutionen_dict = self.dict_substitutionen_uebergeordnetes_system(unbekanntenvektor_numerisch)
|
||||||
|
|
||||||
Export.matrix_to_csv(r"Zwischenergebnisse\Unbekanntenvektor_Numerisch_Iteration0.csv", [""],
|
Export.matrix_to_csv(r"Zwischenergebnisse\Unbekanntenvektor_Numerisch_Iteration0.csv", [""],
|
||||||
liste_unbekanntenvektor_symbolisch, unbekanntenvektor_numerisch,
|
liste_unbekanntenvektor_symbolisch, unbekanntenvektor_numerisch,
|
||||||
"Unbekanntenvektor")
|
"Unbekanntenvektor")
|
||||||
return unbekanntenvektor_numerisch
|
return unbekanntenvektor_numerisch
|
||||||
|
|
||||||
|
def unbekanntenvektor_numerisch_to_dict_unbekanntenvektor(self, liste_unbekanntenvektor_symbolisch, unbekanntenvektor_numerisch):
|
||||||
|
dict_unbekanntenvektor_numerisch = {}
|
||||||
|
index = 0
|
||||||
|
|
||||||
|
for symbol in liste_unbekanntenvektor_symbolisch:
|
||||||
|
name = str(symbol)
|
||||||
|
if not name.startswith("X"):
|
||||||
|
continue
|
||||||
|
|
||||||
|
punktnummer = str(name[1:])
|
||||||
|
|
||||||
|
dict_unbekanntenvektor_numerisch[punktnummer] = sp.Matrix([
|
||||||
|
unbekanntenvektor_numerisch[index],
|
||||||
|
unbekanntenvektor_numerisch[index + 1],
|
||||||
|
unbekanntenvektor_numerisch[index + 2]
|
||||||
|
])
|
||||||
|
index += 3
|
||||||
|
return dict_unbekanntenvektor_numerisch
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def berechnung_dl(self, beobachtungsvektor_numerisch, beobachtungsvektor_naeherung_numerisch):
|
def berechnung_dl(self, beobachtungsvektor_numerisch, beobachtungsvektor_naeherung_numerisch):
|
||||||
dl = beobachtungsvektor_numerisch - beobachtungsvektor_naeherung_numerisch
|
dl = beobachtungsvektor_numerisch - beobachtungsvektor_naeherung_numerisch
|
||||||
|
for i, name in enumerate(liste_beobachtungsvektor_symbolisch):
|
||||||
|
if "_R_" in name:
|
||||||
|
dl[i] = sp.atan2(sp.sin(dl[i]), sp.cos(dl[i])) # wrap auf (-pi, pi]
|
||||||
|
|
||||||
return dl
|
return dl
|
||||||
|
|
||||||
def dict_substitutionen_naeherungen_us(self):
|
def dict_substitutionen_uebergeordnetes_system(self, unbekanntenvektor_aus_iteration = None):
|
||||||
db_zugriff = Datenbankzugriff(self.pfad_datenbank)
|
db_zugriff = Datenbankzugriff(self.pfad_datenbank)
|
||||||
dict_koordinaten_B_L = self.berechnungen.geometrische_breite_laenge(db_zugriff.get_koordinaten("naeherung_us"))
|
if unbekanntenvektor_aus_iteration is None:
|
||||||
|
dict_koordinaten = db_zugriff.get_koordinaten("naeherung_us")
|
||||||
|
else:
|
||||||
|
dict_koordinaten = self.unbekanntenvektor_numerisch_to_dict_unbekanntenvektor(
|
||||||
|
self.liste_unbekanntenvektor_symbolisch,
|
||||||
|
unbekanntenvektor_aus_iteration
|
||||||
|
)
|
||||||
|
|
||||||
|
dict_koordinaten_B_L = self.berechnungen.geometrische_breite_laenge(dict_koordinaten)
|
||||||
liste_beobachtungen = db_zugriff.get_beobachtungen_from_beobachtungenid()
|
liste_beobachtungen = db_zugriff.get_beobachtungen_from_beobachtungenid()
|
||||||
substitutionen = {}
|
substitutionen = {}
|
||||||
|
|
||||||
@@ -284,4 +672,29 @@ class FunktionalesModell:
|
|||||||
substitutionen[zw] = tachymeter_zenitwinkel
|
substitutionen[zw] = tachymeter_zenitwinkel
|
||||||
substitutionen[s] = tachymeter_distanz
|
substitutionen[s] = tachymeter_distanz
|
||||||
|
|
||||||
|
if unbekanntenvektor_aus_iteration is not None:
|
||||||
|
dict_O = self.unbekanntenvektor_numerisch_to_dict_orientierungen(
|
||||||
|
self.liste_unbekanntenvektor_symbolisch,
|
||||||
|
unbekanntenvektor_aus_iteration
|
||||||
|
)
|
||||||
|
for orientierungs_id, wert in dict_O.items():
|
||||||
|
substitutionen[sp.Symbol(f"O{orientierungs_id}")] = wert
|
||||||
|
else:
|
||||||
|
for standpunkt, zielpunkt, beobachtungenID, beobachtungsgruppeID, *_ in liste_beobachtungen:
|
||||||
|
O_sym = sp.Symbol(f"O{beobachtungsgruppeID}")
|
||||||
|
if O_sym not in substitutionen:
|
||||||
|
substitutionen[O_sym] = 0
|
||||||
|
|
||||||
return substitutionen
|
return substitutionen
|
||||||
|
|
||||||
|
def unbekanntenvektor_numerisch_to_dict_orientierungen(self, liste_unbekanntenvektor_symbolisch,
|
||||||
|
unbekanntenvektor_numerisch):
|
||||||
|
dict_O = {}
|
||||||
|
|
||||||
|
for i, symbol in enumerate(liste_unbekanntenvektor_symbolisch):
|
||||||
|
name = str(symbol)
|
||||||
|
if name.startswith("O"):
|
||||||
|
orientierungs_id = name[1:]
|
||||||
|
dict_O[orientierungs_id] = unbekanntenvektor_numerisch[i]
|
||||||
|
|
||||||
|
return dict_O
|
||||||
|
|||||||
361
Import.py
361
Import.py
@@ -224,3 +224,364 @@ class Import:
|
|||||||
cursor.close()
|
cursor.close()
|
||||||
con.close()
|
con.close()
|
||||||
print(f"Der Import der Datei {pfad_datei} wurde erfolgreich abgeschlossen.")
|
print(f"Der Import der Datei {pfad_datei} wurde erfolgreich abgeschlossen.")
|
||||||
|
|
||||||
|
def vorbereitung_import_beobachtungen_nivellement_naeherung_punkthoehen(self, pfad_datei, instrumentenID):
|
||||||
|
# Prüfen, ob Bereits Daten aus der Datei in der Datenbank vorhanden sind
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
liste_dateinamen_in_db = [r[0] for r in cursor.execute(
|
||||||
|
"SELECT DISTINCT dateiname FROM Beobachtungen"
|
||||||
|
).fetchall()]
|
||||||
|
liste_beobachtungsgruppeID = [r[0] for r in cursor.execute("""SELECT DISTINCT beobachtungsgruppeID
|
||||||
|
FROM Beobachtungen""").fetchall()]
|
||||||
|
liste_instrumentenid = [r[0] for r in cursor.execute("SELECT instrumenteID FROM Instrumente").fetchall()]
|
||||||
|
liste_netzpunkte = [r[0] for r in cursor.execute("SELECT punktnummer FROM Netzpunkte").fetchall()]
|
||||||
|
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
|
||||||
|
|
||||||
|
Import_fortsetzen = True
|
||||||
|
|
||||||
|
if pfad_datei in liste_dateinamen_in_db:
|
||||||
|
Import_fortsetzen = False
|
||||||
|
print(f"Der Import wurde abgebrochen, weil die Beobachtungen aus der Datei {pfad_datei} bereits in der Datenbank vorhanden sind.")
|
||||||
|
|
||||||
|
if instrumentenID not in liste_instrumentenid:
|
||||||
|
Import_fortsetzen = False
|
||||||
|
print(
|
||||||
|
"Der Import wurde abgebrochen. Bitte eine gültige InstrumentenID eingeben. Bei Bedarf ist das Instrument neu anzulegen.")
|
||||||
|
|
||||||
|
if Import_fortsetzen:
|
||||||
|
# Berechnete Punkthöhe Importieren
|
||||||
|
muster_berechnete_zielweiten = "| | |Z "
|
||||||
|
dict_punkt_alle_punkthoehen = {}
|
||||||
|
dict_punkt_mittelwert_punkthoehen = {}
|
||||||
|
|
||||||
|
with open(pfad_datei, newline="", encoding="utf-8") as csvfile:
|
||||||
|
r = csv.reader(csvfile, delimiter=";")
|
||||||
|
for i, row in enumerate(r):
|
||||||
|
if any(muster_berechnete_zielweiten in feld for feld in row):
|
||||||
|
zeile = " ".join([str(feld) for feld in row])
|
||||||
|
|
||||||
|
punktnummer = None
|
||||||
|
if "KD1" in zeile:
|
||||||
|
teil = zeile.split("KD1", 1)[1].strip()
|
||||||
|
if teil != "":
|
||||||
|
punktnummer = teil.split()[0]
|
||||||
|
|
||||||
|
wert_z = None
|
||||||
|
if "|Z" in zeile:
|
||||||
|
teil = zeile.split("|Z", 1)[1].strip()
|
||||||
|
if teil != "":
|
||||||
|
wert_z = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
if punktnummer is not None and wert_z is not None:
|
||||||
|
#print(f"{punktnummer}, {float(wert_z)}")
|
||||||
|
if punktnummer not in dict_punkt_alle_punkthoehen:
|
||||||
|
dict_punkt_alle_punkthoehen[punktnummer] = []
|
||||||
|
|
||||||
|
dict_punkt_alle_punkthoehen[punktnummer].append(wert_z)
|
||||||
|
for punktnummer, liste_z in dict_punkt_alle_punkthoehen.items():
|
||||||
|
# Hier wird auf 6 Nachkommastellen gerundet!
|
||||||
|
dict_punkt_mittelwert_punkthoehen[punktnummer] = round(sum(liste_z) / len(liste_z),6)
|
||||||
|
|
||||||
|
if Import_fortsetzen:
|
||||||
|
# Ausgabe, welche Niv-Punkte bereits in der Tabelle Netzpunkte enthalten sind
|
||||||
|
liste_punktnummern_nivellement = dict_punkt_mittelwert_punkthoehen.keys()
|
||||||
|
liste_punktnummern_in_db = []
|
||||||
|
liste_punktnummern_nicht_in_db = []
|
||||||
|
for punktnummer in liste_punktnummern_nivellement:
|
||||||
|
if punktnummer in liste_netzpunkte:
|
||||||
|
liste_punktnummern_in_db.append(punktnummer)
|
||||||
|
else:
|
||||||
|
liste_punktnummern_nicht_in_db.append(punktnummer)
|
||||||
|
|
||||||
|
if Import_fortsetzen:
|
||||||
|
print(f"Für folgende Nivellementpunkte werden die Höhen in der Ausgleichung berechnet: {liste_punktnummern_in_db}\nFür folgende Punkte wird aktuell keine Höhe in der Ausgleichung berechnet: {liste_punktnummern_nicht_in_db}. Bei Bedarf im folgenden Schritt ändern!")
|
||||||
|
return dict_punkt_mittelwert_punkthoehen, liste_punktnummern_in_db
|
||||||
|
|
||||||
|
def import_beobachtungen_nivellement_naeherung_punkthoehen(self, dict_punkt_mittelwert_punkthoehen, liste_punktnummern_in_db, liste_punktnummern_hinzufuegen):
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
|
||||||
|
liste_punkte_neu_hinzugefuegt = []
|
||||||
|
liste_punkte_bereits_vorhanden = []
|
||||||
|
liste_punkte_geaendert = []
|
||||||
|
|
||||||
|
for punktnummer in liste_punktnummern_hinzufuegen:
|
||||||
|
try:
|
||||||
|
cursor.execute(f"INSERT INTO Netzpunkte (punktnummer, normalhoehe_hfp) VALUES (?, ?)", (punktnummer, dict_punkt_mittelwert_punkthoehen[punktnummer]))
|
||||||
|
liste_punkte_neu_hinzugefuegt.append(punktnummer)
|
||||||
|
except sqlite3.IntegrityError:
|
||||||
|
liste_punkte_bereits_vorhanden.append(punktnummer)
|
||||||
|
cursor.execute(
|
||||||
|
"UPDATE Netzpunkte SET normalhoehe_hfp = ? WHERE punktnummer = ?",
|
||||||
|
(dict_punkt_mittelwert_punkthoehen[punktnummer], punktnummer)
|
||||||
|
)
|
||||||
|
liste_punkte_geaendert.append(punktnummer)
|
||||||
|
|
||||||
|
for punktnummer in liste_punktnummern_in_db:
|
||||||
|
cursor.execute(f"UPDATE Netzpunkte SET normalhoehe_hfp = ? WHERE punktnummer = ?", (dict_punkt_mittelwert_punkthoehen[punktnummer], punktnummer))
|
||||||
|
liste_punkte_geaendert.append(punktnummer)
|
||||||
|
con.commit()
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
print(f"Neu hinzugefügt ({len(liste_punkte_neu_hinzugefuegt)}): {liste_punkte_neu_hinzugefuegt}")
|
||||||
|
print(f"Bereits vorhanden ({len(liste_punkte_bereits_vorhanden)}): {liste_punkte_bereits_vorhanden}")
|
||||||
|
print(f"Geändert ({len(liste_punkte_geaendert)}): {liste_punkte_geaendert}\n")
|
||||||
|
|
||||||
|
return f"Für folgende Punkte werden die Höhen Ausgeglichen: {liste_punktnummern_hinzufuegen + liste_punktnummern_in_db}"
|
||||||
|
|
||||||
|
|
||||||
|
def import_beobachtungen_nivellement_RVVR(self, pfad_datei, instrumentenID):
|
||||||
|
# Prüfen, ob Bereits Daten aus der Datei in der Datenbank vorhanden sind
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
liste_dateinamen_in_db = [r[0] for r in cursor.execute(
|
||||||
|
"SELECT DISTINCT dateiname FROM Beobachtungen"
|
||||||
|
).fetchall()]
|
||||||
|
liste_instrumentenid = [r[0] for r in cursor.execute("SELECT instrumenteID FROM Instrumente").fetchall()]
|
||||||
|
liste_netzpunkte = [r[0] for r in cursor.execute("SELECT punktnummer FROM Netzpunkte").fetchall()]
|
||||||
|
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
|
||||||
|
|
||||||
|
Import_fortsetzen = True
|
||||||
|
|
||||||
|
if pfad_datei in liste_dateinamen_in_db:
|
||||||
|
Import_fortsetzen = False
|
||||||
|
print(f"Der Import wurde abgebrochen, weil die Beobachtungen aus der Datei {pfad_datei} bereits in der Datenbank vorhanden sind.")
|
||||||
|
|
||||||
|
if instrumentenID not in liste_instrumentenid:
|
||||||
|
Import_fortsetzen = False
|
||||||
|
print(
|
||||||
|
"Der Import wurde abgebrochen. Bitte eine gültige InstrumentenID eingeben. Bei Bedarf ist das Instrument neu anzulegen.")
|
||||||
|
|
||||||
|
if Import_fortsetzen:
|
||||||
|
anzahl_zeilen_rvvr = 0
|
||||||
|
liste_zeilen_rvvr = []
|
||||||
|
liste_punktpaare = []
|
||||||
|
with open(pfad_datei, "r", encoding="utf-8") as f:
|
||||||
|
for i, zeile in enumerate(f):
|
||||||
|
if ("Lr" in zeile) or ("Lv" in zeile):
|
||||||
|
#print(zeile.rstrip())
|
||||||
|
|
||||||
|
liste_zeilen_rvvr.append(zeile)
|
||||||
|
anzahl_zeilen_rvvr += 1
|
||||||
|
|
||||||
|
|
||||||
|
if anzahl_zeilen_rvvr % 4 == 0:
|
||||||
|
index = 0
|
||||||
|
while index < len(liste_zeilen_rvvr):
|
||||||
|
block_4 = liste_zeilen_rvvr[index:index + 4]
|
||||||
|
|
||||||
|
liste_punktnummern_block = []
|
||||||
|
|
||||||
|
for zeile_block in block_4:
|
||||||
|
punktnummer = None
|
||||||
|
if "|KD1" in zeile_block:
|
||||||
|
teil = zeile_block.split("|KD1", 1)[1].strip()
|
||||||
|
if teil != "":
|
||||||
|
punktnummer = teil.split()[0]
|
||||||
|
|
||||||
|
if punktnummer is not None:
|
||||||
|
if punktnummer not in liste_punktnummern_block:
|
||||||
|
liste_punktnummern_block.append(punktnummer)
|
||||||
|
|
||||||
|
r1 = None
|
||||||
|
v1 = None
|
||||||
|
v2 = None
|
||||||
|
r2 = None
|
||||||
|
|
||||||
|
e_1 = None
|
||||||
|
e_2 = None
|
||||||
|
e_3 = None
|
||||||
|
e_4 = None
|
||||||
|
|
||||||
|
zugnummer = None
|
||||||
|
if "|Lr" in block_4[0]:
|
||||||
|
teil = block_4[0].split("|Lr", 1)[0].strip()
|
||||||
|
if teil != "":
|
||||||
|
zugnummer = int(teil.split()[-1])
|
||||||
|
|
||||||
|
teil = block_4[0].split("Lr", 1)[1].strip() if "Lr" in block_4[0] else block_4[0].split("Lv", 1)[
|
||||||
|
1].strip()
|
||||||
|
r1 = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
teil = block_4[1].split("Lr", 1)[1].strip() if "Lr" in block_4[1] else block_4[1].split("Lv", 1)[
|
||||||
|
1].strip()
|
||||||
|
v1 = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
teil = block_4[2].split("Lr", 1)[1].strip() if "Lr" in block_4[2] else block_4[2].split("Lv", 1)[
|
||||||
|
1].strip()
|
||||||
|
v2 = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
teil = block_4[3].split("Lr", 1)[1].strip() if "Lr" in block_4[3] else block_4[3].split("Lv", 1)[
|
||||||
|
1].strip()
|
||||||
|
r2 = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if "|E" in block_4[0]:
|
||||||
|
teil = block_4[0].split("|E", 1)[1].strip()
|
||||||
|
if teil != "":
|
||||||
|
e_1 = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
if "|E" in block_4[1]:
|
||||||
|
teil = block_4[1].split("|E", 1)[1].strip()
|
||||||
|
if teil != "":
|
||||||
|
e_2 = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
if "|E" in block_4[2]:
|
||||||
|
teil = block_4[2].split("|E", 1)[1].strip()
|
||||||
|
if teil != "":
|
||||||
|
e_3 = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
if "|E" in block_4[3]:
|
||||||
|
teil = block_4[3].split("|E", 1)[1].strip()
|
||||||
|
if teil != "":
|
||||||
|
e_4 = self.string_to_float(teil.split()[0])
|
||||||
|
|
||||||
|
# Achtung: Hier Rundung auf 8 Nachkommastellen
|
||||||
|
dh = round((r1 - v1 - v2 + r2) / 2, 8)
|
||||||
|
entfernung = round((e_1 + e_2 + e_3 + e_4) / 2, 8)
|
||||||
|
liste_punktpaare.append((zugnummer, liste_punktnummern_block[0], liste_punktnummern_block[1], dh, entfernung))
|
||||||
|
|
||||||
|
index += 4
|
||||||
|
|
||||||
|
|
||||||
|
liste_beobachtungen_reduziert = []
|
||||||
|
liste_beobachtungen_bearbeitung = []
|
||||||
|
zugnummer_vorher = liste_punktpaare[0][0]
|
||||||
|
for einzelbeobachtung in liste_punktpaare:
|
||||||
|
zugnummer = einzelbeobachtung[0]
|
||||||
|
if zugnummer == zugnummer_vorher:
|
||||||
|
if einzelbeobachtung[1] in liste_netzpunkte and einzelbeobachtung[2] in liste_netzpunkte:
|
||||||
|
#print(einzelbeobachtung)
|
||||||
|
liste_beobachtungen_reduziert.append(einzelbeobachtung + (1,))
|
||||||
|
|
||||||
|
elif einzelbeobachtung[1] in liste_netzpunkte and einzelbeobachtung[2] not in liste_netzpunkte:
|
||||||
|
#print(f"Zielpunkt nicht enthalten {einzelbeobachtung}")
|
||||||
|
liste_beobachtungen_bearbeitung.append(einzelbeobachtung)
|
||||||
|
|
||||||
|
elif einzelbeobachtung[1] not in liste_netzpunkte and einzelbeobachtung[2] in liste_netzpunkte:
|
||||||
|
#print(f"Startpunkt nicht enthalten {einzelbeobachtung}")
|
||||||
|
liste_beobachtungen_bearbeitung.append(einzelbeobachtung)
|
||||||
|
startpunkt = None
|
||||||
|
zielpunkt = None
|
||||||
|
summe_dh = None
|
||||||
|
summe_entfernung = None
|
||||||
|
anzahl_standpunkte = 1
|
||||||
|
for i, beobachtung_bearbeiten in enumerate(liste_beobachtungen_bearbeitung):
|
||||||
|
if i == 0:
|
||||||
|
startpunkt = beobachtung_bearbeiten[1]
|
||||||
|
summe_dh = beobachtung_bearbeiten[3]
|
||||||
|
summe_entfernung = beobachtung_bearbeiten[4]
|
||||||
|
anzahl_standpunkte = 1
|
||||||
|
else:
|
||||||
|
zielpunkt = beobachtung_bearbeiten[2]
|
||||||
|
summe_dh += beobachtung_bearbeiten[3]
|
||||||
|
summe_entfernung += beobachtung_bearbeiten[4]
|
||||||
|
anzahl_standpunkte += 1
|
||||||
|
# Achtung:Hier Rundung auf 8 Nachkommastellen!
|
||||||
|
liste_beobachtungen_reduziert.append(
|
||||||
|
(zugnummer, startpunkt, zielpunkt, round(summe_dh, 8),
|
||||||
|
round(summe_entfernung, 8), anzahl_standpunkte))
|
||||||
|
liste_beobachtungen_bearbeitung = []
|
||||||
|
else:
|
||||||
|
#print(f"Startpunkt und Zielpunkt nicht enthalten {einzelbeobachtung}")
|
||||||
|
liste_beobachtungen_bearbeitung.append(einzelbeobachtung)
|
||||||
|
else:
|
||||||
|
#print(f"-----------------------------")
|
||||||
|
if einzelbeobachtung[1] in liste_netzpunkte and einzelbeobachtung[2] in liste_netzpunkte:
|
||||||
|
#print(einzelbeobachtung)
|
||||||
|
liste_beobachtungen_reduziert.append(einzelbeobachtung + (1,))
|
||||||
|
elif einzelbeobachtung[1] in liste_netzpunkte and einzelbeobachtung[2] not in liste_netzpunkte:
|
||||||
|
#print(f"Zielpunkt nicht enthalten {einzelbeobachtung}")
|
||||||
|
liste_beobachtungen_bearbeitung.append(einzelbeobachtung)
|
||||||
|
elif einzelbeobachtung[1] not in liste_netzpunkte and einzelbeobachtung[2] in liste_netzpunkte:
|
||||||
|
#print(f"Startpunkt nicht enthalten {einzelbeobachtung}")
|
||||||
|
liste_beobachtungen_bearbeitung.append(einzelbeobachtung)
|
||||||
|
startpunkt = None
|
||||||
|
zielpunkt = None
|
||||||
|
summe_dh = None
|
||||||
|
summe_entfernung = None
|
||||||
|
anzahl_standpunkte = 1
|
||||||
|
for i, beobachtung_bearbeiten in enumerate(liste_beobachtungen_bearbeitung):
|
||||||
|
if i == 0:
|
||||||
|
startpunkt = beobachtung_bearbeiten[1]
|
||||||
|
summe_dh = beobachtung_bearbeiten[3]
|
||||||
|
summe_entfernung = beobachtung_bearbeiten[4]
|
||||||
|
anzahl_standpunkte = 1
|
||||||
|
else:
|
||||||
|
zielpunkt = beobachtung_bearbeiten[2]
|
||||||
|
summe_dh += beobachtung_bearbeiten[3]
|
||||||
|
summe_entfernung += beobachtung_bearbeiten[4]
|
||||||
|
anzahl_standpunkte += 1
|
||||||
|
#Achtung:Hier Rundung auf 8 Nachkommastellen!
|
||||||
|
liste_beobachtungen_reduziert.append(
|
||||||
|
(zugnummer, startpunkt, zielpunkt, round(summe_dh,8), round(summe_entfernung,8), anzahl_standpunkte))
|
||||||
|
liste_beobachtungen_bearbeitung = []
|
||||||
|
else:
|
||||||
|
# print(f"Startpunkt und Zielpunkt nicht enthalten {einzelbeobachtung}")
|
||||||
|
liste_beobachtungen_bearbeitung.append(einzelbeobachtung)
|
||||||
|
zugnummer_vorher = zugnummer
|
||||||
|
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
for beobachtung_reduziert in liste_beobachtungen_reduziert:
|
||||||
|
cursor.execute(f"INSERT INTO Beobachtungen (punktnummer_sp, punktnummer_zp, instrumenteID, niv_dh, niv_strecke, niv_anz_standpkte, dateiname) VALUES (?, ?, ?, ?, ?, ?, ?)", (beobachtung_reduziert[1], beobachtung_reduziert[2], instrumentenID, beobachtung_reduziert[3], beobachtung_reduziert[4], beobachtung_reduziert[5], pfad_datei))
|
||||||
|
con.commit()
|
||||||
|
cursor.close()
|
||||||
|
con.close()
|
||||||
|
|
||||||
|
return f"Die Beobachtungen aus der Datei {pfad_datei} wurden erfolgreich importiert."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
else:
|
||||||
|
print(f"Anzahl nicht RVVR durch 4 teilbar. Bitte die Datei {pfad_datei} überprüfen! Der Import wurde abgebrochen.")
|
||||||
|
Import_fortsetzen = False
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def import_koordinaten_gnss(self, pfad_datei, liste_sapos_stationen_genauigkeiten):
|
||||||
|
liste_zeilen = []
|
||||||
|
dict_koordinaten = {}
|
||||||
|
|
||||||
|
con = sqlite3.connect(self.pfad_datenbank)
|
||||||
|
cursor = con.cursor()
|
||||||
|
|
||||||
|
with (open(pfad_datei, newline="", encoding="utf-8") as csvfile):
|
||||||
|
r = csv.reader(csvfile, delimiter = ";")
|
||||||
|
for i, row in enumerate(r):
|
||||||
|
row_neu = []
|
||||||
|
for eintrag in row:
|
||||||
|
eintrag = str(eintrag).strip()
|
||||||
|
|
||||||
|
eintrag = eintrag.replace("'", "")
|
||||||
|
aufgeteilt = eintrag.split()
|
||||||
|
for teil in aufgeteilt:
|
||||||
|
teil = teil.split(",")
|
||||||
|
row_neu.extend(teil)
|
||||||
|
if row_neu[1] == 'Referenz' and row_neu[7] == '0.0000' and row_neu[8] == '0.0000' and row_neu[9] == '0.0000':
|
||||||
|
row_neu[7] = liste_sapos_stationen_genauigkeiten[0]
|
||||||
|
row_neu[8] = liste_sapos_stationen_genauigkeiten[1]
|
||||||
|
row_neu[9] = liste_sapos_stationen_genauigkeiten[2]
|
||||||
|
cursor.execute(f"""INSERT INTO Netzpunkte (punktnummer, naeherungx_us, naeherungy_us, naeherungz_us, stabw_vorinfo_x, stabw_vorinfo_y, stabw_vorinfo_z) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT (punktnummer) DO UPDATE SET naeherungx_us = excluded.naeherungx_us,
|
||||||
|
naeherungy_us = excluded.naeherungy_us,
|
||||||
|
naeherungz_us = excluded.naeherungz_us,
|
||||||
|
stabw_vorinfo_x = excluded.stabw_vorinfo_x,
|
||||||
|
stabw_vorinfo_y = excluded.stabw_vorinfo_y,
|
||||||
|
stabw_vorinfo_z = excluded.stabw_vorinfo_z""", (row_neu[0], row_neu[4], row_neu[5], row_neu[6], row_neu[7], row_neu[8], row_neu[9])
|
||||||
|
)
|
||||||
|
#liste_zeilen.append(row_neu)
|
||||||
|
|
||||||
|
|
||||||
|
con.commit()
|
||||||
|
con.close()
|
||||||
|
return "Import der Koordinaten aus stationärem GNSS abgeschlossen."
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ from dataclasses import dataclass
|
|||||||
from typing import Sequence, List, Dict
|
from typing import Sequence, List, Dict
|
||||||
import sympy as sp
|
import sympy as sp
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
import math
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
@@ -14,8 +15,16 @@ class Genauigkeitsmaße:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def s0apost(v, P, r):
|
def s0apost(v, P, r):
|
||||||
vv = (v.T * P * v)[0, 0]
|
vv = (v.T * P * v)[0, 0]
|
||||||
s0apost = (Decimal(str(vv)) / Decimal(r)) ** Decimal("0.5")
|
vv = float(vv) # Sympy -> float
|
||||||
return s0apost
|
|
||||||
|
if r <= 0:
|
||||||
|
raise ValueError(f"Redundanz r muss > 0 sein, ist {r}.")
|
||||||
|
if not math.isfinite(vv):
|
||||||
|
raise ValueError(f"vv ist nicht endlich (NaN/Inf). vv={vv}")
|
||||||
|
if vv < 0:
|
||||||
|
raise ValueError(f"vv ist negativ. vv={vv}")
|
||||||
|
|
||||||
|
return math.sqrt(vv / float(r))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +1,62 @@
|
|||||||
from Datumsfestlegung import *
|
|
||||||
from Stochastisches_Modell import StochastischesModell
|
from Stochastisches_Modell import StochastischesModell
|
||||||
|
from Netzqualität_Genauigkeit import Genauigkeitsmaße
|
||||||
|
from Datumsfestlegung import Datumsfestlegung
|
||||||
import sympy as sp
|
import sympy as sp
|
||||||
import Export
|
import Export
|
||||||
import Netzqualität_Genauigkeit
|
|
||||||
|
|
||||||
|
|
||||||
def ausgleichung_global(A, dl, stoch_modell: StochastischesModell):
|
def ausgleichung_global(
|
||||||
|
A: sp.Matrix,
|
||||||
|
dl: sp.Matrix,
|
||||||
|
Q_ll: sp.Matrix,
|
||||||
|
x0: sp.Matrix,
|
||||||
|
idx_X, idx_Y, idx_Z,
|
||||||
|
anschluss_indices,
|
||||||
|
anschluss_werte,
|
||||||
|
Sigma_AA,
|
||||||
|
):
|
||||||
|
# 1) Datumsfestlegung (weiches Datum) System erweitern
|
||||||
|
A_ext, dl_ext, Q_ext = Datumsfestlegung.weiches_datum(
|
||||||
|
A=A,
|
||||||
|
dl=dl,
|
||||||
|
Q_ll=Q_ll,
|
||||||
|
x0=x0,
|
||||||
|
anschluss_indices=anschluss_indices,
|
||||||
|
anschluss_werte=anschluss_werte,
|
||||||
|
Sigma_AA=Sigma_AA,
|
||||||
|
)
|
||||||
|
|
||||||
#Q_ll, P = stoch_modell.berechne_Qll_P() #Kofaktormatrix und P-Matrix
|
# 2) Gewichtsmatrix P
|
||||||
P = sp.eye(A.shape[0])
|
P = StochastischesModell.berechne_P(Q_ext)
|
||||||
N = A.T * P * A #Normalgleichungsmatrix N
|
|
||||||
Q_xx = N.inv() #Kofaktormatrix der Unbekannten Qxx
|
|
||||||
n = A.T * P * dl #Absolutgliedvektor n
|
|
||||||
|
|
||||||
dx = N.LUsolve(n) #Zuschlagsvektor dx
|
# 3) Normalgleichungsmatrix N und Absolutgliedvektor n
|
||||||
|
N = A_ext.T * P * A_ext
|
||||||
|
n = A_ext.T * P * dl_ext
|
||||||
|
|
||||||
v = dl - A * dx #Residuenvektor v
|
# 4) Zuschlagsvektor dx
|
||||||
|
dx = N.LUsolve(n)
|
||||||
|
|
||||||
|
# 5) Residuenvektor v
|
||||||
|
v = dl - A * dx
|
||||||
|
|
||||||
|
# 6) Kofaktormatrix der Unbekannten Q_xx
|
||||||
|
Q_xx = StochastischesModell.berechne_Q_xx(N)
|
||||||
|
|
||||||
|
# 7) Kofaktormatrix der Beobachtungen Q_ll_dach
|
||||||
Q_ll_dach = A * Q_xx * A.T
|
Q_ll_dach = A * Q_xx * A.T
|
||||||
Q_vv = stoch_modell.berechne_Qvv(A, P, Q_xx) #Kofaktormatrix der Verbesserungen Qvv
|
|
||||||
R = stoch_modell.berechne_R(Q_vv, P) #Redundanzmatrix R
|
|
||||||
r = stoch_modell.berechne_r(R) #Redundanzanteile als Vektor r
|
|
||||||
redundanzanteile = A.shape[0] - A.shape[1] #n-u+d
|
|
||||||
soaposteriori = Netzqualität_Genauigkeit.Genauigkeitsmaße.s0apost(v, P, redundanzanteile)
|
|
||||||
|
|
||||||
|
# 8) Kofaktormatrix der Verbesserungen Q_vv
|
||||||
|
Q_vv = StochastischesModell.berechne_Qvv(A, P, Q_xx)
|
||||||
|
|
||||||
|
# 9) Redundanzmatrix R und Redundanzanteile r
|
||||||
|
R = StochastischesModell.berechne_R(Q_vv, P) #Redundanzmatrix R
|
||||||
|
r = StochastischesModell.berechne_r(R) #Redundanzanteile als Vektor r
|
||||||
|
redundanzanteile = A.shape[0] - A.shape[1] #n-u+d
|
||||||
|
|
||||||
|
# 10) s0 a posteriori
|
||||||
|
soaposteriori = Genauigkeitsmaße.s0apost(v, P, redundanzanteile)
|
||||||
|
|
||||||
|
# 11) Ausgabe
|
||||||
dict_ausgleichung = {
|
dict_ausgleichung = {
|
||||||
"dx": dx,
|
"dx": dx,
|
||||||
"v": v,
|
"v": v,
|
||||||
@@ -38,68 +71,65 @@ def ausgleichung_global(A, dl, stoch_modell: StochastischesModell):
|
|||||||
}
|
}
|
||||||
|
|
||||||
Export.Export.ausgleichung_to_datei(r"Zwischenergebnisse\Ausgleichung_Iteration0.csv", dict_ausgleichung)
|
Export.Export.ausgleichung_to_datei(r"Zwischenergebnisse\Ausgleichung_Iteration0.csv", dict_ausgleichung)
|
||||||
|
|
||||||
return dict_ausgleichung, dx
|
return dict_ausgleichung, dx
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def ausgleichung_lokal(
|
def ausgleichung_lokal(
|
||||||
A: sp.Matrix,
|
A: sp.Matrix,
|
||||||
dl: sp.Matrix,
|
dl: sp.Matrix,
|
||||||
stoch_modell: StochastischesModell,
|
Q_ll: sp.Matrix,
|
||||||
x0: sp.Matrix,
|
x0: sp.Matrix,
|
||||||
idx_X, idx_Y, idx_Z,
|
liste_punktnummern,
|
||||||
aktive_unbekannte_indices,
|
auswahl,
|
||||||
mit_massstab: bool = True,
|
mit_massstab: bool = True,
|
||||||
):
|
):
|
||||||
# 1) Gewichte
|
# 1) Gewichtsmatrix P
|
||||||
Q_ll, P = stoch_modell.berechne_Qll_P()
|
P = StochastischesModell.berechne_P(Q_ll)
|
||||||
# Debug-Option:
|
|
||||||
# P = sp.eye(A.rows)
|
|
||||||
|
|
||||||
# 2) Normalgleichungen
|
# 2) Normalgleichungsmatrix N und Absolutgliedvektor n
|
||||||
N = A.T * P * A
|
N = A.T * P * A
|
||||||
n = A.T * P * dl
|
n = A.T * P * dl
|
||||||
|
|
||||||
# 3) Datum (G, E, Gi)
|
# 3) Datumsfestlegung (Teilspurminimierung)
|
||||||
G = raenderungsmatrix_G(x0, idx_X, idx_Y, idx_Z, mit_massstab=mit_massstab)
|
G = Datumsfestlegung.raenderungsmatrix_G(x0, liste_punktnummern, mit_massstab=mit_massstab)
|
||||||
E = auswahlmatrix_E(u=A.cols, aktive_unbekannte_indices=aktive_unbekannte_indices)
|
aktive = Datumsfestlegung.datumskomponenten(auswahl, liste_punktnummern)
|
||||||
|
E = Datumsfestlegung.auswahlmatrix_E(u=A.cols, aktive_unbekannte_indices=aktive)
|
||||||
Gi = E * G
|
Gi = E * G
|
||||||
|
|
||||||
# 4) Geränderte Lösung (dx)
|
# 4) Zuschlagsvektor dx
|
||||||
dx = berechne_dx_geraendert(N, n, Gi)
|
dx = Datumsfestlegung.berechne_dx_geraendert(N, n, Gi)
|
||||||
|
|
||||||
# 5) Residuen
|
# 5) Residuenvektor v
|
||||||
v = dl - A * dx
|
v = dl - A * dx
|
||||||
|
|
||||||
# 6) KORREKTE Q_xx für gerändertes Problem:
|
# 6) Kofaktormatrix der Unbekannten Q_xx
|
||||||
# Q_xx = N^{-1} - N^{-1}Gi (Gi^T N^{-1} Gi)^{-1} Gi^T N^{-1}
|
N_inv = N.inv()
|
||||||
# numerisch besser via LUsolve statt inv:
|
|
||||||
N_inv = N.inv() # wenn N groß ist, kann man das unten auch ohne inv machen (siehe Hinweis)
|
|
||||||
N_inv_G = N_inv * Gi
|
N_inv_G = N_inv * Gi
|
||||||
S = Gi.T * N_inv_G
|
S = Gi.T * N_inv_G
|
||||||
S_inv = S.inv()
|
S_inv = S.inv()
|
||||||
Q_xx = N_inv - N_inv_G * S_inv * N_inv_G.T
|
Q_xx = N_inv - N_inv_G * S_inv * N_inv_G.T
|
||||||
|
|
||||||
# 7) Q_lhat_lhat und Q_vv
|
# 7) Kofaktormatrix der Beobachtungen Q_ll_dach
|
||||||
Q_lhat_lhat = A * Q_xx * A.T
|
Q_lhat_lhat = A * Q_xx * A.T
|
||||||
|
|
||||||
|
# 8) Kofaktormatrix der Verbesserungen Q_vv
|
||||||
Q_vv = P.inv() - Q_lhat_lhat
|
Q_vv = P.inv() - Q_lhat_lhat
|
||||||
|
|
||||||
# 8) Redundanzmatrix und -anteile
|
# 9) Redundanzmatrix R, Redundanzanteile r, Redundanz
|
||||||
R = Q_vv * P
|
R = Q_vv * P
|
||||||
r_vec = sp.Matrix(R.diagonal())
|
r_vec = sp.Matrix(R.diagonal())
|
||||||
|
|
||||||
# 9) Freiheitsgrade (Redundanz gesamt)
|
|
||||||
n_beob = A.rows
|
n_beob = A.rows
|
||||||
u = A.cols
|
u = A.cols
|
||||||
d = Gi.shape[1]
|
d = Gi.shape[1]
|
||||||
r_gesamt = n_beob - u + d
|
r_gesamt = n_beob - u + d
|
||||||
|
|
||||||
# 10) sigma0 a posteriori
|
# 10) s0 a posteriori
|
||||||
omega = float((v.T * P * v)[0, 0])
|
sigma0_apost = Genauigkeitsmaße.s0apost(v, P, r_gesamt)
|
||||||
sigma0_hat = (omega / float(r_gesamt)) ** 0.5
|
|
||||||
|
|
||||||
return {
|
# 11) Ausgabe
|
||||||
|
dict_ausgleichung_lokal = {
|
||||||
"dx": dx,
|
"dx": dx,
|
||||||
"v": v,
|
"v": v,
|
||||||
"Q_ll": Q_ll,
|
"Q_ll": Q_ll,
|
||||||
@@ -111,7 +141,10 @@ def ausgleichung_lokal(
|
|||||||
"R": R,
|
"R": R,
|
||||||
"r": r_vec,
|
"r": r_vec,
|
||||||
"r_gesamt": r_gesamt,
|
"r_gesamt": r_gesamt,
|
||||||
"sigma0_hat": sigma0_hat,
|
"sigma0_apost": sigma0_apost,
|
||||||
"G": G,
|
"G": G,
|
||||||
"Gi": Gi,
|
"Gi": Gi,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Export.Export.ausgleichung_to_datei(r"Zwischenergebnisse\Ausgleichung_Iteration0_lokal.csv", dict_ausgleichung_lokal)
|
||||||
|
return dict_ausgleichung_lokal, dx
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
import sympy as sp
|
import sympy as sp
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import Dict, Tuple, Iterable
|
from typing import Dict, Tuple, Iterable
|
||||||
|
from Export import Export
|
||||||
|
from Datenbank import Datenbankzugriff
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class StochastischesModell:
|
class StochastischesModell:
|
||||||
@@ -48,12 +50,135 @@ class StochastischesModell:
|
|||||||
Q_ll[i, i] = q_ii #Diagonale
|
Q_ll[i, i] = q_ii #Diagonale
|
||||||
return Q_ll
|
return Q_ll
|
||||||
|
|
||||||
|
def Qll_symbolisch(self, pfad_datenbank, liste_beobachtungen_symbolisch):
|
||||||
|
liste_standardabweichungen_symbole = []
|
||||||
|
liste_beobachtungen_symbolisch = [str(b) for b in liste_beobachtungen_symbolisch]
|
||||||
|
Qll = sp.zeros(len(liste_beobachtungen_symbolisch), len(liste_beobachtungen_symbolisch))
|
||||||
|
|
||||||
def berechne_P(Q_ll):
|
db_zugriff = Datenbankzugriff(pfad_datenbank)
|
||||||
|
dict_beobachtungenID_instrumenteID = db_zugriff.get_instrumenteID_beobachtungenID_dict()
|
||||||
|
|
||||||
|
for i, beobachtung_symbolisch_i in enumerate(liste_beobachtungen_symbolisch):
|
||||||
|
aufgeteilt_i = beobachtung_symbolisch_i.split("_")
|
||||||
|
beobachtungenID_i = int(aufgeteilt_i[0])
|
||||||
|
instrumenteID_i = dict_beobachtungenID_instrumenteID[beobachtungenID_i]
|
||||||
|
beobachtungsart_i = str(aufgeteilt_i[1])
|
||||||
|
|
||||||
|
if beobachtungsart_i == "SD":
|
||||||
|
stabw_apriori_konstant = sp.Symbol(f"stabw_apriori_konstant_{beobachtungsart_i}_{instrumenteID_i}")
|
||||||
|
stabw_apriori_streckenprop = sp.Symbol(f"stabw_apriori_streckenprop_{beobachtungsart_i}_{instrumenteID_i}")
|
||||||
|
tachymeter_distanz = sp.Symbol(f"SD_{beobachtungenID_i}")
|
||||||
|
|
||||||
|
sigma = sp.sqrt(stabw_apriori_konstant ** 2 + (stabw_apriori_streckenprop * tachymeter_distanz / 1000000) ** 2)
|
||||||
|
liste_standardabweichungen_symbole.append(sigma)
|
||||||
|
|
||||||
|
Qll[i, i] = sigma ** 2
|
||||||
|
|
||||||
|
elif beobachtungsart_i == "R" or beobachtungsart_i == "ZW":
|
||||||
|
stabw_apriori_konstant = sp.Symbol(f"stabw_apriori_konstant_{beobachtungsart_i}_{instrumenteID_i}")
|
||||||
|
|
||||||
|
stabw_apriori_konstant_distanz = sp.Symbol(f"stabw_apriori_konstant_SD_{instrumenteID_i}")
|
||||||
|
tachymeter_distanz = sp.Symbol(f"SD_{beobachtungenID_i}")
|
||||||
|
|
||||||
|
sigma = sp.sqrt(
|
||||||
|
stabw_apriori_konstant ** 2 + (stabw_apriori_konstant_distanz / tachymeter_distanz) ** 2)
|
||||||
|
liste_standardabweichungen_symbole.append(sigma)
|
||||||
|
|
||||||
|
Qll[i, i] = sigma ** 2
|
||||||
|
|
||||||
|
for j in range(i + 1, len(liste_beobachtungen_symbolisch)):
|
||||||
|
beobachtung_symbolisch_j = liste_beobachtungen_symbolisch[j]
|
||||||
|
aufgeteilt_j = beobachtung_symbolisch_j.split("_")
|
||||||
|
beobachtungsart_j = str(aufgeteilt_j[1])
|
||||||
|
|
||||||
|
if beobachtungsart_i == "SD" and beobachtungsart_j == "SD":
|
||||||
|
Qll[i, j] = 0
|
||||||
|
Qll[j, i] = 0
|
||||||
|
|
||||||
|
Export.matrix_to_csv(r"Zwischenergebnisse\Qll_Symbolisch.csv", liste_beobachtungen_symbolisch, liste_beobachtungen_symbolisch, Qll, "Qll")
|
||||||
|
return Qll
|
||||||
|
|
||||||
|
def Qll_numerisch(self, pfad_datenbank, Qll_Matrix_Symbolisch, liste_beobachtungen_symbolisch):
|
||||||
|
db_zugriff = Datenbankzugriff(pfad_datenbank)
|
||||||
|
dict_genauigkeiten = db_zugriff.get_genauigkeiten_dict()
|
||||||
|
dict_beobachtungenID_instrumenteID = db_zugriff.get_instrumenteID_beobachtungenID_dict()
|
||||||
|
|
||||||
|
liste_beobachtungen = db_zugriff.get_beobachtungen_from_beobachtungenid()
|
||||||
|
dict_beobachtungenID_distanz = {}
|
||||||
|
for standpunkt, zielpunkt, beobachtungenID, beobachtungsgruppeID, tachymeter_richtung, tachymeter_zenitwinkel, tachymeter_distanz in liste_beobachtungen:
|
||||||
|
dict_beobachtungenID_distanz[int(beobachtungenID)] = tachymeter_distanz
|
||||||
|
|
||||||
|
dict_genauigkeiten_neu = {}
|
||||||
|
for genauigkeitenID, eintrag in dict_genauigkeiten.items():
|
||||||
|
instrumenteID = int(eintrag[0])
|
||||||
|
beobachtungsart = str(eintrag[1])
|
||||||
|
stabw_apriori_konstant = eintrag[2]
|
||||||
|
stabw_apriori_streckenprop = eintrag[3]
|
||||||
|
dict_genauigkeiten_neu[(instrumenteID, beobachtungsart)] = (stabw_apriori_konstant,
|
||||||
|
stabw_apriori_streckenprop)
|
||||||
|
|
||||||
|
substitutionen = {}
|
||||||
|
|
||||||
|
dict_konstante_sd = {}
|
||||||
|
for (instrumenteID, beobachtungsart), (stabw_apriori_konstant,
|
||||||
|
stabw_apriori_streckenprop) in dict_genauigkeiten_neu.items():
|
||||||
|
if beobachtungsart == "Tachymeter_Strecke":
|
||||||
|
if stabw_apriori_konstant is not None:
|
||||||
|
dict_konstante_sd[instrumenteID] = float(stabw_apriori_konstant)
|
||||||
|
|
||||||
|
for (instrumenteID, beobachtungsart), (stabw_apriori_konstant,
|
||||||
|
stabw_apriori_streckenprop) in dict_genauigkeiten_neu.items():
|
||||||
|
|
||||||
|
if beobachtungsart == "Tachymeter_Strecke":
|
||||||
|
beobachtungsart_kurz = "SD"
|
||||||
|
elif beobachtungsart == "Tachymeter_Richtung":
|
||||||
|
beobachtungsart_kurz = "R"
|
||||||
|
elif beobachtungsart == "Tachymeter_Zenitwinkel":
|
||||||
|
beobachtungsart_kurz = "ZW"
|
||||||
|
|
||||||
|
|
||||||
|
if stabw_apriori_konstant is not None:
|
||||||
|
substitutionen[sp.Symbol(f"stabw_apriori_konstant_{beobachtungsart_kurz}_{instrumenteID}")] = float(stabw_apriori_konstant)
|
||||||
|
if stabw_apriori_streckenprop is not None:
|
||||||
|
substitutionen[sp.Symbol(f"stabw_apriori_streckenprop_{beobachtungsart_kurz}_{instrumenteID}")] = float(stabw_apriori_streckenprop)
|
||||||
|
|
||||||
|
for instrumenteID, wert in dict_konstante_sd.items():
|
||||||
|
substitutionen[sp.Symbol(f"stabw_apriori_konstant_SD_{instrumenteID}")] = float(wert)
|
||||||
|
|
||||||
|
liste_beobachtungen_symbolisch = [str(b) for b in liste_beobachtungen_symbolisch]
|
||||||
|
|
||||||
|
for beobachtung_symbolisch in liste_beobachtungen_symbolisch:
|
||||||
|
aufgeteilt = beobachtung_symbolisch.split("_")
|
||||||
|
beobachtungenID = int(aufgeteilt[0])
|
||||||
|
|
||||||
|
distanz = dict_beobachtungenID_distanz.get(beobachtungenID, None)
|
||||||
|
if distanz is not None:
|
||||||
|
substitutionen[sp.Symbol(f"SD_{beobachtungenID}")] = float(distanz)
|
||||||
|
|
||||||
|
Qll_numerisch = Qll_Matrix_Symbolisch.xreplace(substitutionen)
|
||||||
|
|
||||||
|
Export.matrix_to_csv(
|
||||||
|
r"Zwischenergebnisse\Qll_Numerisch.csv",
|
||||||
|
liste_beobachtungen_symbolisch,
|
||||||
|
liste_beobachtungen_symbolisch,
|
||||||
|
Qll_numerisch,
|
||||||
|
"Qll"
|
||||||
|
)
|
||||||
|
|
||||||
|
return Qll_numerisch
|
||||||
|
|
||||||
|
def berechne_P(Q_ll: sp.Matrix) -> sp.Matrix:
|
||||||
P = Q_ll.inv()
|
P = Q_ll.inv()
|
||||||
return P
|
return P
|
||||||
|
|
||||||
|
|
||||||
|
def berechne_Q_xx(N: sp.Matrix) -> sp.Matrix:
|
||||||
|
if N.rows != N.cols:
|
||||||
|
raise ValueError("N muss eine quadratische Matrix sein")
|
||||||
|
Q_xx = N.inv()
|
||||||
|
return Q_xx
|
||||||
|
|
||||||
|
|
||||||
def berechne_Qvv(self, A: sp.Matrix, P: sp.Matrix, Q_xx: sp.Matrix) -> sp.Matrix:
|
def berechne_Qvv(self, A: sp.Matrix, P: sp.Matrix, Q_xx: sp.Matrix) -> sp.Matrix:
|
||||||
Q_vv = P.inv() - A * Q_xx * A.T
|
Q_vv = P.inv() - A * Q_xx * A.T
|
||||||
return Q_vv #Kofaktormatrix der Beobachtungsresiduen
|
return Q_vv #Kofaktormatrix der Beobachtungsresiduen
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2629
Zwischenergebnisse/Qll_Numerisch.csv
Normal file
2629
Zwischenergebnisse/Qll_Numerisch.csv
Normal file
File diff suppressed because one or more lines are too long
2629
Zwischenergebnisse/Qll_Symbolisch.csv
Normal file
2629
Zwischenergebnisse/Qll_Symbolisch.csv
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user