[R-sig-Geo] raster - unrotate?
Michael Sumner
mdsumner at gmail.com
Thu Jun 22 10:46:41 CEST 2017
It used to do the inverse, and I preserved a copy of the old behaviour
here:
https://github.com/AustralianAntarcticDivision/raadtools/blob/master/R/utils.R#L9
You're probably best to learn from how it approaches it rather than just
use it, since it's not a general capability, just works for those very
specific cases.
I just tested it and it still seems to work fine, I used
oceandata.sci.gsfc.nasa.gov/MODISA/Mapped/Monthly/9km/chlor/A20021822002212.L3m_MO_CHL_chlor_a_9km.nc
obtainable with
https://oceandata.sci.gsfc.nasa.gov/cgi/getfile/A20021822002212.L3m_MO_CHL_chlor_a_9km.nc
If you're extracting points you might as well just convert them into the
"Atlantic" range, but it's painful to get that right for polygons or lines
(and very hard to generalize once you get it working anyway).
For simple regions like the one you show I'd probably split it into two
extents() and use those - but depends on your workflow, all these options
are useful here and there.
Cheers, Mike.
On Thu, 22 Jun 2017 at 18:30 Ben Tupper <btupper at bigelow.org> wrote:
> Hello,
>
> We have rasters that span [-180, 180] from NASA's Ocean Color (
> https://oceancolor.gsfc.nasa.gov/) datasets. We are trying to extract a
> region that spans 100E to 90W, that is 100 to -90. The region 'wraps'
> across the edges as shown by the plot at the address below.
>
> https://dl.dropboxusercontent.com/u/8433654/sst.png
>
>
> library(raster)
> uri <- '
> https://oceandata.sci.gsfc.nasa.gov:443/opendap/MODISA/L3SMI/2016/001/A20160012016032.L3m_R32_SST_sst_9km.nc
> '
> R <- raster::raster(uri, varname = 'sst')
>
> R
> #class : RasterLayer
> #dimensions : 180, 360, 64800 (nrow, ncol, ncell)
> #resolution : 1, 1 (x, y)
> #extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
> #coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
> #data source : in memory
> #names : layer
> #values : 1.482572e-05, 0.9999928 (min, max)
>
> plot(R)
> lines(c(180, 100, 100, 180), c(80,80,0,0))
> lines(c(-180,-90,-90,-180), c(80,80,0,0))
>
> I see that there is the nice raster::rotate() function to rotate raster
> coordinates from [0,360] to [-180,180]. That would make extracting the
> region super easy if the inverse were available. Is there an equivalent
> way to implement the inverse or raster::rotate()? I could dig into the
> source of raster::rotate() to see how to code one up, but I hate like heck
> to reinvent the wheel.
>
> Thanks!
> Ben
>
>
> Ben Tupper
> Bigelow Laboratory for Ocean Sciences
> 60 Bigelow Drive, P.O. Box 380
> East Boothbay, Maine 04544
> http://www.bigelow.org
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
--
Dr. Michael Sumner
Software and Database Engineer
Australian Antarctic Division
203 Channel Highway
Kingston Tasmania 7050 Australia
[[alternative HTML version deleted]]
More information about the R-sig-Geo
mailing list