極立体図の地理変換?


16

現在、CANGRID気候データ(Surfer Grid ascii、「。grd」ファイルとして提供)をArcGISにインポートしています。グリッドのサイズは、95行125列です。メタデータは、緯度/経度の原点(左下隅)、セルサイズ(50km)に加えて、中央子午線(110度W)と原点の緯度(60度N)を備えた極立体図としてのノートの投影を提供します。

最初に.grdを.asciiおよび.fltとしてラスターに変換しようとして失敗した後、GDALを使用して範囲と投影を設定することができましたが、データセットは意図した領域の境界に正しく整列しません。下の画像をご覧ください。

このアライメントの欠如を説明することができる、ポーラーステレオグラフィックの受け入れられた地理変換はありますか?

たとえば、使用すべき特定の変換係数または回転はありますか?

データセットのサンプルファイルは次のとおりです。「t201113.grd」

ここに私が現在GDALで使用しているコードがあります

ds = gdal.Open("t201113.grd")
array = ds.ReadAsArray()

x_rotation = 0
y_rotation = 0
xres = 1
yres = -1

llx = -129.8530
lly = 40.0451
ulx = -175.144
uly = 71.385

input_osr = osr.SpatialReference()
input_osr.ImportFromWkt(ds.GetProjection())

wgs84_osr = osr.SpatialReference()
wgs84_osr.ImportFromEPSG(4326)

wgs_to_nps_trans = osr.CoordinateTransformation(wgs84_osr, input_osr)
x, y, z = wgs_to_nps_trans.TransformPoint(llx,lly)

geo_transform = [ x, xres, x_rotation, y, y_rotation, yres ]

ncol = ds.RasterXSize
nrow = ds.RasterYSize

out_driver = gdal.GetDriverByName("HFA")
out_ds = out_driver.Create(t201113.img", ncol, nrow, 1, gdal.GDT_Float32)

out_ds.SetGeoTransform(geo_transform)

out_prj = 'PROJCS["North_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",60.0],UNIT["50_Kilometers",50000.0]]'

out_ds.SetProjection(out_prj)

out_ds.GetRasterBand(1).WriteArray(array)
out_ds.GetRasterBand(1).SetNoDataValue(1.70141e+038)
out_ds.FlushCache()
out_ds = None
`

また、入力、つまり「GetProjection()」から定義される投影情報は次のとおりです。

'PROJCS ["North_Pole_Stereographic"、GEOGCS ["GCS_WGS_1984"、DATUM ["WGS_1984"、SPHEROID ["WGS_1984"、6378137.0,298.257223563]]、PRIMEM ["Greenwich"、0.0]、UNIT ["Degree"、0.0174532925199433]]、 PROJECTION ["Stereographic"]、PARAMETER ["False_Easting"、0.0]、PARAMETER ["False_Northing"、0.0]、PARAMETER ["Central_Meridian"、0.0]、PARAMETER ["Scale_Factor"、1.0]、PARAMETER ["Latitude_Of_Origin"、90.0 ]、UNIT ["50_Kilometers"、50000.0]] '

そして、入力GeoTransform:

(-0.5, 1.0, 0.0, 94.5, 0.0, -1.0)

また、長いグリッド座標も提供されます。投影座標系で表示すると、次のようになります。ジオトランスフォームが左下(黄色)または右上(ピンク)座標の座標で定義されている場合、範囲を効果的に設定できますが、ラスター全体で位置合わせの問題が残ります。

ここに画像の説明を入力してください


ArcGISを使用している場合は、Stereographic North Poleに切り替えて、標準緯線を60.0に設定します。ArcGISステレオグラフィックの実装では、プロジェクトをどこにでも集中させることができるため、標準の平行線ではなくスケール係数を使用します。
mkennedy 14年

ありがとう@mkennedy-「North Pole Stereographic」プロジェクト(WKID 102018)のことですか?この投影法を使用して原点の緯度と中央子午線の値を設定しましたが、まだ同じ問題があります。おそらく、あなたは別の投影を参照していますか?
jsnider 14年

いいえ、投影(メソッド)がStereographic_North_Poleであるものが必要です。正確なPCSがあるとは思わない。3995または3413から変更してみてください。–
mkennedy

1
メタデータは、「ファイルgrid_pnt_lls.txtには各x / y(0,0 =グリッドのSWコーナー)の緯度/経度がリストされている」ことに注意してください。このファイルを手にすると、このグリッドを任意の座標系に再投影し、そこから先に進むことができます。
whuber

1
ベクターレイヤーをテスト用にどこでダウンロードできますか?
ファリドチェラギ

回答:


2

コメントが長すぎるため、これは@Matejの回答に同行することです。

  1. 「.grd」データをArcGISに追加します。
  2. 「ラスターから他の形式」機能を使用して、.grdファイルをESRII GRID形式に変換します。これは重要です。ArcGISのラスター関数のほとんどは、この形式でのみアクセス可能であるためです。他の形式で使用すると、通常は非常に遅くなります。

  3. ファイルに関連付けられた投影ファイルが既にあるため。変換された新しいデータを投影するのではなく、その投影を定義します。ArcToolbox>データ管理ツール>投影と変換>投影の定義。事前定義されたポーラーステレオグラフィックESRIIプロジェクションに移動し、そのパラメーターがメタデータで指定されたものと一致するかどうかを確認して(一致しない)、@ Matejに従って変更できます。ここでのみ-変更するのではなく、中央子午線と原点の緯度を変更したNPS投影に基づいて新しいものを作成し、ディスクに保存してから、新しい投影に移動し、投影を定義するときにそれを使用します。これは、データフレームの座標系を設定するために使用するときに、オンザフライ変更を後で使用できないためです。



1

画像を再投影する必要はないと思います。次のことのみを行います。

  1. ベースマップの投影を定義(変更)します
  2. 指定された場所への画像のジオリファレンス(シフト)

画像(grd)はすでにNorth Pole StereoGraphic投影法にあり、画像に合わせてベースマップを調整する方法を示すだけです。

ステップ1

元の北極ステレオグラフィック投影(WKID:102018)を変更して、原点と中央子午線の緯度を調整します。

ここに画像の説明を入力してください

ステップ2:

左下隅を指定された座標(lat、lon)に設定して、grdファイルをジオリファレンスします。ジオリファレンスを更新すると、同じフォルダーに.gdwxファイルが作成されます。SWコーナーを(40.0451、-129.853)に割り当てると、ファイルの内容は次のようになります。

50000
0
0
-50000
-1730620.4315
2744092.9724

編集:上記のワールドファイルは、セルサイズと提供されたSWコーナーの位置に基づいて手動で変更されています-5行目と6行目は、画像の左上のピクセルの計算された位置を表します。画像の位置がわずかに変化しました。

上記の値は、指定された場所に画像を配置(シフト)し、スケールを定義します。

そして、これは出力です: ここに画像の説明を入力してください

これが適切に調整されていないようであれば、画像のSWコーナーに提供された座標に疑問を呈します。画像のNEコーナーなどの座標にアクセスできる場合は、2つ(またはそれ以上)のポイント間で画像を拡大縮小および回転させる変換パラメーターを再計算できます。


.gdwxファイルはワールドファイルですか?その場合、リンクされたウィキの記事では、5行目と6行目は左上のピクセルを参照していると書かれています。南西(左下)ピクセルに設定することを提案していますか?
カーククイケンダル

いいえ。readmeファイルに記載されているSWコーナーの場所のみを指定しました。ファイルの構造は、ワールドファイルのように見えます。これは、NWコーナーの位置を計算して保存した可能性のあるArcMapのジオリファレンスツールを使用して生成されたもので、まだチェックされていません。
マテイ

1
はい、今チェックしました。.gdwxの保存場所は左上隅です。
マテイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.