1

Min. :-69826220からまで の値を持つ ASCII ラスターのインポートで問題が発生していますMax. :167780500。私が遭遇している問題は、ラスター関数を使用して ASCII ファイルをインポートすると、それよりも小さいすべての値-9999が として報告されNA、最小値が-9458.

これは関数のバグですか?回避策はありますか? 同じ ASCII ファイルをデータ フレームとしてインポートすると、すべて問題なく、値の範囲全体を取得できます。また、同じ手順を使用して他の ASCII ラスターをインポートしていますが、問題はありません。

ここにASCIIファイルへのリンクがありますhttps://dl.dropboxusercontent.com/u/24234831/ps0011yme.asc

これがセッション情報です。念のため新しいセッションを開きました。

sessionInfo() R バージョン 3.0.0 (2013-04-03) プラットフォーム: x86_64-w64-mingw32/x64 (64 ビット)

ロケール: [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

付属の基本パッケージ: [1] stats グラフィックス grDevices utils データセット メソッド base

その他の添付パッケージ: [1] raster_2.1-16 sp_1.0-8

名前空間を介してロードされた (アタッチされていない): [1] grid_3.0.0lattice_0.20-15

どんな助けでも大歓迎です

4

3 に答える 3

3

ラスター ファイルでを使用setMinMax()して、最小値と最大値を計算し、返された Raster* オブジェクトに格納することができます。次のように試してください:

r <- setMinMax( raster("path/to/myraster.asc") )

データをダウンロードして次のことを行うと、何が起こっているのかわかりません。

r1 <- raster( "~/Downloads/test.asc")
summary(values(r1))
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max.      NA's 
-69830000  -4789000    737300  16950000  13880000 167800000     71468

sessionInfo() の出力を質問に追加してください。つまり、コメントとしてではありません。

この場合のエラーはrgdal、Geospatial Data Abstraction Library へのバインドであり、ラスターおよびシェープファイル データのインポート/エクスポートに非常に重要なインストールが行われていないことが原因でした。

于 2013-04-25T11:04:38.157 に答える
0

「ラスター」の内部 ascii ファイル ドライバーは、フラグ値が < 0 の場合、NA フラグ値よりも低い有効な値がないと想定します (値の中間で NA フラグを使用することはお勧めしません)。明らかに、このアプローチはこの場合のような問題を引き起こす可能性があります。そして私はそれを変更します。実行すると、内部ドライバーと gdal ドライバーの違いがわかります。

 library(raster)
 library(rgdal)
 a1 <- raster(filename, native=TRUE)
 a2 <- raster(filename, native=FALSE)
于 2013-04-29T02:22:41.137 に答える