タグ付けされた質問 「gdal」

GDAL(地理空間データ抽象化ライブラリ)は、ラスター空間データ形式を処理するためのオープンソースのトランスレータライブラリとコマンドラインユーティリティのセットです。ライブラリとして、サポートされているすべての形式の単一の抽象データモデルを呼び出し側アプリケーションに提供します。また、データの変換と処理に役立つさまざまなコマンドラインユーティリティが付属しています。

2
コマンドラインからではなく、Pythonスクリプトから呼び出されたときにgdalwarpが空のラスターを生成する
Pythonでgdalwarpを使用して、いくつかのラスターデータ(すべての.tif)をより粗い解像度(.05度から.25度まで)に集約しようとしていますが、コマンドは機能しません。広範囲の値を持つ出力を取得する代わりに、出力のすべての値は0です。解像度とピクセル深度/タイプは正しいですが、値は正しくありません。 gdalwarpコマンドのドキュメントは次のとおりです:http ://www.gdal.org/gdalwarp.html 2つの入力ファイルがあり、最大.25度の解像度で集約し、いくつかの出力を生成します。 'NDVI_raster':最初の入力は、NDVIを表す16ビットの符号付きラスターで、値の範囲は-10,000〜10,000、nodata値は-15,000です。 'nodata_mask':2番目は、NoDataマスク、32ビット浮動小数点数で、1 =「正常」データの値、0 = NoDataです。 「NDVI_raster」を入力として使用して、それぞれが異なる統計を表す7つの異なる出力を生成します。これを行うには、gdalwarpを7回呼び出します。そのたびに、リサンプリング方法(-r)を次のいずれかに設定します:平均、モード、最大、最小、中央値、q1、q2。出力をNDVI_ave.tif、NDVI_mode.tifなどと呼びます。現在、GDAL 1.10.1を使用しています。これは、平均とモードのみを許可するため、これら2つの統計のみを使用してテストしています。 「nodata_mask」を入力として使用して、最終的にQAL(品質保証レイヤー)を生成したいと思います。これを行うには、gdalwarpを使用し、リサンプリングモードを「平均」に設定して、最大.25度まで集計します。これにより、各ピクセルは、入力からの良好なピクセル/合計ピクセルの比率を表します。出力QALを呼び出します。 これが私のコードの内容です(最初の入力の例としてモードを使用)。 os.system('gdalwarp -tr .25 .25 -r mode -srcnodata -15000 %s %s' % (NDVI_raster, NDVI_mode)) QAレイヤーの場合: os.system('gdalwarp -tr .25 .25 -r average -srcnodata -15000 %s %s' % (nodata_mask, QAL)) 結果は正しい解像度、投影、ピクセル深度のラスターですが、ピクセル値はすべて0です。 python / gdalに詳しい人は何が起こっているのか知っていますか? コマンドライン(linux)からgdalwarpコマンドを呼び出すと、目的の結果が得られます。os.systemを使用してpythonからgdalwarpを呼び出すと、空のラスターが表示されます。それで、おそらく私のgdal / pythonバインディングに何か問題がありますか? os.system経由でコマンドを呼び出す代わりに、サブプロセスを使用しました。この方法によるツールもスムーズに実行されているように見えますが、結果は同じで、0でいっぱいのラスターです。 gdalwarp呼び出しをbashシェルスクリプトに入れて、Pythonからそのシェルスクリプトを呼び出してみましたが、結果は0ではなく-1の束になります。奇妙なことに、私は以前にそれをテストしたことがあり、それが機能することはかなり確かですが、テストがサーバーから削除されてしまい、何らかの理由で再作成できなくなりました。 gdalwarpコマンドをbashシェルスクリプトに入れ、コマンドラインからそのシェルスクリプトを呼び出すと、目的の結果が得られます。ただし、Pythonから同じシェルスクリプトを呼び出すことはできません。Pythonに問題があるようですが、何をどのように修正すればよいですか?
8 python  gdal  gdalwarp 

1
C#/。NET 4.5.1のGDALバインディングをインストールするにはどうすればよいですか?
C#gdalバインディングを使用しようとしていますが、C#コードで「DLL 'gdal_wrap'をロードできません:指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E)」というエラーが表示されます。 私はgdal_csharp.dllの依存関係を確認しましたが、すべて問題ありません。際立っていた2つの点は、csharp dllが32ビットdllであるのに対し、すべての依存関係は64ビットシステム(私のマシンには64ビットCPUが搭載されている)に対するものです。また、ファイルieshims.dllは依存関係としてリストされていましたが、私が収集したものから、それがインストールされている必要は必ずしもありません。 zipファイルを使用して手動でファイルをインストールし、gdalコアライブラリの.msiインストーラーを使用してみました。システムパスにgdal実行可能ファイルへのパスを必ず追加しました。 ここからバイナリをダウンロードしました:http : //www.gisinternals.com/query.html? content=filelist&file =release-1800-x64-gdal-1-11-1-mapserver-6-4-1.zip そして、私はインストール手順についてこのガイドに大まかに従いました:http : //vipassanaandenvironmentalinformatics.blogspot.co.nz/2013/03/getting-started-with-c-and-gdal.html 私はVisual Studio 2013を使用していますが、そのバイナリは上記のサイトで入手できます。
8 gdal  c#  osgeo 

2
GDALプロセスを実行する別のPythonスクリプトにgdal_merge.pyを呼び出す
を使用gdal_merge.pyして一連の.tifファイルをマージしてから、マージしたファイルをシェープファイルの境界にクリップしたいのですが、他の多くのプロセスを実行する別の大きなスクリプトの一部としてそうしたいと思います。私はpython / GDALの初心者で、gdal_merge.py別のスクリプトを呼び出す方法がわかりません。 単純にgdal_merge.pyそのまま実行することはできませんが、多くのプロセスを実行できるスクリプトの1つのステップです。これを行うための最良の方法について何か考えはありますか?

2
PDFマップのデータをどのように使用できますか?
さまざまなサイズの円として表された多くのデータを含むスウェーデンの地図があります。マップはIllustratorからPDFとして保存され、完全に編集可能です。これらの円をタイルミルに入れて、検索可能な地理参照マップを作成する方法はありますか?予測はわかりませんが、WGS84またはSWEREF99を推測します。 頭に浮かぶ方法の1つは、スウェーデンのジオティフからジオデータを抽出し(同じ投影法でジオマップを見つけた場合)、Illustrator / Photoshopでジオマップの上にPDFマップを配置し、gdalを使用してジオデータを再度挿入することです。 これが良い方法であるか、より良い方法があるかどうかのアイデアはありますか?

1
WMS getmapリクエストをGeotiffに変換する
フォーマット機能の1つとしてgeotiffを提供しないが、PNGおよびKMZを提供するWMSサーバーにアクセスしています。 http://tds.marine.rutgers.edu:8081/ncWMS/wms?SERVICE=WMS&REQUEST=GetCapabilities&VERSION=1.3.0 私は次のいずれかになる小さなシェルスクリプトを書くことが可能であるべきだと考えています: 暗黙のSRSおよび境界ボックス情報を使用して、KMZを要求し、それをgeotiffに変換します。 PNGを要求し、WMSクエリバウンディングボックスとSRSを使用して、おそらくgdalなどを使用してgeotiffを作成します。 誰かがこのようなことをしましたか、それとももっと良い方法がありますか? ありがとう、リッチ
8 gdal  wms  shell 

1
Python GDAL:他のファイルからの投影でラスターとして配列を保存
データの配列があり、データポイントごとに緯度と経度がわかっています。私が持っている他のラスターと同じ投影法でGTiffとして保存したいと思います。これは私がこれまでに試したことですが、運はありません。 import numpy as np import gdal from gdalconst import * from osgeo import osr def GetGeoInfo(FileName): SourceDS = gdal.Open(FileName, GA_ReadOnly) GeoT = SourceDS.GetGeoTransform() Projection = osr.SpatialReference() Projection.ImportFromWkt(SourceDS.GetProjectionRef()) return GeoT, Projection def CreateGeoTiff(Name, Array, driver, xsize, ysize, GeoT, Projection): DataType = gdal.GDT_Float32 NewFileName = Name+'.tif' # Set up the dataset …
8 python  gdal 

1
Python GDAL:古いものからの投影を使用して新しいラスターを書き込みます
ラスターイメージを配列として読み込んだ場合、配列の値に変更を加えます。次に、配列を元の配列と同じ投影情報でラスターとして保存するにはどうすればよいですか? 特に、火星のISIS3キューブの処理を行っています。これらは、すばらしいSetWellKnownGeogCSオプションのいずれにも投影されません。おそらくこれは私の問題を幾分珍しいものにしますが、私の解決策をすべて同じように文書化する価値があると思いました。
8 python  gdal 

1
ISISからGDAL、QGIS:火星画像の地理参照
QGISを使用して火星偵察オービターコンテキストカメラからの画像を表示しようとしています。ISIS3を使用して画像をダウンロードし、マップされた.cubファイルに変換します。手順は次のとおりです。http://isis.astrogeology.usgs.gov/IsisWorkshop/index.php/Working_with_Mars_Reconnaissance_Orbiter_CTX_Data 現在、これらのISISキューブファイルをGTiffファイルにエクスポートしようとしています。QGISで表示するには、これを実行できますが、ジオリファレンスが機能していないようです。私はこれを3つの異なる方法で試しました: ISISコマンドisis2stdを使用して、tif(およびtfw)ファイルを生成します。 QGISでtifファイルを開こうとすると、投影タイプを選択するように求められます(質問、火星に適切な投影はありますか?常にWGS 84を選択しますが、私は愚かですが、もっと賢明なオプションを知りません)。 。次に、ラスターが読み込まれると、自動的にグレースケールイメージとして表示されますが、座標は度単位ではなく、ピクセル単位で表示され、範囲は数十万です。 この方法では、1 Gbに近い元の.cubから〜100 Mbのtifイメージが生成されます。 gdalを使用します:gdal_translate -of GTiff input_mapped.cub output.tif。 今回は、投影タイプを選択するように求められません。投影は「USER:100002」をとります。うまくいけば、これは、ISISカブから適切な火星投影を読み取ることができていることを意味しますか?今回は画像がグレースケールで塗りつぶされた灰色のボックスとして表示されますが、別のカラーマッピングスキームに切り替えると詳細を確認できます。繰り返しになりますが、座標は度単位ではありませんが、数十万の範囲です。 このメソッドは、元の.cubイ​​メージと同じ〜1 GbのサイズのGTiffを生成します。 QGISで直接ISIS .cubファイルを開きます。 基本的に方法2と同じ効果があります。 ファイルサイズのため、方法1のバリエーションをお勧めしますが、火星に適した投影および地理参照スキームを使用します。 編集:ジオリファレンスと、元のISIS .cubファイルでのgdalinfoの出力を次に示します。 ジオリファレンス(Python): >>>import gdal >>>from gdalconst import * >>>fn = 'P01_001356_1747_XN_05S221W.map.cub' >>>ds = gdal.Open(fn, GA_ReadOnly) >>>gt = ds.GetGeoTransform() >>>gt (-22085.510544416, 5.1698292472885, 0.0, -234679.22885141, 0.0, -5.1698292472885) gdalinfo(ターミナルから): $gdalinfo file.cub …


1
GDAL / OGRの「警告」を検出するには?
GDAL / OGRプログラムを使用してバッチスクリプトを実行すると、値1を確認することでエラーが発生したかどうかを検出できます。ERRORLEVEL Pythonまたは.NETでGDAL / OGRを使用すると、エラーが発生すると例外が発生します。 質問:実行中にが発行された かどうかをどのように検出しWarningますか? どうして? 警告が出てもプロセスが最後まで実行される可能性がありますが、予期したデータに関して出力が破損している可能性があります。私はこれらの破損をチェックするべきだと主張するかもしれませんが、私はプロセス全体を制御しているので、警告が出されたときに停止できるようにしたいと思います。
8 python  gdal  .net  ogr 

1
GDALでFileGDBのパフォーマンスが遅い
GDAL 1.9.2のコンパイルを使用して、ESRIファイルジオデータベースに多くのASPRS LASポイントファイルを書き込もうとしています。GDAL / OGRのFileGDBドライバーは、大きなファイルを書き込むときに信じられないほど遅く、800万ポイントのレコードを書き込むのに45分もかかります。SATA3ドライブでGDALを使用するFileGDBの書き込み速度は、毎秒200キロバイト程度であり、テラバイトのデータを変換しようとすると許容できないほど低速になります。 FileGDBのドキュメントで、FGDB_BULK_LOADマクロを定義すると大規模なデータセットのパフォーマンスが向上することに気付きましたが、FGDB_LIBの直後に「FGDB_BULK_LOAD = YES」というテキストを含む行を「nmake.opt」ファイルに書き込んだとき、パフォーマンスに変化はありませんでした。ライン。 確かに、FileGDBは何十億ものポイントデータレコードを格納するための理想的な方法ではありませんが、それは別の時代には不便です。FGDB_BULK_LOAD機能を正しく使用しましたか?これは、GDALビルドではなく、私のソースコードにあるはずですか? ありがとう。 更新:適切な使用法:(チャットで回答) FGDB_BULK_LOAD設定が正しくGDAL / OGR・プロセスの環境変数として格納されます。これは、Ragiが示すように、ogr exe呼び出し中にコマンドラインで設定されます。GDAL機能を使用すると、プログラムで設定することができ、全体のプロセスのために CPLSetConfigOption("FGDB_BULK_LOAD", "YES"); または現在のスレッドだけを使用して CPLSetThreadLocalConfigOption("FGDB_BULK_LOAD", "YES"); FGDB_BULK_LOADを呼び出す前に設定する必要がありますFGdbDataSource::CreateLayer()。OGRCleanupAll()この変数の設定を解除するかどうかは明確ではありませんでしたが、念のため複数回呼び出しても安全です。 このオプションを使用すると、数百万から数千万のポイントを書き込む場合のパフォーマンスが約5.5倍速くなりました。

2
GDALを使用してInt16データをバイトに変換する方法
HDF形式のInt16バンドのデータがあります。 これをGeoTIFF形式のバイトバンドに変換したいと思います。 Int16のデータ範囲は-2000〜12000なので、これをバイト範囲0〜255にマッピングします。 GDALツールでこれを行うにはどうすればよいですか?(可能な場合)それ以外の場合、これを行うPythonスクリプトをどのように記述できますか?

1
Python / GDALは離散値ラスターで一意の値を取得します
PythonとGDALを使用して、離散値ラスターの一意の値のリストを返す最も効率的な方法についてアドバイスをもらいたいと思います。 最もわかりやすい方法はラスターの属性テーブルを調べることだと思っていband.GetDefaultRAT()ましたが、属性テーブルを含むラスターデータセットのバンドで行うと(テーブルはArcCatalogに表示されます)、結果は常にNone次のようになります。 >>> rat = band.GetDefaultRAT() >>> rat == None True その場合、ラスターの各セルをスキャンして、一意の値のリストを手動で作成する必要があります。これが唯一の方法ですか? または、PythonとGDALを使用して属性テーブルを作成し、一意の値のリストを照会する方法はありますか?

2
GDAL-シンプルな最小コストパス分析の実行
gdalを使用して簡単な最小コストパス分析を実行する方法を調査しています。簡単に言うと、デムの傾きを唯一のコスト要因として使用することです。 私はpythonまたは.netバインディングを使用することを好みますが、何でも取ります。誰でも良いチュートリアルなどを提案できますか?
8 gdal  cost-path 

1
QGISはGeoRSSをリアルタイムで表示できますか?
QGISには、次の手順に従ってGeoRSSを表示する機能があります。 「ベクターレイヤーを追加...」アイコンをクリックします データソースが「ファイル」であることを確認し、GeoRSSに接頭辞「/ viscurl /」を付けたGeoRSS URLを入力します(例:/vsicurl/http://earthquake.usgs.gov/earthquakes/catalogs/eqs1day-M0.xml)。 私が抱えている問題は、新しい地震が発生したときにキャンバスが更新されないことです。更新を確認するには、qgisを終了し、qgisを再起動してから、GeoRSSをロードする必要があります。 誰かがリアルタイムでGeoRSSを表示する方法を知っていますか?この問題に対する他のFOSSソリューションについてお聞かせください。
8 qgis  gdal  georss 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.