[R-sig-Geo] converting the projection from Lambert to WGS84 or NAD83
Francisco Rodriguez Sanchez
f.rodriguez.sanc at gmail.com
Thu Sep 21 12:58:41 CEST 2017
Hi Kyongho,
There seems to be something strange with your eMODIS raster, which I
understood represents something in the eastern US. There might be
something wrong with the coordinates or the original projection
information. When I reprojected it to global lonlat to see which area it
covers, it actually fell in Antartica! (see
https://i.imgur.com/wjTBt8E.png). So, I'm not sure if I got it
correctly, but I think that's not what you expect. That would explain
the error that the extents do not overlap.
Reproducible example follows:
library(raster)
## Create raster with same extent and projection
emodis <- raster(xmn = 243000, xmx = 2536500, ymn = -2136500, ymx = 752500,
resolution = 10000,
crs = "+proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45
+y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0",
vals = 0)
emodis
#> class : RasterLayer
#> dimensions : 289, 229, 66181 (nrow, ncol, ncell)
#> resolution : 10000, 10000 (x, y)
#> extent : 243000, 2533000, -2137500, 752500 (xmin, xmax, ymin, ymax)
#> coord. ref. : +proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0
+datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
#> data source : in memory
#> names : layer
#> values : 0, 0 (min, max)
## Project to lonlat to see where it falls
emodis.lonlat <- projectRaster(emodis, crs = "+proj=longlat +datum=WGS84")
library(maptools)
data(wrld_simpl)
plot(wrld_simpl)
plot(emodis.lonlat, add = TRUE)
# See map at ![](https://i.imgur.com/wjTBt8E.png)
Hope this helps!
Cheers,
Paco
El 20/09/2017 a las 21:50, Kyongho Son escribió:
> I am trying to reproject the eMODIS raster
>
> * Projected Coordinate System:Sphere_ARC_INFO_Lambert_Azimuthal_Equal_Area
> * Projection: Lambert_Azimuthal_Equal_Area
> * Datum: D_Sphere_ARC_INFO
>
> to the WGS84 or NAD83 18N
>
> So that I can clip eMODIS raster files (more than 100) using a watershed boundary.
> I attached the script here, but I still can not properly reproject the eMOIDS raster files.
>
>
> # reading emodis data
>
> # east US map tree phenology map
> tmp<-raster("../../obs/eMODIS_East_SOSTAvg0114_v1/sostavg0114")
>
> proj4string(tmp)
> [1] "+proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"
>
> print(tmp)
>
>> print(tmp)
> class : RasterLayer
> dimensions : 11556, 9174, 106014744 (nrow, ncol, ncell)
> resolution : 250, 250 (x, y)
> extent : 243000, 2536500, -2136500, 752500 (xmin, xmax, ymin, ymax)
> coord. ref. : +proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
> data source : /work.taichi/Projects/Biscuit/rhessys/obs/eMODIS_East_SOSTAvg0114_v1/sostavg0114
> names : sostavg0114
> values : -115, 1000 (min, max)
>
>
> # small watershed boundary map in NY state
> bb<-raster("../../obs/gis/bb_soil_def_map.tif")
> proj4string(bb)
> [1] "+proj=utm +zone=18 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"
>
> print(bb)
>
>> print(bb)
> class : RasterLayer
> dimensions : 598, 515, 307970 (nrow, ncol, ncell)
> resolution : 10, 10 (x, y)
> extent : 540217, 545367, 4648219, 4654199 (xmin, xmax, ymin, ymax)
> coord. ref. : +proj=utm +zone=18 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
> data source : /work.taichi/Projects/Biscuit/rhessys/obs/gis/bb_soil_def_map.tif
> names : bb_soil_def_map
> values : 0, 5712 (min, max)
>
> ex <- projectExtent(bb, projection(tmp))
>
> print(ex)
>
>> print(ex)
> class : RasterLayer
> dimensions : 598, 515, 307970 (nrow, ncol, ncell)
> resolution : 30.12012, 14.94084 (x, y)
> extent : 6691756, 6707267, 9941473, 9950408 (xmin, xmax, ymin, ymax)
> coord. ref. : +proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
>
>> ex
> class : RasterLayer
> dimensions : 598, 515, 307970 (nrow, ncol, ncell)
> resolution : 30.12012, 14.94084 (x, y)
> extent : 6691756, 6707267, 9941473, 9950408 (xmin, xmax, ymin, ymax)
> coord. ref. : +proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
>
>
> c<-crop(tmp, ex)
>
> Error in .local(x, y, ...) : extents do not overlap
>
>
>
> ________________________________
> From: Michael Sumner <mdsumner at gmail.com>
> Sent: Tuesday, September 19, 2017 9:15 PM
> To: Kyongho Son; RsigGeo
> Subject: Re: [R-sig-Geo] converting the projection
>
> Great thanks, that is good detail -but we still need the extents of both data to be able to see where the problem is.
>
> You gave us the proj4string for both, but we also need the extent - you can print each object for a full summary eg.
>
> print(bb)
>
> print(tmp)
>
> and with those anyone can reproduce enough (without any real data) to recreate your experience. (I am so used to working with this stuff I forget to remind others that print(theraster) is usually more than enough information to work through a reproducible example)
>
> But, a guess is - unless the projection metadata is wrong, raster is probably telling you the truth - but it should be easy to see why there's a problem with the print output (essentially the proj4string and extent provide enough information for an experienced problem solver).
>
> Cheers, Mike.
>
>
>
> On Wed, 20 Sep 2017 at 11:05 Kyongho Son <kkyong77 at hotmail.com<mailto:kkyong77 at hotmail.com>> wrote:
>
> Sorry and thanks, Mike
> I can not share all codes and data since the original data are huge.
> I copied the scripts that I used to reproject one of rasters and then make sure that they have same projection
>
> Then clip a large raster with a small raster. However, I got the error messages, the two raster maps are not overlap.
>
> They should overlap if the projection was correct.
>
>
>
> # east US map tree phenology map
> tmp<-raster("../../obs/eMODIS_East_SOSTAvg0114_v1/sostavg0114")
>
> proj4string(tmp)
> [1] "+proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"
>
> # small watershed boundary map in NY state
> bb<-raster("../../obs/gis/bb_soil_def_map.tif")
> proj4string(bb)
> [1] "+proj=utm +zone=18 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"
>
> ex <- projectExtent(bb, projection(tmp))
>
>> ex
> class : RasterLayer
> dimensions : 598, 515, 307970 (nrow, ncol, ncell)
> resolution : 30.12012, 14.94084 (x, y)
> extent : 6691756, 6707267, 9941473, 9950408 (xmin, xmax, ymin, ymax)
> coord. ref. : +proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
>
>
> c<-crop(tmp, ex)
>
> Error in .local(x, y, ...) : extents do not overlap
>
>
>
>
> *Kyongho Son*
> Postdoctoral Fellow
> Research Foundation of The City University of New York
>
>
> ________________________________
> From: Michael Sumner <mdsumner at gmail.com<mailto:mdsumner at gmail.com>>
> Sent: Tuesday, September 19, 2017 8:32 PM
> To: Kyongho Son; RsigGeo
>
> Subject: Re: [R-sig-Geo] converting the projection
> Keep on list please.
>
> Share code to demonstrate so we can see the problem. Use projectRaster(a, b) for alignment, try crop(b, ex, snap = "out") for inclusive crop.
>
> And apologies I wrote clip instead of crop earlier.
>
> Cheers, Mike
>
> On Wed, 20 Sep 2017, 07:42 Kyongho Son <kkyong77 at hotmail.com<mailto:kkyong77 at hotmail.com>> wrote:
>
> I did the exact same way, but the output of the reprojection of 'a' raster did not properly align with 'b' raster.
>
>
>
>
>
> *Kyongho Son*
> Postdoctoral Fellow
> Research Foundation of The City University of New York
>
>
> ________________________________
> From: Michael Sumner <mdsumner at gmail.com<mailto:mdsumner at gmail.com>>
> Sent: Tuesday, September 19, 2017 5:03 PM
> To: Kyongho Son; r-sig-geo
> Subject: Re: [R-sig-Geo] converting the projection
>
> Try projecting just the extent
> library(raster)
> ex <- projectExtent(a, projection(b))
> clip(b, ex)
>
> where a, b are your two raster.
>
> Cheers, Mike
>
> On Wed, 20 Sep 2017, 06:18 Kyongho Son <kkyong77 at hotmail.com<mailto:kkyong77 at hotmail.com>> wrote:
>
> Hi I have two raster data sets but they have two datum and projection.
>
> I would like to convert one to the other since I would like to clip the one raster using the other raster.
>
> they should have same projections.
>
>
> proj4string(bb)
> [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
> proj4string(SOSTavg)
>
> proj4string(SOSTavg)
> [1] "+proj=laea +lat_0=-100 +lon_0=6370997 +x_0=45 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
>
>
> Thanks,
>
> Kyongho
>
>
>
>
>
>
>
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org<mailto:R-sig-Geo at r-project.org>
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> --
> <https://maps.google.com/?q=203+Channel+Highway+%0D+Kingston+Tasmania+7050+Australia+%3Chttps://maps.google.com/?q%3D203%2BChannel%2BHighway%2B%250D%2BKingston%2BTasmania%2B7050%2BAustralia%26entry%3Dgmail%26source%3Dg%3E&entry=gmail&source=g><https://maps.google.com/?q=203+Channel+Highway+%0D+Kingston+Tasmania+7050+Australia&entry=gmail&source=g>
> Dr. Michael Sumner
> Software and Database Engineer
> Australian Antarctic Division
> 203 Channel Highway<https://maps.google.com/?q=203+Channel+Highway+%0D+Kingston+Tasmania+7050+Australia&entry=gmail&source=g>
> Kingston Tasmania 7050 Australia<https://maps.google.com/?q=203+Channel+Highway+%0D+Kingston+Tasmania+7050+Australia&entry=gmail&source=g>
>
> --
> <https://maps.google.com/?q=203+Channel+Highway+%0D+Kingston+Tasmania+7050+Australia&entry=gmail&source=g>
> Dr. Michael Sumner
> Software and Database Engineer
> Australian Antarctic Division
> 203 Channel Highway<https://maps.google.com/?q=203+Channel+Highway+%0D+Kingston+Tasmania+7050+Australia+%3Chttps://maps.google.com/?q%3D203%2BChannel%2BHighway%2B%250D%2BKingston%2BTasmania%2B7050%2BAustralia%26entry%3Dgmail%26source%3Dg%3E&entry=gmail&source=g>
> Kingston Tasmania 7050 Australia<https://maps.google.com/?q=203+Channel+Highway+%0D+Kingston+Tasmania+7050+Australia+%3Chttps://maps.google.com/?q%3D203%2BChannel%2BHighway%2B%250D%2BKingston%2BTasmania%2B7050%2BAustralia%26entry%3Dgmail%26source%3Dg%3E&entry=gmail&source=g>
>
> --
> Dr. Michael Sumner
> Software and Database Engineer
> Australian Antarctic Division
> 203 Channel Highway
> Kingston Tasmania 7050 Australia
>
>
> [[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
--
Dr Francisco Rodriguez-Sanchez
Integrative Ecology Group
Estacion Biologica de Doñana (CSIC)
Avda. Americo Vespucio 26
E-41092 Sevilla (Spain)
http://bit.ly/frod_san
More information about the R-sig-Geo
mailing list