cálculo da distância mínima entre um ponto e a costa no Reino Unido
Eu tenho seguido o exemplo mostradoaqui, mas para o Reino Unido. Por esse motivo, estou usando o CRS para o Reino Unido do EPSG: 27700, que possui a seguinte seqüência de projeção:
"+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs"
No entanto, não tenho certeza sobre o código wgs.84 a seguir. Atualmente estou usando:
"+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
Também tentaram usar o dado = OSGB36 e + ellps = arejado também.
O código completo é o seguinte:
library(rgeos)
library(maptools)
library(rgdal)
epsg.27700 <- '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs'
wgs.84 <- '+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0'
coast <- readShapeLines("ne_10m_coastline",CRS(wgs.84)) #have tried other shapefiles with the same issue
MAD <- readWKT("POINT(-0.1830372 51.1197467)",p4s=CRS(wgs.84)) #Crawley, West Sussex
gDistance(MAD,coast)
[1] 0.28958
Warning messages:
1: In RGEOSDistanceFunc(spgeom1, spgeom2, byid, "rgeos_distance") :
Spatial object 1 is not projected; GEOS expects planar coordinates
2: In RGEOSDistanceFunc(spgeom1, spgeom2, byid, "rgeos_distance") :
Spatial object 2 is not projected; GEOS expects planar coordinates
3: In RGEOSDistanceFunc(spgeom1, spgeom2, byid, "rgeos_distance") :
spgeom1 and spgeom2 have different proj4 strings
Ao tentar completar a linha de projeção, um erro é exibido.
coast.proj <- spTransform(coast,CRS(Epsg.27700))
non finite transformation detected:
[1] 111.01051 19.68378 Inf Inf
Error in .spTransform_Line(input[[i]], to_args = to_args, from_args = from_args, :
failure in Lines 22 Line 1 points 1
In addition: Warning message:
In .spTransform_Line(input[[i]], to_args = to_args, from_args = from_args, :
671 projected point(s) not finite
Estou tendo problemas para entender o que fiz de errado aqui.