Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set the right crs on sf object to plot coordinate points

I'm trying to define the right CRS for my sf object. I want to plot points atop the following layer (country: the Netherlands):

Simple feature collection with 380 features and 3 fields
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: 13565.4 ymin: 306846.2 xmax: 278026.1 ymax: 619232.6
epsg (SRID):    NA
proj4string:    +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

output:

enter image description here

This layer has the correct projection.

But the POINT layer doesn't have the correct CRS project presumably because it has no proj4string?

Simple feature collection with 566 features and 5 fields
geometry type:  POINT
dimension:      XY
bbox:           xmin: 3.5837 ymin: 50.86487 xmax: 7.120998 ymax: 53.44835
epsg (SRID):    NA
proj4string:    NA

enter image description here

How do I set the same projection as the previous map so I can plot the coordinates points on it?

like image 612
Tdebeus Avatar asked May 08 '18 11:05

Tdebeus


2 Answers

You can use st_crs.

As it says in the examples:

st_crs(x) <- value 

In your case it would probably be

st_crs(points) <- st_crs(polygons)

Note: the points should be registered in the same coordinate system, of course. If not, you would have to find out the correct coordinate system for them and then use st_transform to put them into the same coordinate system as the polygons.

like image 70
loki Avatar answered Nov 16 '22 16:11

loki


In addition, there is the function st_set_crs(), which can be used in a pipe. For example,

points %>% st_set_crs(st_crs(polygons))

like image 24
sebdalgarno Avatar answered Nov 16 '22 18:11

sebdalgarno