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


2
GDALを使用してPythonの機能ごとにシェープファイルを分割しますか?
Pythonで機能ごとにシェープファイルを分割することは可能ですか?(最良の解決策は、結果のベクトルオブジェクトを一時的にディスクではなくメモリに保存できるソリューションです)。 理由:シェープファイルのいくつかの異なるサブセットでgdal rasterizeLayer関数を使用したい。この関数には、osgeo.ogr.Layerオブジェクトが必要です。 まあ、私は少し試してみましたが、次のように機能します。次のように、フィーチャごとにgdalレイヤーオブジェクトのジオメトリを取得できます。 # Load shape into gdal shapefile=str(vectorPath) layer_source = ogr.Open(shapefile) lyr = layer_source.GetLayer(0) for i in range(0,lyr.GetFeatureCount()): feat = lyr.GetFeature(i) ge = feat.geometry() このジオメトリに基づいてosgeo.ogr.layerオブジェクトを作成する方法を知る必要があります。 明確にするために。プレーンogr / gdalコードの関数が必要です!これは他の人にも興味があるようであり、セカンダリモジュールなしのソリューションが引き続き必要です(ただし、ここから来るソリューションは無料のqgis​​プラグインで使用されます)。

6
ラインシェープファイルをラスターに変換、値=セル内のラインの全長
道路ネットワークを表すラインシェープファイルがあります。このデータをラスター化して、ラスターの結果値がラスターセル内に収まるラインの全長を表示するようにします。 データはBritish National Gridプロジェクションにあるため、単位はメートルになります。 理想的には、を使用してこの操作を実行したいと思いますが、パッケージRのrasterize機能がrasterこれを達成するのに役立つと推測していますが、適用される機能がどうあるべきかわかりません。
14 raster  r  line  rasterization 

1
GDAL RasterizeLayerはすべてのポリゴンをラスターに焼き付けませんか?
GDALのRasterizeLayerを使用して、シェープファイルをラスターに焼き付けようとしています。特定のピクセルサイズを指定して、異なるシェープファイルから対象エリアラスタを事前に作成します。このAOIは、その後のすべてのラスター化(同じ数の列と行、同じ投影と地理変換)のベースとして機能します。 ただし、同じピクセルサイズと投影に基づいて、シェイプを独自のラスターに書き込むときに問題が発生します。下のリンク(画像を投稿するのに十分な担当者がいない)は、元のシェープファイルを黄褐色で示し、RasterizeLayerがデータを書き込んだ場所に濃いピンク色を示しています。淡いピンクは、濃いピンクのラスターデータのnodata値です。灰色は、シェープファイルの書き込みが完了したAOIに基づいています。 シェープファイルポリゴンの範囲を考えると、表示されるデータの下にある2つのピクセルだけでなく、下の2つの角にも書き込み値が表示されると予想されます。ただし、明らかにそうではありません。 以下は、これらを生成するために使用したコードです。すべての形状はQGISを使用して作成され、すべて同じ投影で作成されました。(表示されている写真のグリッディングは、使用しているピクセルサイズを示すためのものであることに注意してください。) from osgeo import ogr from osgeo import gdal aoi_uri = 'AOI_Raster.tif' aoi_raster = gdal.Open(aoi_uri) def new_raster_from_base(base, outputURI, format, nodata, datatype): cols = base.RasterXSize rows = base.RasterYSize projection = base.GetProjection() geotransform = base.GetGeoTransform() bands = base.RasterCount driver = gdal.GetDriverByName(format) new_raster = driver.Create(str(outputURI), cols, rows, bands, datatype) new_raster.SetProjection(projection) …

5
各セルが海までの距離を記録するラスターを作成していますか?
25メートル×25メートルの解像度でラスターを作成します。各セルには、セルの中心から計算した最も近い海岸線までの距離が含まれています。これを行うには、ニュージーランドの海岸線のシェープファイルだけです。 私はRでそれを行うためのDominic Royeのチュートリアルを試してみました... それは約1 km×1 kmの解像度まで問題ありませんが、RAMをさらに高くしようとすると、必要なRAMは私のPC(約70 GBのRAMが必要)または私がアクセスできる他のRAMで利用可能なRAM容量をはるかに超えます。とは言っても、これはRの制限だと思います。QGISがこのラスターを作成する計算効率の高い方法を持っているのではないかと思いますが、私はそれに慣れていないため、その方法を完全に理解できません。 QGISを使用してフィーチャまでの距離を持つラスターの作成を試してみましたか?QGISでそれを作成するが、それはこのエラーを返します: _core.QgsProcessingException:INPUTのソースレイヤーを読み込めませんでした:C:/..../ Coastline / nz-coastlines-and-islands-polygons-topo-150k.shpが見つかりません 理由はわかりません。 誰かが何がうまくいかないのか、これを行う別の方法について何か提案はありますか? 編集: 私が作成することを望んでいるラスターは、約59684行と40827列を持ち、LINZの年間水不足ラスターと重複します。生成されるラスターが年間の水不足のラスターよりも大きい場合、Rで切り取ることができますが... NZの海岸線のシェープファイルには、島の間に大量の海があり、これらのセルの海岸までの距離の計算には興味がありません。土地の一部を含むセルの値のみを計算したいのですが。これを行う方法、またはそれが実際に問題であるかどうかはわかりません。

1
Rでベクターをラスターに高速処理
Rでベクターをラスターに変換しています。ただし、プロセスが長すぎます。より速く実行するために、スクリプトをマルチスレッドまたはGPU処理に入れる可能性はありますか? ラスタライズされたベクトルへの私のスクリプト。 r.raster = raster() extent(r.raster) = extent(setor) #definindo o extent do raster res(r.raster) = 10 #definindo o tamanho do pixel setor.r = rasterize(setor, r.raster, 'dens_imov') r.raster クラス:RasterLayer寸法:9636、11476、110582736(nrow、ncol、ncell)解像度:10、10(x、y)範囲:505755、620515、8555532、8651792(xmin、xmax、ymin、ymax)座標。ref。:+ proj = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0 セッター クラス:SpatialPolygonsDataFrame機能:5419範囲:505755、620515.4、8555429、8651792(xmin、xmax、ymin、ymax)座標。ref。:+ proj = utm + zone …

2
複数のSpatialPointsDataFramesをラスターに変換
ワークスペースに100個のSpatialPointsDataFrameがあります。私はそれらをこの方法でロードしました: filenames <- list.files(path="", pattern="XYhectareTravelTimes_ez+.*shp") for(i in filenames){ filepath <- file.path("/",i) assign(i, readShapePoints(filepath)) それらは次のように呼ばれます: XYhectareTravelTimes_ez10.*shp XYhectareTravelTimes_ez11.*shp XYhectareTravelTimes_ez12.*shp 等 それらをワークスペースをループするラスターに変換するにはどうすればよいですか? 私は非常に新しいRユーザーであり、いくつかの助けを探しています。どうもありがとう。

3
QGISを使用してセルごとのポイントの頻度を示すラスターグリッドにポイントレイヤーを変換する
種の分布を示すポイントレイヤーがあります。 QGISで、このポイントレイヤーを、各セルの値がそのセル内のポイントの数に対応するラスターグリッドに変換することは可能ですか? これまでは、グリッドセルに属性値をアタッチすることしかできませんでした。各グリッドセルの属性の合計を使用する方法があることを期待して、各ポイントの値が「1」である属性テーブルに列をすでに追加しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.