Bei der Vermessung wird das Ergebnis nicht durch Breiten- und Längengrade ausgedrückt, sondern durch die Koordinatenwerte einer zweidimensionalen Ebene, die als orthogonales Koordinatensystem der Ebene bezeichnet wird. Dies ist ein Memo darüber, wie die gegenseitige Konvertierung durchgeführt wird.
Derzeit werden in Japan 19 orthogonale Koordinatensysteme verwendet. ("Leicht verständliches orthogonales Koordinatensystem der Ebene" vom National Land Research Institute)
Die Konvertierung des Koordinatensystems klingt einfach, ist es aber
Es ist "anders" als die Geschichte. [Gauß-Kruger-Projektion](https://ja.wikipedia.org/wiki/%E3%82%AC%E3%82%A6%E3%82%B9%E3%83%BB%E3%82%AF % E3% 83% AA% E3% 83% A5% E3% 83% BC% E3% 82% B2% E3% 83% AB% E5% 9B% B3% E6% B3% 95) Ich konnte jedoch nicht dorthin gelangen, da die Formel kompliziert war.
Zuerst habe ich es als einfache Rotationsberechnung wie oben missverstanden, und es war mir peinlich, zurück zu denken, als ich mit Leuten um mich herum sprach und sagte: "Es ist so eine einfache Berechnung."
Sie können die vom National Land Institute bereitgestellte für die Konvertierung verwenden. (Wie erwartet eine öffentliche Einrichtung!)
Zunächst können Sie die Koordinatenwerte zur Konvertierung direkt in den Browser eingeben.
https://vldb.gsi.go.jp/sokuchi/surveycalc/surveycalc/bl2xyf.html
Es kann auch über die WEB-API verwendet werden. Hier finden Sie die Funktionen und Beschreibungen. Es gibt auch einen Hinweis, dass es ein Limit von 10 Mal in 10 Sekunden von derselben Adresse gibt, damit der Zugriff nicht konzentriert wird.
https://vldb.gsi.go.jp/sokuchi/surveycalc/main.html
Dies ist ein Beispiel für das Extrahieren durch Angabe der Nummer des ebenen orthogonalen Koordinatensystems.
use_gsi_webapi.py
import requests
from numpy import round
lat, lon = 35.71, 139.74
url = "http://vldb.gsi.go.jp/sokuchi/surveycalc/surveycalc/bl2xy.pl?"
params={'latitude':round(lat, 8), 'longitude': round(lon, 8), "refFrame":2, "zone": 9, 'outputType':'json'}
res = requests.get(url, params=params)
if res.status_code == requests.codes.ok:
print(res.json())
Hier wird folgendes Wörterbuch zurückgegeben:
{'OutputData': {
'publicX': '-32170.0990',
'publicY': '-8445.1361',
'gridConv': '0.054477778',
'scaleFactor': '0.99990088'}}
EPSG
Japans ebene orthogonale Koordinatensystemnummern werden von Japan festgelegt, international jedoch als EPSG. International wird es von EPSG anstelle der Nummer des ebenen rechteckigen Koordinatensystems bezeichnet. (Zum Beispiel, wenn Sie Metashape verwenden, eine Foto-Vermessungssoftware.)
EPSG | Vermessungssystem |
---|---|
EPSG:4326 | WGS 84 |
EPSG:6668 | JGD2011 |
EPSG:6669 | JGD2011 / Japan Plane Rectangular CS I |
EPSG:6670 | JGD2011 / Japan Plane Rectangular CS II |
EPSG:6671 | JGD2011 / Japan Plane Rectangular CS III |
EPSG:6672 | JGD2011 / Japan Plane Rectangular CS IV |
EPSG:6673 | JGD2011 / Japan Plane Rectangular CS V |
EPSG:6674 | JGD2011 / Japan Plane Rectangular CS VI |
EPSG:6675 | JGD2011 / Japan Plane Rectangular CS VII |
EPSG:6676 | JGD2011 / Japan Plane Rectangular CS VIII |
EPSG:6677 | JGD2011 / Japan Plane Rectangular CS IX |
EPSG:6678 | JGD2011 / Japan Plane Rectangular CS X |
EPSG:6679 | JGD2011 / Japan Plane Rectangular CS XI |
EPSG:6680 | JGD2011 / Japan Plane Rectangular CS XII |
EPSG:6681 | JGD2011 / Japan Plane Rectangular CS XIII |
EPSG:6682 | JGD2011 / Japan Plane Rectangular CS XIV |
EPSG:6683 | JGD2011 / Japan Plane Rectangular CS XV |
EPSG:6684 | JGD2011 / Japan Plane Rectangular CS XVI |
EPSG:6685 | JGD2011 / Japan Plane Rectangular CS XVII |
EPSG:6686 | JGD2011 / Japan Plane Rectangular CS XVIII |
EPSG:6687 | JGD2011 / Japan Plane Rectangular CS XIX |
Obwohl es sich um eine Informationsquelle handelt, verstehe ich die Herkunft der Oberfamilie und der Verwaltungsorganisation nicht gut. Das Folgende fühlt sich wie Autorität an.
Ich habe früher versucht, die WEB-API zu verwenden, dies kann jedoch auch über die Python-Bibliothek erfolgen. Ich erinnere mich nicht, dass es mir schwer gefallen ist, es zu installieren.
test_webapi.py
from pyproj import Transformer
lat, lon = 35.71, 139.74
wgs84_epsg, rect_epsg = 4326, 6677
tr = Transformer.from_proj(wgs84_epsg, rect_epsg)
x, y = tr.transform(lat, lon)
print(x, y)
Beim Ausführen erhalten Sie:
-32170.09900022997 -8445.136058616452
Ich kenne die gültigen Zahlen nicht, aber sie stimmen mit den Ergebnissen des Geographical Survey Institute überein. (4 Stellen nach dem Dezimalpunkt, 0,1 mm!)
Auf den Straßen wurde die Verwendung von CRS vorgestellt, aber als ich versuchte, es zu verwenden, ...
test_use_pyproj.py
import pyproj
wgs84=pyproj.CRS("EPSG:4326")
jgd2011_9 = pyproj.CRS("EPSG:6677")
lat, lon = 35.71, 139.74
print( pyproj.transform(wgs84, jgd2011_9, lat, lon) )
Ich erhalte eine Warnung, wenn ich es ausführe, aber ich erhalte das gleiche Ergebnis.
/usr/bin/ipython3:1: DeprecationWarning: This function is deprecated. See: https://pyproj4.github.io/pyproj/stable/gotchas.html#upgrading-to-pyproj-2-from-pyproj-1
(-32170.09900022997, -8445.136058616452)
Ich denke, das ist wahrscheinlich der alte Weg. Ich muss das Tutorial sorgfältig lesen! https://pyproj4.github.io/pyproj/stable/examples.html
Usw. (2020/08/08)
Recommended Posts