RE: [OSGeoJapan-discuss]日本測地系からWGS 84への変換方法

Osamu Inoue osamu.inoue @ autodesk.com
2010年 8月 17日 (火) 00:27:53 EDT


井上です。こんにちは。
岩崎様、Bravo Astro様、皆様:

座標系変換も精度を追及していくと、どんどんややこしくなってきます〜〜


座標系の話を補足すると、、
どうしても厳密にというのであれば、旧測地系ー>新測地系(JGD2000)->WGS84という手続きが必要になります。旧測地系ー>JGD2000がやっかいで、
単純投影変換ではたとえ+towgs84で設定した楕円体間変換をサポートしたプログラムでも地方によって数メートルの誤差がでます。これは明治以来
の測量誤差や地殻変動を合わせて変換しなくてはならないためです。

このあたりの話の概要は地理院さんのHP  http://www.gsi.go.jp/LAW/G2000-g2000.htm を参照してみてください。
さらにWGS84とJGD2000の間でも数十センチメートル(こんなのいいやんと思う人がほとんどだと思いますが。。)違います。

WGS84とJGD2000の違いを無視すると、

国土地理院ではこのメッシュ変換に対応したWindowsのプログラムTKY2JGD http://vldb.gsi.go.jp/sokuchi/program.html があります。
(ソースコード(VB)も含め無償公開(ただしソース・コードを頒布・変更する場合申請必要))
このプログラムは指定されたフォーマットのテキストファイルを読み込んで、結果をテキストファイル新旧座標系変換するGUIのプログラムです。
Shapeそのままではだめなんで今回のお話では使えないのですが。。


また、ProjとおなじOSGeo MetaCRSプロジェクトのサブプロジェクトとしてCS-Mapがあります。
http://trac.osgeo.org/metacrs/

異なる楕円体間の変換や、旧日本測地系<−>世界測地系のメッシュ変換を行う高精度の変換ライブラリです。

MapGuide Open Sourceはこのライブラリを実装しているので、旧日本測地系のSHPを新測地座標系へリアルタイム変換してWebに配信ができます。
が、、、、変換したファイルを取得することはできません。。っということで今回のお話ではこれもだめですかね。。

このライブラリを実装しているパッケージソフトウェアでAutoCAD Mapがあって、Shapeファイルの変換(旧測地系ー>JGD2000->WGS84まで)は
簡単にできるんですが。。







-----Original Message-----
From: osgeojapan-discuss-bounces @ lists.osgeo.org [mailto:osgeojapan-discuss-bounces @ lists.osgeo.org] On Behalf Of Bravo Astro
Sent: Tuesday, August 17, 2010 8:48 AM
To: Nobusuke Iwasaki
Cc: OSGeoJapan-discuss @ lists.osgeo.org
Subject: Re: [OSGeoJapan-discuss]日本測地系からWGS 84への変換方法

岩崎様
ご教授ありがとうございます。
座標変換といっても、Proj.4には難しい話があるのですね。
   Bravo Astro
----- Original Message ----- 
From: "Nobusuke Iwasaki" <niwasaki @ affrc.go.jp>
To: "Bravo Astro" <mnara-260116 @ kamakuranet.ne.jp>
Cc: <OSGeoJapan-discuss @ lists.osgeo.org>
Sent: Tuesday, August 17, 2010 12:55 AM
Subject: Re: [OSGeoJapan-discuss]日本測地系からWGS 84への変換方法


> Bravo Astroさま,みなさま
>
> 岩崎です。
> QGISの場合,「カスタムCRS」を使って設定することが出来ます。
> メニューの「設定」から「カスタムCRS」を選択して下さい。
>
> 名称とパラメータが表示されると思いますので,緯度経度座標系であれば,例えば
> 名称:Tokyo_LatLon
> パラメータ:+proj=longlat +ellps=bessel
> +towgs84=-146.336,506.832,680.254,0,0,0,0 +no_defs
>
> と入力して,フロッピーディスクマークをクリックして保存してもらえればOKで
> す。あとは,旧測地系のファイルを開く場合に,指定してもらえればOKです。
> (UTM座標系の場合,またちょっと設定方法が違いますが)
>
> ただし,注意が必要なのですが,この方法では日本測地系と世界測地系の間の正
> 確な変換は出来ないようです。これは,変換ライブラリであるProj.4が「異なる
> 楕円体間の変換」の変換をサポートしていないためのようです。たぶんRの変換
> もproj.4を使っていると思われますので,同様の問題があるかもしれません。
>
> どなたか,内容について補足や,「正確な」変換が出来るライブラリ等について
> 情報をご存じでしたら,よろしくお願いします。
>
> #オートデスクさんがなんかそういうライブラリを持っているというお話を聞い
> た気もするのですが・・・。
>
>
> On Sat, 14 Aug 2010 14:58:32 +0900
> Bravo Astro <mnara-260116 @ kamakuranet.ne.jp> wrote:
>
>> OSGeoの皆様
>> Bravo Astroです。QGIS1.5を使用しています。
>> 初歩的質問で申し訳ありません。
>>
>> 日本測地系シェープファイルからWGS 84シュープファイルへの変換方法を教えてください。
>> ここギコさんのHP
>> 

http://kokogiko.net/m/archives/002049.html


>> によりますと、単に楕円体をベッセルからWGS84に変換すだけでは不十分で
>> 楕円体重心のオフセット
>> +towgs84=-146.336,506.832,680.254
>> も考慮する必要があるということです。
>> この+towgs84をQGISのどこで設定すればよいのかわかりません。
>> ちなみに、Rでの変換は次のようにしています。(shift JISのシェープファイルを使用)
>> library(maptools)
>>
>> library(rgdal)
>>
>> pj<-CRS("+proj=longlat +ellps=bessel +towgs84=-146.336,506.832,680.254
>> +no_defs")
>>
>> map<-readShapePoly("kanagawa_murakami.shp",proj4string=pj)#シェープファイルを日本測地系で読み込む
>>
>> pj3<-CRS("+proj=longlat +ellps=WGS84 +no_defs")#WGS84を定義する。
>>
>> map3<-spTransform(map,pj3)# WGS84へ変換
>>
>> writePolyShape(map3,"kanagawa_murakami_wgs84.shp")#シェープファイル出力
>>
>> 誤りがあれば、ご指摘ください。
>>
>> よろしくお願いします。
>>
>>
>
> 



OSGeoJapan-discuss メーリングリストの案内