How to extract raster values at coordinate locations?

Hi,

I have a (long) csv file with X, Y coordinates and a (long) list of rasters.
I would like to loop through the rasters, extract the values of the raster at the X, Y locations and write the results in a new CSV each time.

Any chance I can do that using Julia?

Thanks

Check this thread for geotiff rasters reading.

Thanks,

I found this:

using GeoData, CSV, GBIF
st = GeoStack(WorldClim{BioClim})[Band(1)] |> replace_missing
obs = GBIF.occurrences("scientificName" => "Burramys parvus", "limit" => 300)
# Read all the occurrences
read!(obs)
# use `extract` to get that values for all layers for each observation.
vals = extract(st, map(o -> o.longitude, obs), map(o -> o.latitude, obs))
# output

I will try to see how far i go :slight_smile:

I tried this (below) but the output is tricky to understand / manipulate - not sure what to make out of it

vals = extract(A, 380706.9107400000, 3098724.2625000002)

outputs:

1-element GeoArray{UInt32,1} with dimensions:
Band: 1:1 Categorical: Ordered
and reference dimensions:
X: 380700.13223046553 Projected: Ordered Regular Intervals crs: WellKnownText,
Y: 3.098722533405694e6 Projected: Ordered Regular Intervals crs: WellKnownText
0x00003de4

I tried this:
julia> vals[1]
0x00003de4

and this give me the correct value
julia> println(vals[1])
15844

How can I access this value as a varibale then? … might be for another thread

vals[1] must be of an unsigned type which defaults to show as hex. If you prefer to have it as a signed value do v = Int(vals[1]). If unsigned works for you, then simply v=vals[1].

1 Like

It worked ! thanks