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

地理空間データ抽象化ライブラリ(GDAL)画像のモザイク化、再投影、ワーピングユーティリティ。

5
180子午線を切断して、ラスターを0 360から-180 180に再投影する方法
0〜360の経度の座標系を持つジオティフラスターイメージがあります。画像の水平方向の中心は180経度です。下の画像をご覧ください: -180 180経度範囲のEPSG:4326 SRSに変換したい。そして、画像の中心がグリニッジ子午線(0)になるようにします。このsrsは非常に広く使用されていると思います。結果は次のようになります。 そこで、gdalwarpコマンドを使用して再投影します。 gdalwarp -s_srs '+proj=latlong +datum=WGS84 +pm=180dW' -t_srs EPSG:4326 test_col.tif test_4326.tif しかし、より大きなサイズ(より多くのピクセル)とEPSG:4326メタデータを持つTIFFのみを取得します。画像自体は、最初のものと同じに見えます。しかし、私はそれが半球を交換することを期待しています。 質問は-経度0の中心で厳密に-180 180 EPSG:4326になるように画像をgdalwarpする方法です。 これは私の初期ファイルのgdalinfoです: Origin = (-0.102272598067084,89.946211604095552) Pixel Size = (0.204545196134167,-0.204423208191126) Metadata: AREA_OR_POINT=Area Image Structure Metadata: INTERLEAVE=BAND Corner Coordinates: Upper Left ( -0.1022726, 89.9462116) ( 0d 6' 8.18"W, 89d56'46.36"N) Lower Left ( -0.1022726, -89.9462116) ( …

3
シェープファイルとともにgdalwarpカットライン
シェイプファイルジオメトリに従ってラスターファイルをクリップしようとしています。私は次のコードを使用しています gdalwarp -cutline INPUT.shp INPUT.tif OUTPUT.tif ただし、シェープファイルジオメトリ範囲外の黒色になります。ここで例を挙げています。クリップする最初の画像。2番目の画像は結果のラスタ​​ーですが、ジオメトリの外側がnullになる3番目のラスターが必要です。 1枚目の画像:INPUT Raster 2番目の画像:OUTPUTラスター 3枚目の画像:このような出力を取得したい
26 gdal  gdalwarp 

1
gdal Pythonバインディングを使用したgdalwarpの結果の複製
GDAL pythonバインディングを使用して再プロジェクト/リサンプリングを試みていますが、コマンドラインユーティリティからの結果と比較してわずかに異なる結果が得られていますgdalwarp。 短い例については、以下の更新を参照してください このスクリプトは、Pythonのアプローチを示しています。 from osgeo import osr, gdal import numpy def reproject_point(point, srs, target_srs): ''' Reproject a pair of coordinates from one spatial reference system to another. ''' transform = osr.CoordinateTransformation(srs, target_srs) (x, y, z) = transform.TransformPoint(*point) return (x, y) def reproject_bbox(top_left, bottom_right, srs, dest_srs): x_min, y_max = top_left …
20 python  gdal  gdalwarp  numpy 

1
gdalwarpで通常のファイルサイズの膨張?
を使用gdalwarpし-tapて多数のラスタを(グリッドを介して)グリッドに配置した後、出力ラスタが元のラスタよりも大幅に大きいことに気付きました。かなり徹底的なWeb検索により、このTracの問題が判明しました。 フランク・ウォーマーダムはその理由を説明しました: 「慎重に検討すると、問題のファイルの違いは、gdal_translateがTIFFWriteScanline()インターフェースを使用してGTiffDataset :: CreateCopy?()内から出力ファイルを書き込み、これが最終的な「ストリップ」画像領域を完成させるために必要なファイル。ただし、gdalwarpはblockioインターフェイスを通過し、ファイルの終わりから落ちる部分も含めて、完全な最終ストリップを書き込みます。」 ただし、このTracの問題は7年前のものであり、GDALユーティリティにいくつかの変更が加えられたことを知っgdalwarpています。上記の理由がまだ当てはまるかどうか、そして私が見ているファイルサイズの増加が「正常」かどうかを知りたいのです。ここでの「通常」という言葉は、当然のことと予想されることを意味するかもしれませんが、より重要なことは、出力ラスタファイルのサイズを小さくするなど、影響を軽減するためにできることはありますか?以下は、私が経験しているファイルサイズの膨張の表です。 Input File Size (bytes) Output File Size (bytes) Inflation 1437380431 1698334217 18% 1428001178 1698334433 19% 41683165 137036637 228% 入力TIFFファイルはArcGISで作成されたため、外部のワールドファイル、XMLおよびDBFファイルがありますが、これらはファイルサイズの違いを補うものではありません。gdalwarpこれらすべてのケースで使用した呼び出しのサンプルを次に示します。実際の実行はPythonによって処理されましたsubprocess(subprocess.Popen): $ gdalwarp -tap -tr 30 30 -t_srs "+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs" -co "COMPRESS=LZW" input_file.tif output_file.tif まれに圧縮により大きなファイルが作成されることを理解していますが、LZW圧縮を使用しなくても効果は同じです。表の比率は、LZW圧縮の場合です。

3
モザイクのgdalwarpとgdal_mergeの違いは何ですか
それぞれ約100 MBの約20個のdem tiffをマージしたかったので、gdalwarpを使用しました(仮想ファイルオプションについて知っています)。 gdalwarp $(list_of_tiffs) merged.tiff ただし、このコマンドには非常に長い時間がかかり、約15分後にセットから5番目の画像を処理していました。終了します。 次に、gdal_merge.pyスクリプトがモザイクにも使用できることを発見し、試してみました。 gdal_merge.py $(list_of_tiffs) 3分以内に完了しました。 両方のコマンドで同じ結果が得られると思っていたので、結果が同じであるとgdalwarpに時間がかかるのはなぜですか?

3
Gdal:別のラスターでラスターをクリップ
私は、マルチバンドジオティフラスターファイルのバッチを同じ(より小さい)領域にトリミングする簡単なユーティリティを書いています。gdalwarpを使用すると、単一ポリゴンのクリッピングシェープファイルを使用してファイルを簡単にトリミングできます。 gdalwarp -cutline clipper.shp -crop_to_cutline input.tif output.tif ただし、クリップする実際の領域は、最初は常にシェイプファイルではなく、別のジオティフラスターファイルによって定義されます。そのラスターの範囲をクリッピングファイルとして使用できればいいのですが、どうすればよいかわかりません。当然のことながら、以下は機能しません(エラーは発生せず、何も生成されません)。 gdalwarp -cutline clipper.tif-crop_to_cutline input.tif output.tif だから、私の質問は、ラスターを提供する方法はありgdalwarp -cutlineますか?あるいは、別のラスターを使用してラスターをクリップできる別のgdal関数がありますか?これらのどちらも不可能な場合、ラスタの範囲によって定義された単一のポリゴンでシェープファイルを作成する非常に簡単な方法はありますか? このコードは、より広範なpythonスクリプトにラップされるため、コマンドラインのgdalユーティリティまたはgdalのPythonバインディングを使用できます。 補足として、QGISのラスターの範囲をカバーするクリッピングシェープファイルを簡単に作成できることを知っています。簡単な解決策が見つからない場合はそれを行うかもしれませんが、最終的には大規模な自動分析の一部として数百ではないにしても数十の領域でこのユーティリティを使用することになりますので、面倒なことはしたくないと思います非常に簡単な場合でも手動ステップ。
14 python  raster  gdal  clip  gdalwarp 

3
QGIS 3.0でGDAL / OGRコンソールコールを編集する方法は?
QGIS 2.XXでは、ドロップダウンメニューバーツールの下部に編集可能な呼び出しボックスがあり、GUIで使用できないコマンドを手動で入力できました(鉛筆ボタンをクリックして)。3.0では、メニューバーツールは処理ツールボックスにあるGDALツールと同じであるため、より理にかなっていますが、ツール操作に簡単なコマンドを追加する方法がわかりません。添付する例はwarp (reproject)ツールです-wo CUTLINE_ALL_TOUCHED=TRUE。コマンド「」を追加します。それ、どうやったら出来るの?
13 gdalwarp  qgis-3 

1
PyQGISはラスタをレンダリング画像として保存し、GDALツールを使用します
QGis Save Raster as Rendered Imageのコードを使用しようとしました。iラスターレイヤー: pipelayer = i pipeextent = pipelayer.extent() pipewidth, pipeheight = (pipelayer.width(), pipelayer.height()) piperenderer = pipelayer.renderer() pipeprovider = pipelayer.dataProvider() crs = pipelayer.crs().toWkt() pipe = QgsRasterPipe() pipe.set(pipeprovider.clone()) pipe.set(piperenderer.clone()) pipedFile = os.path.join(tempfile.gettempdir(), safeLayerName + '_pipe.tif') print pipedFile file_writer = QgsRasterFileWriter(pipedFile) file_writer.writeRaster(pipe, pipewidth, pipeheight, pipeextent, pipelayer.crs()) in_raster = pipedFile …

1
gdalを使用して画像をモザイクするときに、フェードアルファレイヤーを保持できますか?
一部の画像をgdalでモザイク処理していますが、各画像のエッジに向かってフェード/緩やかなアルファレイヤーを使用してモザイクの中央のシャープなエッジを削除することにより、最終結果を改善したいと思います。私が抱えている問題は、以下に示すように、個々の画像の緩やかなアルファレイヤーを持つ部分が、最終的なモザイクで半透明ではなく、その下の画像をマスクしていることです。 この段階的な透明度を使用して、ある画像を次の画像にフェードインすることが理想です。 モザイクを生成するために実行する手順は次のとおりです。 元の画像にgcpsを追加して位置を特定し、適切に方向付けします(各画像に順番に行われます)。 gdal_translate -of GTiff -a_srs EPSG:4326 -a_srs EPSG:4326 -gcp 1616 0 -88.2728612066 40.5175787437 -gcp <etc., etc.> <original_image_with_gradual_alpha>.tif <image_with_gradual_alpha_and_gcps>.tif 画像を適切な向きの新しいジオティフにワープします(各画像に対して順番に行われます)。 gdalwarp -s_srs EPSG:4326 -t_srs EPSG:4326 -dstnodata 0 <image_with_gradual_alpha_and_gcps>.tif <warped_geotiff_with_alpha>.tif ワープされたすべての画像を1つのモザイクにまとめます。 gdalbuildvrt -srcnodata 0 mosaic.vrt <warped_geotiff_with_alpha_root>*.tif gdal_translate mosaic.vrt mosaic.tif リンクした画像はmosaic.tifです。 サンプル入力ファイルのgdalinfo: Driver: GTiff/GeoTIFF Files: dsc00562.tif Size is 1616, 1080 …

4
日付変更線の近くでgdalwarpが世界に広がる出力を作成するのを止める方法は?
私はgdalwarpを使用して、日付線の近くのSRTMタイルを操作しています(つまり、180度、別名反時計回り)。SRTMタイルには、子午線と非常にわずかな(1/2ピクセル)オーバーラップがあります。これはgdalinfoを使用して確認できます。 gdalinfo S16W180.hgt Driver: SRTMHGT/SRTMHGT File Format Files: S16W180.hgt Size is 1201, 1201 [...] Lower Left (-180.0004167, -16.0004167) (180d 0' 1.50"W, 16d 0' 1.50"S) Upper Right (-178.9995833, -14.9995833) (178d59'58.50"W, 14d59'58.50"S) [...] そのため、ソースは日付変更線にわずかにまたがっています。 これにより、gdalwarpで問題が発生し、最終的に巨大な地球規模の出力が作成されます。 gdalwarp -t_srs "epsg:900913" S16W180.hgt test.tif gdalinfo test.tif Driver: GTiff/GeoTIFF Files: test.tif Size is 1703, 5 [...] Lower …
11 srtm  gdalwarp 

1
Gstationwarpのエラー「変換に失敗したポイントが多すぎます」を解決して、静止からランバートの共形に再マッピングするにはどうすればよいですか?
私はgdalwarpを使用して、静止からランバート正角に再マッピングしようとしています。入力データはnetcdfにあり、地理座標(度)にあります。再マップしたデータをnetcdfに出力したいと思います。入力netcdfデータに対応するvrtファイルを作成しました。Gdalwarpはnetcdfファイルを出力しますが、出力データはすべてゼロであり、次のエラーを受け取ります。 Creating output file that is 5120P x 5120L. Processing input file netcdf.vrt. ERROR 1: Too many points (441 out of 441) failed to transform, unable to compute output bounds. Warning 1: Unable to compute source region for output window 0,0,5120,5120, skipping. 0...10...20...30...40...50...60...70...80...90...100 - done. 私は次のコマンドを試みました: /usr/bin/gdalwarp -s_srs "+proj=geos +h=35785831 …

1
GDALとPythonを使用してラスタをジオリファレンスしますか?
pythonおよびを使用してラスターを地理参照したいGDAL。私の現在のアプローチは、地上管制点の醜いリストを呼び出しgdal_translateてgdalwarp使用os.systemすることです。私はこれを内でネイティブに行う方法を本当に望んでいますpython。 これは私が使用している現在のプロセスです: import os os.system('gdal_translate -of GTiff -gcp 1251.92 414.538 -7.9164e+06 5.21094e+06 -gcp 865.827 107.699 -7.91651e+06 5.21104e+06 "inraster.tif" "outraster1.tif"') os.system('gdalwarp -r bilinear -tps -co COMPRESS=NONE "outraster2.tif" "outraster3.tif"') インポート後にアクセスできると述べている2012年からの以前の質問と回答gdal_translateがありますgdal。が廃止されているのか、それが間違っているのかfrom osgeo import gdalはわかりませんが、実行しgdal.gdal_translateてもオプションとして表示されません。 それが存在するかどうかはわかりませんが、ラスタをpythonicの方法で変換および再投影できたら嬉しいです。例えば: # translate gcp_points = [(1251.92, 414.538), (-7.9164e+06, 5.21094e+06)] gdal.gdal_translate(in_raster, gcp_points, out_raster1) # warp gdal.gdalwarp(out_raster1, out_raster2, 'bilinear', args*) そのようなアプローチは可能ですか?

2
プロバイダーから受け取ったカスタムTIFF画像でgdal2tilesを使用してタイルを生成する方法
私たちが持っている高解像度画像のタイルを生成するのに少し苦労しています。現在の画像は非常に大きい(+ 20GB)画像で、GeoTiffファイルとして保存されています。 TMS画像プロバイダーを使用してタイルを提供し、gdal2tilesコマンドラインユーティリティを使用してタイルを生成し、Cesiumで開いて表示します。gdalinfoを使用して、画像の詳細の一部を次に示します。 Driver: GTiff/GeoTIFF Files: image.tif Size is 52250, 56119 Coordinate System is: PROJCS["WGS 84 / UTM zone 35S", GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4326"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",27], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",500000], PARAMETER["false_northing",10000000], UNIT["meters",1], AUTHORITY["EPSG","32735"]] Origin = (606276.000000000000000,7197873.000000000000000) Pixel Size = (0.500000000000000,-0.500000000000000) Metadata: AREA_OR_POINT=Area TIFFTAG_MAXSAMPLEVALUE=13165 TIFFTAG_MINSAMPLEVALUE=1 TIFFTAG_RESOLUTIONUNIT=2 …

1
gdalwarpとprojectRasterの違い
ラスターを投影しようとしています。RにはprojectRaster()これを行うための関数があります(完全に再現可能な例の下に): # example Raster require(raster) r <- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, ncols=40, nrows=40) r <- setValues(r, 1:ncell(r)) projection(r) # project to newproj <- "+init=epsg:4714" # using raster package to reproject pr1 <- projectRaster(r, crs = CRS(newproj), method = 'bilinear') それはうまくいきます。しかし、それはかなり遅いです。 速度を上げるために、gdalwarp代わりに使用します(SSD を使用すると、ディスク/ Rへの読み書きのコストはそれほど高くありません)。 ただし、をprojectRaster()使用した結果を再現できませんgdalwarp。 # using gdalwarp to reproject tf …

3
PythonとQGISを使用して、フォルダーをループしてポリゴンごとにラスターをバッチクリップするには?
私はpythonとQGIS 2.0を使用しています。1つのポリゴンフィーチャによってフォルダー内のラスターをクリップしようとしています。私が「PyQGIS」を使用するのはこれが初めてです。以前はArcpyに慣れていました。とにかく、簡単なスクリプトが機能しないので、どんな提案でもいただければ幸いです。 import qgis.core, qgis,utils QgsApplication.setPrefixPath("C:/OSGeo4W64/apps/qgis", True) QgsApplication.initQgis() CLIP= "C:/Users/unim/Documents/Umberto/Universita/PhD/Guglielmin/Permafrost/Alta_Valtellina/Landsat_ita/study_area_foscagno.shp" INPUT_FOLDER="C:/Users/unimi/Documents/Umberto/Universita/PhD/Guglielmin/Permafrost/Alta_Valtellina/Landsat_ita/LE71930282000259EDC00" OUTPUT= "C:/Users/unim/Documents/Umberto/Universita/PhD/Guglielmin/Permafrost/Alta_Valtellina/Landsat_ita/foscagno_pyqgis/" for RASTER in INPUT_FOLDER.tif do echo "Processing $RASTER" gdalwarp -q -cutline CLIP -crop_to_cutline -of GTiff RASTER OUTPUT+ "clip_"+ RASTER done QgsApplication.exitQgis() 以下は、今までに行った改善ですが、スクリプトを機能させていませんが、近づいていると思います... import qgis.core, qgis.utils, os, fnmatch from osgeo import gdal CLIP= "C:/Users/unimi/Documents/Umberto/Universita/PhD/Guglielmin/Permafrost/Alta_Valtellina/Landsat_ita/study_area_foscagno.shp" INPUT_FOLDER= "C:/Users/unimi/Documents/Umberto/Universita/PhD/Guglielmin/Permafrost/Alta_Valtellina/Landsat_ita/LE71930282000259EDC00/DNs2Reflectance_LE71930282000259EDC00" OUTPUT= "C:/Users/unimi/Documents/Umberto/Universita/PhD/Guglielmin/Permafrost/Alta_Valtellina/Landsat_ita/Cloud_mask_AltaValtellina/clip_2_foscagno" …
9 gdal  pyqgis  gdalwarp 

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