I am having a shapefile of polygons and another CSV file which contains a list of points as (Lat, Lng) pairs..
I want to check for each (lat, lng) pair from the CSV file which polygon does it fall inside..
The shapefile is projected and the proj file reads like this:
PROJCS["Transverse_Mercator",GEOGCS["GCS_OSGB 1936",
DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000],PARAMETER["false_northing",-100000],UNIT["Meter",1]]
My plan is as follows:
- Read the shapefile using the
readShapePoly
function in the RMapTools
package. - Read the points coordinates from the CSV file into a dataframe and convert it to SpatialPointsDataFrame
- Use
over
function to determine which polygon it falls inside.
In order to do so, I need to specify the proj4string
while loading the shapefile in step 1 and also transform the coordinates from the CSV file into the same projection system using spTransform
function before applying the over
function in step 3 as it requires that the points and polygons must be under the same projection system.
Any idea about what should the correct value for the proj file content shown above ?
Answer
The proj4string is a valid PROJ4 crs string.
see How can I get the proj4 string or EPSG code from a shapefile .prj file? and Shapefile PRJ to PostGIS SRID lookup table?
in short:
- You can use gdalinfo as in the first reference or the GDAL Python bindings as in the second reference.
Or
- go to Prj2EPSG (a simple service for converting well-known text projection information from .prj files into standard EPSG codes)
- Enter the content of your prj file
the result is EPSG:27700 so a first version of the PROJ4 string is
"+init=epsg:27700"
`Or
click on Proj4 and the complete PROJ4 string is:
"+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 comments:
Post a Comment