問題タブ [r-raster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 確率密度関数からの R 焦点重み
定義済みのプロブからの重みを含む空間グリッド (「ウィンドウ」) を構築しようとしています。密度関数。現在、呼び出されるラスター パッケージ関数focalWeight()
がありますが、オプションは「circle」、「Gauss」、または「rectangle」のみです。たとえば、コーシー分布を使用して作成したいと思います。それを行う方法に関する提案はありますか?
r - ラスター関数オーバーレイのオブジェクトに格納された式を使用する
私は数時間問題に苦しんでおり、現在、回避策を見つけるのに非常に苦労しています.
パッケージのoverlay
機能を使いたい。raster
この関数は、数学関数などの特定の関数に従って、複数のラスター (またはスタックのラスター レイヤー) を新しいラスターに結合します。
以下に実際の例を示します。
したがって、上記の例では、ラスターに と という 2 つの変数がvariable1
ありvariable2
、それらに式を適用variable1 + variable2
します。
問題
私が持っている関数内でオーバーレイを使用しようとしています:
- 入力ラスター スタック (レイヤーの数とレイヤーの名前は可変です)。典型的な例は、
env
上記のスタックです。 - 式 (式は常に、入力ラスター スタックのレイヤー名に基づいて記述されます)。典型的な例は
variable1 + variable2
またはvariable1 * variable2 + 3 * variable1
です。
私の(失敗した)試み
以前にオブジェクトに文字列として保存された数式を使用できました。
これは機能します。ただし、引数としてvariable1
andを指定しなければならなかったことに気付くでしょう。variable2
fun の引数としてレイヤー名を自動的に提供する方法がわかりません。
私は試した:
しかし、これらは明らかに機能しませんでした。私はすでに関数内でひどい手順を使用しています.全体を網羅eval(parse())
する一般的なスクリプトを書く必要のない解決策を見つけたいと思います.eval(parse())
overlay
どんな洞察も大歓迎です;)
python - R scale{raster} 関数が PythonWin で同じラスターをスケーリングするのとは異なる出力を与えるのはなぜですか?
R と PythonWin の両方を使用して、統計モデルを空間的に適用しました。両方のプログラムで同じ予測ラスターを作成しましたが、出力が異なります (クレイジーではありませんが、異なります)。2 つの予測ラスターの違いがスケーリングの問題に起因する可能性があるかどうか疑問に思っています (適用しているモデルの変数をスケーリングしたため、ラスターの値をスケーリングする必要がありました)。
23546 列 x 9157 行、30 x 30 セル サイズ、フローティング ピクセル タイプの大きなラスター ファイルがあります。R で scale{raster} を使用してラスターの値をスケーリングすると、出力の平均は 7.9e-17 で stdev 1 になります。
平均を減算し、標準偏差で割ることによって同じラスターの値をスケーリングすると、同じ出力が得られます。驚きはありません。
同じラスターに対して arcpy.GetRasterProperties を使用して PythonWin でこれを行うと、別の出力が得られます。
最小値と最大値はすべての出力で同じであることを指摘しておく必要があります。
(私の知る限り)値をスケーリングする同じ方法を使用しているのに、R と PythonWin からの出力の平均が異なるのはなぜですか? この件についてご意見をお寄せいただきありがとうございます。
r - ラスター多項 gbm への予測
gbm
現在、多項式モデルをラスターブリックに予測することはできないようです。ただし、比較的小さなラスター グリッドの場合は、これを回避する簡単な方法があることを確認してください。これについては以下で説明します。しかし、ここでのプロセスは非常に遅く、大規模なラスター、多くのクラス (私の場合は植生群集)、および予測変数を扱う場合、課題がないわけではありません。以下の情報が、同じ課題に直面する人の役に立てば幸いです。
以下では、多項 gbm モデルと 20 の予測変数を使用して、36 の植生群落の発生確率を予測しようとしています。私の研究領域は、213,000,000 ピクセルの 30x30m ラスター グリッドですが、以下のコードは、プロセスの開発/テストに使用した 1221 セルの小さなグリッドに関連しています。
次のように、予測変数をラスター スタックにスタックしました。
rasStack の名前が上のモデルの名前と同じであることを確認することが重要です。
predict.gbm を実行する前に、最適な反復モデルを呼び出します
グリッド セルを一連の空間ポイントに変換することで、1221 個のセルを含むテスト エリアの一連のラスター出力画像を作成できます (以下を参照)。
predict.gbm モデルを実行するには
次の方法で、predtable から 36 個の新しいラスター イメージのセットに発生確率値を書き込むことができます。
これにより、必要な出力が得られます-ただし、データフレームを予測する必要はありません-ラスターブリックに直接予測することができれば、プロセスははるかに高速で効率的になります。
私が走れば
出力は、予測したい最初の植生コミュニティを表すラスター グリッドです。
IDRISI ファイル形式はマルチバンド イメージをサポートしていないため、ミックスに index=1:36 を追加してマルチバンド ラスターブリックを出力として生成することはできません。これを実行しようとすると、format="GTiff" または "HFA" (または rgdal を必要とするその他の形式) を設定すると、次のエラー メッセージが表示
されます。 1、オフセット = オフ) : ラスター IO 中のエラー"
ただし、format="raster" を設定すると、rasterbrick 出力を取得できますが、idrisi 画像 (predict.gbm モデルの最初の出力列) 以外のデータを読み書きすることはできません。
「警告メッセージ: In .rasterFromRasterFile(grdfile, band = band, objecttype, ...) : 値ファイルのサイズがセルの数と一致しません (指定されたデータ型)」
上記のラスターブリックを個々のラスター画像のセットに変換しようとすると
どの画像も意味をなさない。
また、マルチバンド CDF イメージとして書き込もうとすると、rgdal エラーとは異なる一連の警告メッセージが表示されることも少し不可解です。
ここで、何が起こっているのかわかりませんか??
上記の問題に遭遇することなく、rasterbrick に直接予測できるようにするために、gbm パッケージの作成者と協力できる方法を知っている人がいれば素晴らしいことです。
完全なラスター グリッドで使用したコードを誰かが知りたい場合は、下にコメントを残してください。喜んで提供します。
乾杯アレン
r - ラスターで grid2poly を使用する
ラスターからデータを取得し、それを KML 形式にプッシュして、一連のグリッド ポリゴンを取得しようとしています。
grid2poly
Web 上のサンプルを見ると、 withを使用する方法があるように見えplotKML
ます。残念ながら、ブロックを解除できるように見えるエラーが発生しました。
coordinates(tminvals) <- ~x+y
次のようなすべての行でエラーが発生します。
(function (classes, fdef, mtable) のエラーから: 署名 '"matrix"' の関数 'coordinates<-' の継承されたメソッドが見つかりません</p>
私が間違っていることを理解していません。データセットを見るtminvals
と、内容は元のサンプル データとほぼ同じに見えますeberg_grid
。
r - R: パッケージ "rgdal" と "raster" を使用して GeoTiff Raster を切り抜きます
上記の 2 つのパッケージ "rgdal" と "raster" を使用して、GeoTiff ラスター ファイルをトリミングしたいと思います。結果として得られる出力 tif の品質が非常に悪く、カラーではなくグレースケールであることを除いて、すべてが正常に機能します。元のデータは、スイス連邦地形局の高品質ラスター マップです。サンプル ファイルは、ここからダウンロードできます。
これは私のコードです:
この例を再現するには、サンプル データをダウンロードし、「c:/files/」フォルダに展開します。奇妙なことに、サンプル データを使用すると、トリミングされた画像の品質は問題ありませんが、グレースケールのままです。
オプション「datatype」、「format」を使用して遊んでいましたが、それでどこにも行きませんでした。誰でも解決策を指摘できますか?入力データにさらに情報を提供する必要がありますか?
編集:ジョシュの例は、サンプルデータ2でうまく機能します。残念ながら、私が持っているデータは古く、多少異なっているようです。次の GDALinfo を読んだ場合、どのオプションを選択するか教えてください。
r - Rオブジェクトが指定されていない場合の標準ジェネリックメソッドの表示方法
ラスター パッケージで writeRaster 関数を表示しようとしています。
また、showMethods には、getMethod で使用できるオブジェクト名が表示されません。
そこからどこへ行くべきか
*編集 @Metricsが示唆するように: