[GRASS-dev] Re: [STATSGRASS] cant read raster created with
r.neighbours
Markus Neteler
neteler at itc.it
Thu Jul 26 17:28:25 EDT 2007
Roger, Carlos,
I have fixed the r.out.bin buffer issue in CVS (also in 6.2.3-CVS).
Markus
On Thu, Jul 26, 2007 at 07:39:47PM +0200, Roger Bivand wrote:
> CC-ed to GRASS-dev, short file name buffer issue in raster/r.out.bin/main.c
> line 225:
>
> On Thu, 26 Jul 2007, Carlos "Guâno" Grohmann wrote:
>
>> Here is the debug output:
>>
>>> debug(readBinGrid)
>>> slopeavg<-readRAST6("dem3arcsec_srtm_reprojected_slope_avg2")
>> Creating BIL support files ...
>> Header File = .wld
>> World File =
>> /home/guano/grassdata/srtm_krig_utm/death_valley/.tmp/eclipse/dem3arcsec_srtm_reprojected_slope_avg2.wld
>> Exporting Raster as floating values (bytes=4)
>> Using the Current Region settings ...
>> north=4031000.000000
>> south=4002650.000000
>> east=494850.000000
>> west=466500.000000
>> r=315
>> c=315
>> 100%
>> debugging in: readBinGrid(rtmpfl11, colname = vname[i], proj4string =
>> p4, integer = to_int)
>> debug: {
>> if (missing(integer))
>> stop("integer TRUE/FALSE required")
>> if (!file.exists(fname))
>> stop(paste("no such file:", fname))
>> if (!file.exists(paste(fname, "hdr", sep = ".")))
>> stop(paste("no such file:", paste(fname, "hdr", sep = ".")))
>> if (!file.exists(paste(fname, "wld", sep = ".")))
>> stop(paste("no such file:", paste(fname, "wld", sep = ".")))
>> con <- file(paste(fname, "hdr", sep = "."), "r")
>> l8 <- readLines(con, n = 8)
>> close(con)
>> l8 <- read.dcf(textConnection(gsub(" ", ":", l8)))
>> lres <- as.list(l8)
>> names(lres) <- colnames(l8)
>> lres$nrows <- as.integer(lres$nrows)
>> lres$ncols <- as.integer(lres$ncols)
>> lres$nbands <- as.integer(lres$nbands)
>> lres$nbits <- as.integer(lres$nbits)
>> lres$skipbytes <- as.integer(lres$skipbytes)
>> lres$nodata <- ifelse(integer, as.integer(lres$nodata),
>> as.numeric(lres$nodata))
>> con <- file(paste(fname, "wld", sep = "."), "r")
>> l6 <- readLines(con, n = 6)
>> close(con)
>> lres$ewres <- abs(as.numeric(l6[1]))
>> lres$nsres <- abs(as.numeric(l6[4]))
>> lres$n_cc <- as.numeric(l6[6])
>> lres$w_cc <- as.numeric(l6[5])
>> lres$s_cc <- lres$n_cc - lres$nsres * (lres$nrows - 1)
>> what <- ifelse(integer, "integer", "double")
>> n <- lres$nrows * lres$ncols
>> size <- lres$nbits/8
>> map <- readBin(fname, what = what, n = n, size = size, signed = TRUE)
>> is.na(map) <- map == lres$nodata
>> grid = GridTopology(c(lres$w_cc, lres$s_cc), c(lres$ewres,
>> lres$nsres), c(lres$ncols, lres$nrows))
>> df <- list(var1 = map)
>> names(df) <- colname
>> if (.sp_lt_0.9()) {
>> df1 <- AttributeList(df)
>> }
>> else {
>> df1 <- data.frame(df)
>> }
>> res <- SpatialGridDataFrame(grid, data = df1, proj4string =
>> proj4string)
>> res
>> }
>> Browse[1]> list.files(dirname(fname))
>> [1] "162.0"
>> [2] "162.1"
>> [3] "162.2"
>> [4] "260.0"
>> [5] "260.1"
>> [6] "260.2"
>> [7] "284.0"
>> [8] "284.1"
>> [9] "284.2"
>> [10] "336.0"
>> [11] "336.1"
>> [12] "393.0"
>> [13] "393.1"
>> [14] "436.0"
>> [15] "436.1"
>> [16] "436.2"
>> [17] "436.3"
>> [18] "441.0"
>> [19] "60.0"
>> [20] "60.1"
>> [21] "60.2"
>> [22] "60.3"
>> [23] "6183.0"
>> [24] "6183.1"
>> [25] "6183.1.ppm"
>> [26] "6183.2"
>> [27] "6183.2.pgm"
>> [28] "6183.2.ppm"
>> [29] "6183.3"
>> [30] "6183.3.pgm"
>> [31] "6183.3.ppm"
>> [32] "653.0"
>> [33] "653.1"
>> [34] "653.2"
>> [35] "653.3"
>> [36] "653.4"
>> [37] "653.5"
>> [38] "661.0"
>> [39] "661.1"
>> [40] "661.2"
>> [41] "6630.0"
>> [42] "6630.1"
>> [43] "753.0"
>> [44] "753.1"
>> [45] "753.2"
>> [46] "786.0"
>> [47] "786.1"
>> [48] "786.2"
>> [49] "796.0"
>> [50] "796.1"
>> [51] "796.2"
>> [52] "796.3"
>> [53] "796.4"
>> [54] "846.0"
>> [55] "846.1"
>> [56] "846.2"
>> [57] "846.3"
>> [58] "847.0"
>> [59] "847.1"
>> [60] "847.2"
>> [61] "847.3"
>> [62] "940.0"
>> [63] "dem3arcsec_srtm_reprojected_aspect"
>> [64] "dem3arcsec_srtm_reprojected_slope_avg2"
>> [65] "dem3arcsec_srtm_reprojected_slope_avg2.wld"
>> Browse[1]>
>> debug: if (missing(integer)) stop("integer TRUE/FALSE required")
>> Browse[1]>
>> debug: if (!file.exists(fname)) stop(paste("no such file:", fname))
>> Browse[1]>
>> debug: if (!file.exists(paste(fname, "hdr", sep = ".")))
>> stop(paste("no such file:",
>> paste(fname, "hdr", sep = ".")))
>> Browse[1]>
>> Error in readBinGrid(rtmpfl11, colname = vname[i], proj4string = p4,
>> integer = to_int) :
>> no such file:
>> /home/guano/grassdata/srtm_krig_utm/death_valley/.tmp/eclipse/dem3arcsec_srtm_reprojected_slope_avg2.hdr
>>
>>
>> and then with a short file name
>>
>>
>>> elev<-readRAST6("srtm3sec_reprojected")
>> Creating BIL support files ...
>> Header File =
>> /home/guano/grassdata/srtm_krig_utm/death_valley/.tmp/eclipse/srtm3sec_reprojected.hdr
>> World File =
>> /home/guano/grassdata/srtm_krig_utm/death_valley/.tmp/eclipse/srtm3sec_reprojected.wld
>> Exporting Raster as floating values (bytes=4)
>> Using the Current Region settings ...
>> north=4031000.000000
>> south=4002650.000000
>> east=494850.000000
>> west=466500.000000
>> r=315
>> c=315
>> 100%
>> debugging in: readBinGrid(rtmpfl11, colname = vname[i], proj4string =
>> p4, integer = to_int)
>> debug: {
>>
>> <snip>
>>
>> [60] "847.1"
>> [61] "847.2"
>> [62] "847.3"
>> [63] "940.0"
>> [64] "dem3arcsec_srtm_reprojected_aspect"
>> [65] "dem3arcsec_srtm_reprojected_slope_avg2"
>> [66] "dem3arcsec_srtm_reprojected_slope_avg2.wld"
>> [67] "srtm3sec_reprojected"
>> [68] "srtm3sec_reprojected.hdr"
>> [69] "srtm3sec_reprojected.wld"
>> Browse[1]>
>> debug: if (missing(integer)) stop("integer TRUE/FALSE required")
>>
>>
>> So it appears to me that for some reason the .hdr was not attached to
>> the file...
>
> Yes, because a shorter file name buffer is declared on line 225 of main.c
> in r.out.bin - with a length of 100, so fname fits, but the header
> overwrites it, I think - could I suggest that the lengths of the out_bufs
> in line 255 be set to [GNAME_MAX] instead?
>
> Roger
>
>>
>>
>> Carlos
>>
>>
>>
>>
>> +-----------------------------------------------------------+
>> Carlos Henrique Grohmann - Guano
>> Visiting Researcher at Kingston University London - UK
>> Geologist M.Sc - Doctorate Student at IGc-USP - Brazil
>> Linux User #89721 - carlos dot grohmann at gmail dot com
>> +-----------------------------------------------------------+
>> _________________
>> "Good morning, doctors. I have taken the liberty of removing Windows
>> 95 from my hard drive."
>> --The winning entry in a "What were HAL's first words" contest judged
>> by 2001: A SPACE ODYSSEY creator Arthur C. Clarke
>>
>> Can't stop the signal.
>>
>> _______________________________________________
>> statsgrass mailing list
>> statsgrass at grass.itc.it
>> http://grass.itc.it/mailman/listinfo/statsgrass
>>
>>
>
> --
> Roger Bivand
> Economic Geography Section, Department of Economics, Norwegian School of
> Economics and Business Administration, Helleveien 30, N-5045 Bergen,
> Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
> e-mail: Roger.Bivand at nhh.no
> _______________________________________________
> grass-dev mailing list
> grass-dev at grass.itc.it
> http://grass.itc.it/mailman/listinfo/grass-dev
More information about the grass-dev
mailing list