[R-sig-Geo] RQGIS : looking for a geoalgorithm

2017-07-20 Thread Tristan Bourgeois
Dear all,

Currently working on a new project I would like to create a dynamic report
with R (using probably XML package for writting)

In this report I'll plot some graphs (I'm ok with ggplots2) but also map.


I just discovered the RQGIS package and I think I understood its functions.
My question is the following one :

Is there any geoalgorithms which allows to create an atlas ?

I searched via the "find_algorithms()" but found nothing.

Thanks in advance !

Tristan.

-- 
Tristan Bourgeois

[[alternative HTML version deleted]]

___
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo


Re: [R-sig-Geo] raster - unrotate?

2017-07-20 Thread Ben Tupper
Ahoy!

My (current) solution is to user raster::merge().  Works a treat and fits my 
workflow nicely.  Since I am obtaining the raster data using OPeNDAP it is easy 
to get the two regions, rotate the extent of the eastern region, and then 
merge.  Below is a pseudo-example (that works!) as it crops a local file twice, 
once for each region, rather than using an OPeNDaP calls via 
`ncdf4::nccvar_get(start = blah, count = something)` to get the two regions.


### start

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.928  (min, max)

par(mfrow = c(2,1))
plot(R)
lines(c(180, 100, 100, 180), c(80,80,0,0))
lines(c(-180,-90,-90,-180), c(80,80,0,0))

# eastern section
eR <- raster::crop(R, c(100, 180, 0, 80))

# rotate the extent
eExtent <- raster::extent(eR)
raster::extent(eR) <- c(-260, -180, eExtent[3:4])

# western section
wR <- raster::crop(R, c(-180, -90, 0, 80))

# merge
newR <- raster::merge(eR, wR)
newR

plot(newR)

 end

Cheers,
Ben

> On Jun 22, 2017, at 7:26 PM, Michael Sumner  wrote:
> 
> 
> 
> 
> On Thu, 22 Jun 2017 at 21:28 Ben Tupper  wrote:
> Hi,
> 
> Wow!  A treasure from the past!
> 
> Hmmm.   I see what you mean; it might be best to snip-clip-and-smush from the 
> native presentation.  We are testing out the performance of the dineof 
> function in the sinkr package 
> (https://github.com/marchtaylor/sinkr/blob/master/R/dineof.R) to interpolate 
> patchy chlorophyl data.  
> 
> Thanks for the tip!
> 
> 
> 
> For what it's worth, I'm happy to help, there's no one size fits all here. 
> The dateline is one of those "easy problems" that does not have a general fix 
> and will bite in many different contexts. :)
> 
> The best distillation of my tricks is in this project, but it does depend on 
> your workflow and the actual data in use. 
> 
> https://github.com/hypertidy/tabularaster
> 
> If you have performance issues raster's cell abstraction  will help, but they 
> are a bit old-school when it comes to multi-part geometries. (It's identical 
> to standard database indexing concepts as are all "spatial" optimization 
> tricks)
> 
> (I see a desperate need for a general API for this kind of problem so that we 
> can build tools from a general framework, which I'm working on - that's some 
> kind of excuse for why this and related projects are quite raw and 
> unfinished.)
> 
> Cheers, Mike.  
> 
> Cheers,
> Ben
> 
>> On Jun 22, 2017, at 4:46 AM, Michael Sumner  wrote:
>> 
>> 
>> 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  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