[GRASSLIST:8462] Re: extracting the value of a raster cell
Dylan Beaudette
dylan at iici.no-ip.org
Fri Sep 30 12:21:59 EDT 2005
Jason,
I have had similar issues that were a pain with scripting languages,
and have thus resorted to using the the GRASS C API. It is actually
much simpler to use than I first expected.
You might try looking at the source for r.out.ascii, where it reads
each cell's value: the source code is only 205 lines long.
good luck
Dylan
On Sep 30, 2005, at 8:34 AM, Jason Horn wrote:
> Thank you Hamish, for the response.
>
> As usual, I don't think I was specific enough. What I'm looking for
> is a way to extract the value of a particular raster cell. r.what
> will do the trick, but only if you know the exact coordinates. I
> want to loop through in a script and extract the value of each cell
> in a raster coverage. For example, if a raster layer was a 10x10
> grid, I want the value of cell (1,1), then cell(2,1), then cell
> (3,1), etc.. If I were to use r.what, calculating the location of
> the next cell using resolution and the coordinates of the first cell,
> I might accidentally skip a cell due to rounding errors. r.mapcalc
> allows you to access the value of a cell directly, but the result is
> always another raster map - you can't output the cell value directly.
>
> The reason for all of this is that I am trying to write my own script
> for calculating the spatial mean of a given raster map. I am
> surprised that there is no facility for this in GRASS already - it
> seems like such a basic spatial statistic. My solution, so far, is
> to output the map as an ascii file, then load the ascii file into an
> array within a script. It works, but seems like a ridiculous
> workaround for something so simple.
>
> If anyone can think of another way, please post it. All suggestions
> welcome.
>
> I guess I should probably write my own module in C, but I've never
> had much luck getting GRASS to compile successfully in the first
> place, so I'll stick with the script route for now.
>
> - Jason
>
>
>
> On Sep 28, 2005, at 7:57 PM, Hamish wrote:
>
>
>>> Does anyone know how to extract the value of a cell at given
>>> coordinates from a raster layer?
>>>
>>>
>>
>> r.what
>>
>>
>>
>>> I am writing a script that will calculate the spatial mean for a
>>> given
>>> raster layer. Therefore, I need to be able to access the values of
>>> raster cells.
>>>
>>>
>>
>> r.univar?
>>
>> If you want the stats within a buffer around a point, I would suggest
>> a
>> vector point map -> v.buffer -> v.to.rast -> MASK map -> r.univar in a
>> loop, or probably simpler with Markus's new v.rast.stats module in
>> 6.1-cvs.
>>
>>
>>
>> Hamish
>>
>>
>>
>>
>
>
>
--
Dylan Beaudette
Soils and Biogeochemistry Graduate Group
University of California at Davis
530.754.7341
More information about the grass-user
mailing list