2013-04-25 34 views
1

我一直在進口是有去從Min. :-69826220Max. :167780500值的ASCII光柵有問題。我遇到的問題是,當我使用柵格函數導入ASCII文件時,每個小於-9999的值報告爲NA,最小值爲-9458的R - 光柵功能的NA值低於-9999 ASCII文件

這是函數的一個bug,是有解決方法嗎?當我導入與數據幀相同的ASCII文件時,一切都很好,我可以得到整個範圍的值。 另外我使用相同的程序導入其他ASCII柵格並沒有任何問題。

這裏是鏈接到ASCII文件https://dl.dropboxusercontent.com/u/24234831/ps0011yme.asc

這裏是會話信息,我萬一開了一個新的會話。

sessionInfo() ř版本3.0.0(2013年4月3日) 平臺:x86_64的-W64-的mingw32/64(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]統計圖形grDevices utils的數據集的方法基礎

其他附軟件包: [1] raster_2.1-16 sp_1.0-8經由一個命名空間加載

(而不是附後): [1] grid_3.0.0 lattice_0.20-15

任何幫助表示讚賞

+0

而GDAL驅動器之間的區別,如果你運行'minValue(最小值)(X)'和'manValue(X)''那裏是x'柵格你怎麼弄? – 2013-04-25 10:47:59

+0

我得到相同的結果 [1]不適用 警告消息: 在.local(x,...):最小/最大值未知,請使用setMinMax – 2013-04-25 11:02:34

+0

爲什麼不給我們'摘要(掃描(「path/to/myraster.asc」,skip = 6))' – 2013-04-25 12:43:33

回答

3

你可以嘗試使用setMinMax()您光柵文件,試圖制定出的最大值和最小值,並將其儲存在返回的柵格*對象。試試吧,像這樣:

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引起的,它們與地理空間數據抽象庫綁定,並且對於導入/導出柵格和shapefile數據非常重要。

+0

我剛剛試了兩次,這就是我得到的> setMinMax(ps0011yme) class:RasterLayer 尺寸:337,720,242640(nrow,ncol,ncell) 分辨率:0.5,0.5(x,y) 但它不工作我有同樣的問題 範圍:-180,180,-78.5,90(xmin,xmax,ymin,ymax) coord。 REF。 :NA 數據源:C:路徑\ ps0011yme.asc 名稱:圖層 值:-9458.911,167780500(最小,最大) – 2013-04-25 11:42:48

+0

我仍然想知道在什麼特定情況下需要rgdal,因爲迄今爲止我從未遇到任何問題與柵格/ shapefile數據。是否因爲這個ASCII碼的值太大? – 2013-04-25 14:01:07

+0

@ user4050可能 - 我不能確切地說。我認爲儘管在處理空間數據時最好安裝'rgdal'。 – 2013-04-25 14:06:06

3

我無法重現您的錯誤。這裏有一個手工打造的。ASC文件:

NCOLS 3 
NROWS 3 
XLLCORNER 0 
YLLCORNER 0 
CELLSIZE 0.5 
NODATA_value -9999 
1e-6 0.3 -34567891234 
0.2 -1e6 25 
3 68492758321934 20 

這正確加載到raster對象。您會注意到那裏的NODATA_value項目,它解釋了您的-9999從哪裏來。我敢打賭,你的.asc文件中有一些損壞。你能發佈標題和一小部分數據嗎?

+0

+1請求標題數據 – 2013-04-25 12:35:30

0

'光柵'中的內部ascii文件驅動程序假定如果標誌值爲< 0(並且我不建議在值的中間使用NA標誌),那麼沒有低於NA標誌值的有效值。 。顯然,這種方法可能會導致像這種情況下的問題。我會改變這一點。你可以看到內部的驅動程序,如果你這樣做

library(raster) 
library(rgdal) 
a1 <- raster(filename, native=TRUE) 
a2 <- raster(filename, native=FALSE)