Well no need to have your data. Usually one can find some suitable data in the help for the functions under question. So here is a reproducible example from ?meuse.grid.

> data(meuse.grid)
> coordinates(meuse.grid) <- ~x+y
> proj4string(meuse.grid) <- CRS("+init=epsg:28992") # see ?meuse for this crs
> gridded(meuse.grid) <- TRUE
> summary(meuse.grid)

Object of class SpatialPixelsDataFrame
Coordinates:
     min    max
x 178440 181560
y 329600 333760
Is projected: TRUE
proj4string :
[+init=epsg:28992 +proj=sterea +lat_0=52.15616055555555
+lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000
+ellps=bessel +units=m +no_defs]
Number of points: 3103
Grid attributes:
  cellcentre.offset cellsize cells.dim
x            178460       40        78
y            329620       40       104
Data attributes:
     part.a           part.b            dist        soil     ffreq
 Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   1:1665   1: 779
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.1193   2:1084   2:1335
 Median :0.0000   Median :1.0000   Median :0.2715   3: 354   3: 989
 Mean   :0.3986   Mean   :0.6014   Mean   :0.2971
 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:0.4402
 Max.   :1.0000   Max.   :1.0000   Max.   :0.9926

> rasterMG <- raster(meuse.grid)
> print(rasterMG)

class       : RasterLayer
dimensions  : 104, 78, 8112  (nrow, ncol, ncell)
resolution  : 40, 40  (x, y)
extent      : 178440, 181560, 329600, 333760  (xmin, xmax, ymin, ymax)
coord. ref. : +init=epsg:28992 +proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs
data source : in memory
names       : part.a
values      : 0, 1  (min, max)

> rasterMG.proj <- spTransform(rasterMG, CRS("+init=epsg:21781"))
Error in spTransform(rasterMG, CRS("+init=epsg:21781")) :
  load package rgdal for spTransform methods
>

Now perhaps doing the projection before casting it to a raster will work (yes I'm guessing since error thrown above is not very informative and traceback() does not give anything useful).

> meuse.grid.proj <- spTransform(meuse.grid, CRS("+init=epsg:21781"))
Warning message:
In spTransform(meuse.grid, CRS("+init=epsg:21781")) :
  Grid warping not available, coercing to points

> summary(meuse.grid.proj)

Object of class SpatialPointsDataFrame
Coordinates:
       min      max
x 479029.8 482197.1
y 646927.4 651003.9
Is projected: TRUE
proj4string :
[+init=epsg:21781 +proj=somerc +lat_0=46.95240555555556
+lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel
+towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs]
Number of points: 3103
Data attributes:
     part.a           part.b            dist        soil     ffreq
 Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   1:1665   1: 779
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.1193   2:1084   2:1335
 Median :0.0000   Median :1.0000   Median :0.2715   3: 354   3: 989
 Mean   :0.3986   Mean   :0.6014   Mean   :0.2971
 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:0.4402
 Max.   :1.0000   Max.   :1.0000   Max.   :0.9926

> gridded(meuse.grid.proj) <- TRUE
suggested tolerance minimum: 0.737332
Error in points2grid(points, tolerance, round) :
  dimension 1 : coordinate intervals are not constant
>

A warning and an error indicates that the projection results in something that is not on a regular grid.

I don't know what to do but to read some more of the documentation for sp, rgdal, etc.

Hopefully somebody comes up with something that helps us.

Yours sincerely / Med venlig hilsen


Frede Aakmann Tøgersen
Specialist, M.Sc., Ph.D.
Plant Performance & Modeling

Technology & Service Solutions
T +45 9730 5135
M +45 2547 6050
frtog@vestas.com<mailto:frtog@vestas.com>
http://www.vestas.com<http://www.vestas.com/>

Company reg. name: Vestas Wind Systems A/S
This e-mail is subject to our e-mail disclaimer statement.
Please refer to www.vestas.com/legal/notice<http://www.vestas.com/legal/notice>
If you have received this e-mail in error please contact the sender.

From: Bea GD [mailto:aguitatierra@hotmail.com]
Sent: 16. april 2014 11:00
To: Frede Aakmann Tøgersen; r-help@r-project.org
Subject: Re: [R] netCDF to raster and spatial projection

Hi Frede,

Thanks so much for your reply!

I've tried what you said but I get the following error:



Error in spTransform(rasterDF1, crs("+init=epsg:21781")) :

  load package rgdal for spTransform methods

I've checked search() and rgdal is before sp.


> search()

 [1] ".GlobalEnv"        "package:chron"     "package:sm"        "package:rgeos"

 [5] "package:maptools"  "package:ncdf"      "package:rgdal"     "package:raster"

 [9] "package:sp"        "tools:rstudio"     "package:stats"     "package:graphics"

[13] "package:grDevices" "package:utils"     "package:datasets"  "package:methods"

[17] "Autoloads"         "package:base"

Also, when I do library("rgdal") I get this message:


> library("rgdal")

rgdal: version: 0.8-16, (SVN revision 498)

Geospatial Data Abstraction Library extensions to R successfully loaded

Loaded GDAL runtime: GDAL 1.10.1, released 2013/08/26

Path to GDAL shared files: C:/Users/bgonzale/Documents/R/win-library/3.0/rgdal/gdal

GDAL does not use iconv for recoding strings.

Loaded PROJ.4 runtime: Rel. 4.8.0, 6 March 2012, [PJ_VERSION: 480]

Path to PROJ.4 shared files: C:/Users/bgonzale/Documents/R/win-library/3.0/rgdal/proj

Maybe the problem is something to do with this? I don't know how to fix it.

I'd like to provide you with some data, how would be the best way to post/sahre a raster?

Thanks!


On 16.04.2014 10:17, Frede Aakmann Tøgersen wrote:

Hi Beatriz



Try to skip this step



     # Reprojecting into CH1903_LV03

     # First, change the coordinate reference system (crs)

     proj4string(rasterDF1) <- "+init=epsg:21781"





And just do this



     # Second, reproject the raster

     rasterDF1.CH <- spTransform(rasterDF1, crs("+init=epsg:21781"))





Also there is a spTransform both in the rgdal and sp packages. So are they masking each other? rgdal should be before sp in the search() list.



I cannot be of more help since you provided no data.





Yours sincerely / Med venlig hilsen





Frede Aakmann Tøgersen

Specialist, M.Sc., Ph.D.

Plant Performance & Modeling



Technology & Service Solutions

T +45 9730 5135

M +45 2547 6050

frtog@vestas.com<mailto:frtog@vestas.com>

http://www.vestas.com



Company reg. name: Vestas Wind Systems A/S

This e-mail is subject to our e-mail disclaimer statement.

Please refer to www.vestas.com/legal/notice<http://www.vestas.com/legal/notice>

If you have received this e-mail in error please contact the sender.



-----Original Message-----

From: r-help-bounces@r-project.org<mailto:r-help-bounces@r-project.org> [mailto:r-help-bounces@r-project.org]

On Behalf Of Beatriz R. Gonzalez Dominguez

Sent: 16. april 2014 08:22

To: r-help@r-project.org<mailto:r-help@r-project.org>

Subject: [R] netCDF to raster and spatial projection



I've recently started using R for spatial data. I'd be really grateful

if you could could help me with this. Thanks!



Sorry I don't provide a reproducible example. Please ask me if you have

any questions about the data.



I've extracted data from a multidimensional netCDF file. This file had

longitude, latitude and temperature data (for 12 months of a specific year).



 From this netCDF I've got a data frame for January with these

variables: longitude, latitude, temperature.



With this data frame I've created a raster.



     # Packages

     library("sp")

     library("raster")

     library("rgdal")

     library("ncdf")

     library("maptools")

     library("rgeos")

     library("sm")

     library("chron")



     # Dataframe to raster

     # Create spatial points data frame

     coordinates(tmp.df01) <- ~ lon + lat

     # Coerce to SpatialPixelsDataFrame

     gridded(tmp.df01) <- T

     # Coerce to raster

     rasterDF1 <- raster(tmp.df01)

     > print(tmp.df01)

     class       : SpatialPixelsDataFrame

     dimensions  : 103, 241, 24823, 1  (nrow, ncol, npixels, nlayers)

     resolution  : 0.02083333, 0.02083333  (x, y)

     extent      : 5.739583, 10.76042, 45.73958, 47.88542  (xmin, xmax,

ymin, ymax)

     coord. ref. : NA

     names       :           TabsM_1

     min values  : -18.1389980316162

     max values  :  2.26920962333679



There is no value for 'coord. ref.'



The projection of the original netCDF was WGS84. So I gave this

projection to the raster.



     proj4string(rasterDF1) <- "+proj=longlat +datum=WGS84 +ellps=WGS84

+towgs84=0,0,0"



Then, I wanted to reproject my raster to another projection:



     # Reprojecting into CH1903_LV03

     # First, change the coordinate reference system (crs)

     proj4string(rasterDF1) <- "+init=epsg:21781"

     # Second, reproject the raster

     rasterDF1.CH <- spTransform(rasterDF1, crs("+init=epsg:21781"))



At this point I get the following error:



     Error in spTransform(rasterDF1, crs("+init=epsg:21781")) :

       load package rgdal for spTransform methods



But the package rgdal is already uploaded! It must be something wrong in

the code!



______________________________________________

R-help@r-project.org<mailto:R-help@r-project.org> mailing list

https://stat.ethz.ch/mailman/listinfo/r-help

PLEASE do read the posting guide http://www.R-project.org/posting-

guide.html

and provide commented, minimal, self-contained, reproducible code.






	[[alternative HTML version deleted]]


