[R-sig-Geo] FW: proj4string error on data.frame generated from NCEP data

Frede Aakmann Tøgersen frtog at vestas.com
Fri Apr 8 08:50:13 CEST 2016


Reposting again again without data. So fetch the data yourself :-(

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 at 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
If you have received this e-mail in error please contact the sender. 



-----Original Message-----
From: Frede Aakmann Tøgersen 
Sent: 8. april 2016 08:46
To: Maggie CY Lau (maglau at princeton.edu)
Cc: r-sig-geo at r-project.org
Subject: FW: proj4string error on data.frame generated from NCEP data

Reposting without attachments.

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 at 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
If you have received this e-mail in error please contact the sender. 



-----Original Message-----
From: Frede Aakmann Tøgersen 
Sent: 8. april 2016 08:01
To: 'Maggie CY Lau'; r-sig-geo at r-project.org
Subject: RE: proj4string error on data.frame generated from NCEP data

Hi Maggie

Your error message says that there is some coordinates with latitudes above 90 degrees.

The problem seems to arise from the call to gridded. See below for a dput'ed version of the dataframe "air.sig995.ag.df" called "friend" in my code. This is what I found out:

> coordinates(friend) <- ~longitude+latitude
> bbox(friend)
             min max
longitude -177.5 180
latitude    60.0  90
> apply(coordinates(friend), 2, range)
     longitude latitude
[1,]    -177.5       60
[2,]     180.0       90

After using gridded() the bounding box is enlarged somewhat but the coordinates still unchanged.

> gridded(friend) <- TRUE
> bbox(friend)
              min    max
longitude -178.75 181.25
latitude    58.75  91.25
> apply(coordinates(friend), 2, range)
     longitude latitude
[1,]    -177.5       60
[2,]     180.0       90
>

If you leave out the gridded() part I guess you can proceed towards your goal. Here I did:

## this was okay
> crs <- "+proj=longlat +datum=WGS84"
> proj4string(friend) <- crs

## see attached plot
> png("longlat.png")
> plot(friend)
> dev.off()

Do a reprojection with spTransform():

> stere <- "+proj=stere +lat_0=90 +lat_ts=60 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"
> friend.stere <- spTransform(friend, CRS(stere))

And the plot is attached:

> png("stere.png")
> plot(friend.stere)
> dev.off()
X11cairo 

Why gridded() is extending domain outside permissible values for longitude and latitude I don't know.

\Frede

##### friend is a copy of air.sig995.ag.df <- NCEP.array2df(air.sig995.ag[,,1], var.names = 'Temperature')

## DELETED

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 at 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
If you have received this e-mail in error please contact the sender. 



-----Original Message-----
From: R-sig-Geo [mailto:r-sig-geo-bounces at r-project.org] On Behalf Of Maggie CY Lau
Sent: 7. april 2016 16:24
To: r-sig-geo at r-project.org
Subject: [R-sig-Geo] proj4string error on data.frame generated from NCEP data

HI all,

I am an ecologist who would like to use several datasets generated by NCEP reanalysis. I attempted to use the R package "RNCEP" to extract the data and generate .tiff files. These files will be analyzed by a student using ArcMap. I created the data fame with the information I need, but had problem exporting the data into .tiff file that can be projected in polar stereograph in ArcMap. The use of "+proj=longlat + datum=WGS84" gave the following error message:

Error in `proj4string<-`(`*tmp*`, value = <S4 object of class "CRS">) :
  Geographical CRS given to non-conformant data: 91.25

Then I tried using ""+proj=stere +lat_0=90 +lat_ts=60 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs". proj4string went fine but the export tiff appeared as a box image instead of an angular one.

Please kindly check the following codes from the line "library(sp)" onward.

Thanks,
Maggie Lau

====
install.packages("RNCEP", dependencies=TRUE)
install.packages(c('abind', 'maps', 'fields', 'tgp', 'fossil'), dependencies=TRUE)
install.packages("raster")
install.packages("rgdal")

library(RNCEP)
air.sig995.extent <- NCEP.gather(variable='air.sig995', level='surface', months.minmax=c(7),
years.minmax=c(2011), lat.southnorth=c(60,89.9), lon.westeast=c(-179,180),
reanalysis2=FALSE, return.units=TRUE)
air.sig995.ag <- NCEP.aggregate(wx.data=air.sig995.extent, YEARS=TRUE, MONTHS=TRUE,
DAYS=FALSE, HOURS=FALSE, fxn='mean')
dimnames(air.sig995.ag)[[3]][1]
air.sig995.ag.df <- NCEP.array2df(air.sig995.ag[,,1], var.names = 'Temperature')

library(sp)
coordinates(air.sig995.ag.df) <- ~longitude+latitude
gridded(air.sig995.ag.df) <- TRUE
crs <- "+proj=longlat + datum=WGS84"
proj4string(air.sig995.ag.df) <- CRS(crs)
#stere <- "+proj=stere +lat_0=90 +lat_ts=60 +lon_0=0
# +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"
#proj4string(air.sig995.ag.df) <- CRS(stere)

library(raster)
ras <- raster(air.sig995.ag.df)
writeRaster(ras, 'air.sig995.Jul.ag.tif', overwrite=TRUE)




	[[alternative HTML version deleted]]

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



More information about the R-sig-Geo mailing list