GDALを使用してこれを行うことができ、XYZ形式を直接サポートします。座標がUTMであるかどうかは関係ありません。gdal_translateは同じ座標系で出力します。
GeoTIFFへの変換は次のように簡単です:
gdal_translate test.xyz test.tif
出力オプション(圧縮など)についてはGeoTIFFドキュメントを、使用方法の詳細についてはgdal_translateドキュメントをご覧ください。特に、-a_srs
パラメーターで座標系を指定する必要があります。
-a_srs srs_def:
出力ファイルの投影をオーバーライドします。srs_defは、通常のGDAL / OGR形式、完全なWKT、PROJ.4、EPSG:n、またはWKTを含むファイルのいずれかです。
gdal_translate -a_srs EPSG:12345 test.xyz test.tif
ヘッダー行の有無にかかわらず、カンマ/スペースで区切られた固定列幅がサポートされています。
サポートされている列区切り記号は、スペース、コンマ、セミコロン、および表です。
$ head -n 2 test_space.xyz
x y z
146.360047076550984 -39.0631214488636616 0.627969205379486084
$ gdalinfo test_space.xyz
Driver: XYZ/ASCII Gridded XYZ
Files: test_space.xyz
Size is 84, 66
Coordinate System is `'
Origin = (146.359922066953317,-39.062997159090934)
Pixel Size = (0.000250019195332,-0.000248579545455)
Corner Coordinates:
Upper Left ( 146.3599221, -39.0629972)
Lower Left ( 146.3599221, -39.0794034)
Upper Right ( 146.3809237, -39.0629972)
Lower Right ( 146.3809237, -39.0794034)
Center ( 146.3704229, -39.0712003)
Band 1 Block=84x1 Type=Float32, ColorInterp=Undefined
Min=0.336 Max=0.721
$ head -n 2 test_commas.xyz
x, y, z
146.360047076550984, -39.0631214488636616, 0.627969205379486084
$ gdalinfo test_commas.xyz
Driver: XYZ/ASCII Gridded XYZ
etc...
$ head -n 2 test_formatted.xyz
x y z
146.3600471 -39.06312145 0.627969205
$ gdalinfo test_formatted.xyz
Driver: XYZ/ASCII Gridded XYZ
etc...
私が知っている唯一の落とし穴は次のとおりです。
- ドライバーがファイル全体をスキャンしてデータセットのサイズと空間解像度を決定する必要があるため、大きなデータセットを開くのに時間がかかる場合があります。そして
ファイルは(Y、次にXで)正しくソートする必要があります。
同じY座標を持つセルは、連続する行に配置する必要があります。同じY座標値の場合、データセット内の行は、X値を増やして整理する必要があります。ただし、Y座標の値は増減できます。
$ head -n 5 test.csv
x,y,z
146.3707979,-39.07778764,0.491866767
146.3787985,-39.07157315,0.614820838
146.3637974,-39.07132457,0.555555582
146.3630473,-39.07579901,0.481217861
$ gdalinfo test.csv
ERROR 1: Ungridded dataset: At line 3, too many stepY values
gdalinfo failed - unable to open 'test.csv'.
$ tail -n +2 test.csv| sort -n -t ',' -k2 -k1 > test_sorted.xyz
$ head -n 5 test_sorted.xyz
146.3600471,-39.07927912,0.606096148
146.3602971,-39.07927912,0.603663027
146.3605471,-39.07927912,0.603663027
146.3607971,-39.07927912,0.589507282
146.3610472,-39.07927912,0.581049323
$ gdalinfo test_sorted.xyz
Driver: XYZ/ASCII Gridded XYZ
etc...