Overlay a spatial polygon with a grid and check in which grid element specific coordinates are located The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How can I get a shapefile from a postgis query?Drawing a grid over a Map in RCalculate centre point of SpatialGrid objectHow to determine in which grid cell each coordinate of an x,y series is located?Adding a grid and selecting random cells from spatial polygon in rDraw a grid of polygons in Google Earth EngineHow to create a grid whose vertex coordinates are shown on an attribute table in Arcmap?Creating square grid polygon shapefile with Python?Creating spatially projected polygon grid with ArcMap?How to determine in which grid cell each coordinate of an x,y series is located?Python: Point in polygon, boundary and vertex check (ray casting)Creating polygon grid of triangles with R?Intersect coordinates with spatial polygon with RCreate a polygon grid using with GeopandasCreate spatial polygon grid from spatial points in RFinding xy-coordinates inside a polygon, which are the closest to the centroid of that specific polygon
What force causes entropy to increase?
For what reasons would an animal species NOT cross a *horizontal* land bridge?
What other Star Trek series did the main TNG cast show up in?
Can we generate random numbers using irrational numbers like π and e?
Why are PDP-7-style microprogrammed instructions out of vogue?
What do I do when my TA workload is more than expected?
Nested ellipses in tikzpicture: Chomsky hierarchy
Do I have Disadvantage attacking with an off-hand weapon?
Was credit for the black hole image misappropriated?
How to politely respond to generic emails requesting a PhD/job in my lab? Without wasting too much time
Does Parliament hold absolute power in the UK?
How many Rusted Keys do you need to get red items most of the time?
Solving overdetermined system by QR decomposition
TDS update packages don't remove unneeded items
How to make Illustrator type tool selection automatically adapt with text length
Match Roman Numerals
What's the point in a preamp?
Am I ethically obligated to go into work on an off day if the reason is sudden?
Why did Peik Lin say, "I'm not an animal"?
Are spiders unable to hurt humans, especially very small spiders?
Can each chord in a progression create its own key?
Simulating Exploding Dice
How to support a colleague who finds meetings extremely tiring?
Can I visit the Trinity College (Cambridge) library and see some of their rare books
Overlay a spatial polygon with a grid and check in which grid element specific coordinates are located
The 2019 Stack Overflow Developer Survey Results Are In
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How can I get a shapefile from a postgis query?Drawing a grid over a Map in RCalculate centre point of SpatialGrid objectHow to determine in which grid cell each coordinate of an x,y series is located?Adding a grid and selecting random cells from spatial polygon in rDraw a grid of polygons in Google Earth EngineHow to create a grid whose vertex coordinates are shown on an attribute table in Arcmap?Creating square grid polygon shapefile with Python?Creating spatially projected polygon grid with ArcMap?How to determine in which grid cell each coordinate of an x,y series is located?Python: Point in polygon, boundary and vertex check (ray casting)Creating polygon grid of triangles with R?Intersect coordinates with spatial polygon with RCreate a polygon grid using with GeopandasCreate spatial polygon grid from spatial points in RFinding xy-coordinates inside a polygon, which are the closest to the centroid of that specific polygon
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
How can one use R to
split a shapefile in 200 meter squares/sub-polygons,
plot this grid (incl. ID numbers for each square) over the original map below, and- evaluate in which square specific geographic coordinates are located.
I am a beginner in GIS and this is perhaps a basic question, but I haven't found a tutorial on how to do this in R.
What I have done so far is loading a shapefile of NYC and plotting some exemplary geographic coordinates.
I appreciate any general advice, but I am looking for an example (R code) how to this with the data below.
# Load packages
library(maptools)
# Download shapefile for NYC
# OLD URL (no longer working)
# shpurl <- "http://www.nyc.gov/html/dcp/download/bytes/nybb_13a.zip"
shpurl <- "https://www1.nyc.gov/assets/planning/download/zip/data-maps/open-data/nybb_13a.zip"
tmp <- tempfile(fileext=".zip")
download.file(shpurl, destfile=tmp)
files <- unzip(tmp, exdir=getwd())
# Load & plot shapefile
shp <- readShapePoly(files[grep(".shp$", files)])
plot(shp)
# Define coordinates
points_of_interest <- data.frame(y=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
x =c(130600, 150600, 180600, 198000, 248000, 218000),
id =c("A"), stringsAsFactors=F)
# Plot coordinates
points(points_of_interest$y, points_of_interest$x, pch=19, col="red")
r vector-grid point-in-polygon
add a comment |
How can one use R to
split a shapefile in 200 meter squares/sub-polygons,
plot this grid (incl. ID numbers for each square) over the original map below, and- evaluate in which square specific geographic coordinates are located.
I am a beginner in GIS and this is perhaps a basic question, but I haven't found a tutorial on how to do this in R.
What I have done so far is loading a shapefile of NYC and plotting some exemplary geographic coordinates.
I appreciate any general advice, but I am looking for an example (R code) how to this with the data below.
# Load packages
library(maptools)
# Download shapefile for NYC
# OLD URL (no longer working)
# shpurl <- "http://www.nyc.gov/html/dcp/download/bytes/nybb_13a.zip"
shpurl <- "https://www1.nyc.gov/assets/planning/download/zip/data-maps/open-data/nybb_13a.zip"
tmp <- tempfile(fileext=".zip")
download.file(shpurl, destfile=tmp)
files <- unzip(tmp, exdir=getwd())
# Load & plot shapefile
shp <- readShapePoly(files[grep(".shp$", files)])
plot(shp)
# Define coordinates
points_of_interest <- data.frame(y=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
x =c(130600, 150600, 180600, 198000, 248000, 218000),
id =c("A"), stringsAsFactors=F)
# Plot coordinates
points(points_of_interest$y, points_of_interest$x, pch=19, col="red")
r vector-grid point-in-polygon
See also stackoverflow.com/q/17801398/287948
– Peter Krauss
Mar 22 '14 at 7:51
Is there way to dropping empty grids? or just griding the boundary of interest?
– NeedHelp
Apr 6 at 22:53
If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review
– wetland
Apr 6 at 23:16
add a comment |
How can one use R to
split a shapefile in 200 meter squares/sub-polygons,
plot this grid (incl. ID numbers for each square) over the original map below, and- evaluate in which square specific geographic coordinates are located.
I am a beginner in GIS and this is perhaps a basic question, but I haven't found a tutorial on how to do this in R.
What I have done so far is loading a shapefile of NYC and plotting some exemplary geographic coordinates.
I appreciate any general advice, but I am looking for an example (R code) how to this with the data below.
# Load packages
library(maptools)
# Download shapefile for NYC
# OLD URL (no longer working)
# shpurl <- "http://www.nyc.gov/html/dcp/download/bytes/nybb_13a.zip"
shpurl <- "https://www1.nyc.gov/assets/planning/download/zip/data-maps/open-data/nybb_13a.zip"
tmp <- tempfile(fileext=".zip")
download.file(shpurl, destfile=tmp)
files <- unzip(tmp, exdir=getwd())
# Load & plot shapefile
shp <- readShapePoly(files[grep(".shp$", files)])
plot(shp)
# Define coordinates
points_of_interest <- data.frame(y=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
x =c(130600, 150600, 180600, 198000, 248000, 218000),
id =c("A"), stringsAsFactors=F)
# Plot coordinates
points(points_of_interest$y, points_of_interest$x, pch=19, col="red")
r vector-grid point-in-polygon
How can one use R to
split a shapefile in 200 meter squares/sub-polygons,
plot this grid (incl. ID numbers for each square) over the original map below, and- evaluate in which square specific geographic coordinates are located.
I am a beginner in GIS and this is perhaps a basic question, but I haven't found a tutorial on how to do this in R.
What I have done so far is loading a shapefile of NYC and plotting some exemplary geographic coordinates.
I appreciate any general advice, but I am looking for an example (R code) how to this with the data below.
# Load packages
library(maptools)
# Download shapefile for NYC
# OLD URL (no longer working)
# shpurl <- "http://www.nyc.gov/html/dcp/download/bytes/nybb_13a.zip"
shpurl <- "https://www1.nyc.gov/assets/planning/download/zip/data-maps/open-data/nybb_13a.zip"
tmp <- tempfile(fileext=".zip")
download.file(shpurl, destfile=tmp)
files <- unzip(tmp, exdir=getwd())
# Load & plot shapefile
shp <- readShapePoly(files[grep(".shp$", files)])
plot(shp)
# Define coordinates
points_of_interest <- data.frame(y=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
x =c(130600, 150600, 180600, 198000, 248000, 218000),
id =c("A"), stringsAsFactors=F)
# Plot coordinates
points(points_of_interest$y, points_of_interest$x, pch=19, col="red")
r vector-grid point-in-polygon
r vector-grid point-in-polygon
edited Apr 14 '18 at 20:07
nmtoken
8,11542866
8,11542866
asked Mar 6 '14 at 22:02
majommajom
161129
161129
See also stackoverflow.com/q/17801398/287948
– Peter Krauss
Mar 22 '14 at 7:51
Is there way to dropping empty grids? or just griding the boundary of interest?
– NeedHelp
Apr 6 at 22:53
If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review
– wetland
Apr 6 at 23:16
add a comment |
See also stackoverflow.com/q/17801398/287948
– Peter Krauss
Mar 22 '14 at 7:51
Is there way to dropping empty grids? or just griding the boundary of interest?
– NeedHelp
Apr 6 at 22:53
If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review
– wetland
Apr 6 at 23:16
See also stackoverflow.com/q/17801398/287948
– Peter Krauss
Mar 22 '14 at 7:51
See also stackoverflow.com/q/17801398/287948
– Peter Krauss
Mar 22 '14 at 7:51
Is there way to dropping empty grids? or just griding the boundary of interest?
– NeedHelp
Apr 6 at 22:53
Is there way to dropping empty grids? or just griding the boundary of interest?
– NeedHelp
Apr 6 at 22:53
If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review
– wetland
Apr 6 at 23:16
If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review
– wetland
Apr 6 at 23:16
add a comment |
4 Answers
4
active
oldest
votes
Here is an example using a SpatialGrid
object:
### read shapefile
library("rgdal")
shp <- readOGR("nybb_13a", "nybb")
proj4string(shp) # units us-ft
# [1] "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333
# +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +datum=NAD83
# +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0"
### define coordinates and convert to SpatialPointsDataFrame
poi <- data.frame(x=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
y=c(130600, 150600, 180600, 198000, 248000, 218000),
id="A", stringsAsFactors=F)
coordinates(poi) <- ~ x + y
proj4string(poi) <- proj4string(shp)
### define SpatialGrid object
bb <- bbox(shp)
cs <- c(3.28084, 3.28084)*6000 # cell size 6km x 6km (for illustration)
# 1 ft = 3.28084 m
cc <- bb[, 1] + (cs/2) # cell offset
cd <- ceiling(diff(t(bb))/cs) # number of cells per direction
grd <- GridTopology(cellcentre.offset=cc, cellsize=cs, cells.dim=cd)
grd
# cellcentre.offset 923018 129964
# cellsize 19685 19685
# cells.dim 8 8
sp_grd <- SpatialGridDataFrame(grd,
data=data.frame(id=1:prod(cd)),
proj4string=CRS(proj4string(shp)))
summary(sp_grd)
# Object of class SpatialGridDataFrame
# Coordinates:
# min max
# x 913175 1070655
# y 120122 277602
# Is projected: TRUE
# ...
Now you can use the implemented over
-method to obtain the cell IDs:
over(poi, sp_grd)
# id
# 1 57
# 2 51
# 3 38
# 4 39
# 5 14
# 6 28
To plot the shapefile and the grid with the cell IDs:
library("lattice")
spplot(sp_grd, "id",
panel = function(...)
panel.gridplot(..., border="black")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(...)
)
or without colour/colour key:
library("lattice")
spplot(sp_grd, "id", colorkey=FALSE,
panel = function(...)
panel.gridplot(..., border="black", col.regions="white")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(..., col="red")
)
This looks like an answer to me, but in case you are looking for something different. Try the r tag in stackoverflow stackoverflow.com/search?q=R+tag
– Brad Nesom
Mar 14 '14 at 2:26
@rcs this code looks just like what I am trying to do but my shapefile is in a different projection:proj4string (DK_reg1) [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
does anyone have any suggestions on how to break this shapefiles of this projection to 1000 equal sized grid cells? and then randomly select 100 of them and highlight them?
– I Del Toro
Sep 13 '14 at 11:34
add a comment |
The New York dataset provided in the question is no longer available for download. I use the nc dataset from sf package to demonstrate a solution using sf package:
library(sf)
library(ggplot2)
# read nc polygon data and transform to UTM
nc <- st_read(system.file('shape/nc.shp', package = 'sf')) %>%
st_transform(32617)
# random sample of 5 points
pts <- st_sample(nc, size = 5) %>% st_sf
# create 50km grid - here you can substitute 200 for 50000
grid_50 <- st_make_grid(nc, cellsize = c(50000, 50000)) %>%
st_sf(grid_id = 1:length(.))
# create labels for each grid_id
grid_lab <- st_centroid(grid_50) %>% cbind(st_coordinates(.))
# view the sampled points, polygons and grid
ggplot() +
geom_sf(data = nc, fill = 'white', lwd = 0.05) +
geom_sf(data = pts, color = 'red', size = 1.7) +
geom_sf(data = grid_50, fill = 'transparent', lwd = 0.3) +
geom_text(data = grid_lab, aes(x = X, y = Y, label = grid_id), size = 2) +
coord_sf(datum = NA) +
labs(x = "") +
labs(y = "")
# which grid square is each point in?
pts %>% st_join(grid_50, join = st_intersects) %>% as.data.frame
#> grid_id geometry
#> 1 55 POINT (359040.7 3925435)
#> 2 96 POINT (717024 4007464)
#> 3 91 POINT (478906.6 4037308)
#> 4 40 POINT (449671.6 3901418)
#> 5 30 POINT (808971.4 3830231)
Thanks. I updated the link in my question to relfect the changes on their webpage. Now it should work again.
– majom
Mar 5 '18 at 15:18
I really need to start using thesf
package. This is awesome!
– spacedSparking
Mar 23 '18 at 20:41
Is there an easy way to only plot the grid cells that intersect with the state polygon?
– spacedSparking
Mar 23 '18 at 22:09
st_intersection(grid_50, nc) should do it
– sebdalgarno
Mar 24 '18 at 23:18
add a comment |
Have you looked at the R raster package? It has tools to convert to/from vector GIS objects so you should be able to a) create a raster (grid) with 200x200m cells and b) convert it to a set of polygons with a logical id of some kind. From there I would look at the sp package to help with intersecting the points and the polygon grid. This http://cran.r-project.org/web/packages/sp/vignettes/over.pdf page might be a good start. Wandering through the sp package docs you might be able to start with the SpatialGrid-class and just skip the raster part entirely.
1
Thanks for your comment. I already looked at those packages, but failed to implement this. This was why I was asking for an example.
– majom
Mar 10 '14 at 9:05
add a comment |
The "GIS universe" is complex and have many standards that your data must be compliant. All "GIS tools" interoperates by GIS-standards. All "serious GIS data" today (2014) are stored in a database.
The best way to "use R" in a GIS context, with other FOSS tools, is embedded into SQL. The best tools are PostgreSQL 9.X (see PL/R) and PostGIS.
You answer:
- To import/export shape files: use
shp2pgsql
andpgsql2shp
. - To "split a shape file in 200 meter squares/sub-polygons": see
ST_SnapToGrid()
,ST_AsRaster()
, etc. We need understand better your needs to express into a "recipe". - you say that need "geographic coordinates are located" .. perhaps
ST_Centroid()
of the squares (?)... You can express "more mathematically" so I understand.
... Perhaps you not need any raster convertion, only a matrix of regurlar-sampled points.
A primitive way is use R without PL/R, in a your usual external compiler: only convert your polygons and export as shape or as WKT (see ST_AsText
), then convert data with awk or another filter to the R format.
1
Thanks for your help. However, I would strongly prefer a solution which relies completely on R and existing packages. When I am able to split the shape file in 200m*200m subpolygons I can check withpoint.in.polygon
which coordinates are in which polygons. My problem is to split the original shapefile in those sub-polygons.
– majom
Mar 9 '14 at 21:38
It is not a "SIG problem", try to ask at Stackoverflow directly.
– Peter Krauss
Mar 10 '14 at 11:18
See also how to deal with points of type SpatialPointsDataFrame, and a grid that is a raster at Stackoverflow.
– Peter Krauss
Mar 22 '14 at 7:54
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "79"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f88830%2foverlay-a-spatial-polygon-with-a-grid-and-check-in-which-grid-element-specific-c%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
Here is an example using a SpatialGrid
object:
### read shapefile
library("rgdal")
shp <- readOGR("nybb_13a", "nybb")
proj4string(shp) # units us-ft
# [1] "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333
# +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +datum=NAD83
# +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0"
### define coordinates and convert to SpatialPointsDataFrame
poi <- data.frame(x=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
y=c(130600, 150600, 180600, 198000, 248000, 218000),
id="A", stringsAsFactors=F)
coordinates(poi) <- ~ x + y
proj4string(poi) <- proj4string(shp)
### define SpatialGrid object
bb <- bbox(shp)
cs <- c(3.28084, 3.28084)*6000 # cell size 6km x 6km (for illustration)
# 1 ft = 3.28084 m
cc <- bb[, 1] + (cs/2) # cell offset
cd <- ceiling(diff(t(bb))/cs) # number of cells per direction
grd <- GridTopology(cellcentre.offset=cc, cellsize=cs, cells.dim=cd)
grd
# cellcentre.offset 923018 129964
# cellsize 19685 19685
# cells.dim 8 8
sp_grd <- SpatialGridDataFrame(grd,
data=data.frame(id=1:prod(cd)),
proj4string=CRS(proj4string(shp)))
summary(sp_grd)
# Object of class SpatialGridDataFrame
# Coordinates:
# min max
# x 913175 1070655
# y 120122 277602
# Is projected: TRUE
# ...
Now you can use the implemented over
-method to obtain the cell IDs:
over(poi, sp_grd)
# id
# 1 57
# 2 51
# 3 38
# 4 39
# 5 14
# 6 28
To plot the shapefile and the grid with the cell IDs:
library("lattice")
spplot(sp_grd, "id",
panel = function(...)
panel.gridplot(..., border="black")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(...)
)
or without colour/colour key:
library("lattice")
spplot(sp_grd, "id", colorkey=FALSE,
panel = function(...)
panel.gridplot(..., border="black", col.regions="white")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(..., col="red")
)
This looks like an answer to me, but in case you are looking for something different. Try the r tag in stackoverflow stackoverflow.com/search?q=R+tag
– Brad Nesom
Mar 14 '14 at 2:26
@rcs this code looks just like what I am trying to do but my shapefile is in a different projection:proj4string (DK_reg1) [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
does anyone have any suggestions on how to break this shapefiles of this projection to 1000 equal sized grid cells? and then randomly select 100 of them and highlight them?
– I Del Toro
Sep 13 '14 at 11:34
add a comment |
Here is an example using a SpatialGrid
object:
### read shapefile
library("rgdal")
shp <- readOGR("nybb_13a", "nybb")
proj4string(shp) # units us-ft
# [1] "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333
# +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +datum=NAD83
# +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0"
### define coordinates and convert to SpatialPointsDataFrame
poi <- data.frame(x=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
y=c(130600, 150600, 180600, 198000, 248000, 218000),
id="A", stringsAsFactors=F)
coordinates(poi) <- ~ x + y
proj4string(poi) <- proj4string(shp)
### define SpatialGrid object
bb <- bbox(shp)
cs <- c(3.28084, 3.28084)*6000 # cell size 6km x 6km (for illustration)
# 1 ft = 3.28084 m
cc <- bb[, 1] + (cs/2) # cell offset
cd <- ceiling(diff(t(bb))/cs) # number of cells per direction
grd <- GridTopology(cellcentre.offset=cc, cellsize=cs, cells.dim=cd)
grd
# cellcentre.offset 923018 129964
# cellsize 19685 19685
# cells.dim 8 8
sp_grd <- SpatialGridDataFrame(grd,
data=data.frame(id=1:prod(cd)),
proj4string=CRS(proj4string(shp)))
summary(sp_grd)
# Object of class SpatialGridDataFrame
# Coordinates:
# min max
# x 913175 1070655
# y 120122 277602
# Is projected: TRUE
# ...
Now you can use the implemented over
-method to obtain the cell IDs:
over(poi, sp_grd)
# id
# 1 57
# 2 51
# 3 38
# 4 39
# 5 14
# 6 28
To plot the shapefile and the grid with the cell IDs:
library("lattice")
spplot(sp_grd, "id",
panel = function(...)
panel.gridplot(..., border="black")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(...)
)
or without colour/colour key:
library("lattice")
spplot(sp_grd, "id", colorkey=FALSE,
panel = function(...)
panel.gridplot(..., border="black", col.regions="white")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(..., col="red")
)
This looks like an answer to me, but in case you are looking for something different. Try the r tag in stackoverflow stackoverflow.com/search?q=R+tag
– Brad Nesom
Mar 14 '14 at 2:26
@rcs this code looks just like what I am trying to do but my shapefile is in a different projection:proj4string (DK_reg1) [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
does anyone have any suggestions on how to break this shapefiles of this projection to 1000 equal sized grid cells? and then randomly select 100 of them and highlight them?
– I Del Toro
Sep 13 '14 at 11:34
add a comment |
Here is an example using a SpatialGrid
object:
### read shapefile
library("rgdal")
shp <- readOGR("nybb_13a", "nybb")
proj4string(shp) # units us-ft
# [1] "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333
# +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +datum=NAD83
# +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0"
### define coordinates and convert to SpatialPointsDataFrame
poi <- data.frame(x=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
y=c(130600, 150600, 180600, 198000, 248000, 218000),
id="A", stringsAsFactors=F)
coordinates(poi) <- ~ x + y
proj4string(poi) <- proj4string(shp)
### define SpatialGrid object
bb <- bbox(shp)
cs <- c(3.28084, 3.28084)*6000 # cell size 6km x 6km (for illustration)
# 1 ft = 3.28084 m
cc <- bb[, 1] + (cs/2) # cell offset
cd <- ceiling(diff(t(bb))/cs) # number of cells per direction
grd <- GridTopology(cellcentre.offset=cc, cellsize=cs, cells.dim=cd)
grd
# cellcentre.offset 923018 129964
# cellsize 19685 19685
# cells.dim 8 8
sp_grd <- SpatialGridDataFrame(grd,
data=data.frame(id=1:prod(cd)),
proj4string=CRS(proj4string(shp)))
summary(sp_grd)
# Object of class SpatialGridDataFrame
# Coordinates:
# min max
# x 913175 1070655
# y 120122 277602
# Is projected: TRUE
# ...
Now you can use the implemented over
-method to obtain the cell IDs:
over(poi, sp_grd)
# id
# 1 57
# 2 51
# 3 38
# 4 39
# 5 14
# 6 28
To plot the shapefile and the grid with the cell IDs:
library("lattice")
spplot(sp_grd, "id",
panel = function(...)
panel.gridplot(..., border="black")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(...)
)
or without colour/colour key:
library("lattice")
spplot(sp_grd, "id", colorkey=FALSE,
panel = function(...)
panel.gridplot(..., border="black", col.regions="white")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(..., col="red")
)
Here is an example using a SpatialGrid
object:
### read shapefile
library("rgdal")
shp <- readOGR("nybb_13a", "nybb")
proj4string(shp) # units us-ft
# [1] "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333
# +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +datum=NAD83
# +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0"
### define coordinates and convert to SpatialPointsDataFrame
poi <- data.frame(x=c(919500, 959500, 1019500, 1049500, 1029500, 989500),
y=c(130600, 150600, 180600, 198000, 248000, 218000),
id="A", stringsAsFactors=F)
coordinates(poi) <- ~ x + y
proj4string(poi) <- proj4string(shp)
### define SpatialGrid object
bb <- bbox(shp)
cs <- c(3.28084, 3.28084)*6000 # cell size 6km x 6km (for illustration)
# 1 ft = 3.28084 m
cc <- bb[, 1] + (cs/2) # cell offset
cd <- ceiling(diff(t(bb))/cs) # number of cells per direction
grd <- GridTopology(cellcentre.offset=cc, cellsize=cs, cells.dim=cd)
grd
# cellcentre.offset 923018 129964
# cellsize 19685 19685
# cells.dim 8 8
sp_grd <- SpatialGridDataFrame(grd,
data=data.frame(id=1:prod(cd)),
proj4string=CRS(proj4string(shp)))
summary(sp_grd)
# Object of class SpatialGridDataFrame
# Coordinates:
# min max
# x 913175 1070655
# y 120122 277602
# Is projected: TRUE
# ...
Now you can use the implemented over
-method to obtain the cell IDs:
over(poi, sp_grd)
# id
# 1 57
# 2 51
# 3 38
# 4 39
# 5 14
# 6 28
To plot the shapefile and the grid with the cell IDs:
library("lattice")
spplot(sp_grd, "id",
panel = function(...)
panel.gridplot(..., border="black")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(...)
)
or without colour/colour key:
library("lattice")
spplot(sp_grd, "id", colorkey=FALSE,
panel = function(...)
panel.gridplot(..., border="black", col.regions="white")
sp.polygons(shp)
sp.points(poi, cex=1.5)
panel.text(..., col="red")
)
edited Mar 12 '14 at 20:55
answered Mar 10 '14 at 21:53
rcsrcs
3,35911925
3,35911925
This looks like an answer to me, but in case you are looking for something different. Try the r tag in stackoverflow stackoverflow.com/search?q=R+tag
– Brad Nesom
Mar 14 '14 at 2:26
@rcs this code looks just like what I am trying to do but my shapefile is in a different projection:proj4string (DK_reg1) [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
does anyone have any suggestions on how to break this shapefiles of this projection to 1000 equal sized grid cells? and then randomly select 100 of them and highlight them?
– I Del Toro
Sep 13 '14 at 11:34
add a comment |
This looks like an answer to me, but in case you are looking for something different. Try the r tag in stackoverflow stackoverflow.com/search?q=R+tag
– Brad Nesom
Mar 14 '14 at 2:26
@rcs this code looks just like what I am trying to do but my shapefile is in a different projection:proj4string (DK_reg1) [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
does anyone have any suggestions on how to break this shapefiles of this projection to 1000 equal sized grid cells? and then randomly select 100 of them and highlight them?
– I Del Toro
Sep 13 '14 at 11:34
This looks like an answer to me, but in case you are looking for something different. Try the r tag in stackoverflow stackoverflow.com/search?q=R+tag
– Brad Nesom
Mar 14 '14 at 2:26
This looks like an answer to me, but in case you are looking for something different. Try the r tag in stackoverflow stackoverflow.com/search?q=R+tag
– Brad Nesom
Mar 14 '14 at 2:26
@rcs this code looks just like what I am trying to do but my shapefile is in a different projection:
proj4string (DK_reg1) [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
does anyone have any suggestions on how to break this shapefiles of this projection to 1000 equal sized grid cells? and then randomly select 100 of them and highlight them?– I Del Toro
Sep 13 '14 at 11:34
@rcs this code looks just like what I am trying to do but my shapefile is in a different projection:
proj4string (DK_reg1) [1] "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
does anyone have any suggestions on how to break this shapefiles of this projection to 1000 equal sized grid cells? and then randomly select 100 of them and highlight them?– I Del Toro
Sep 13 '14 at 11:34
add a comment |
The New York dataset provided in the question is no longer available for download. I use the nc dataset from sf package to demonstrate a solution using sf package:
library(sf)
library(ggplot2)
# read nc polygon data and transform to UTM
nc <- st_read(system.file('shape/nc.shp', package = 'sf')) %>%
st_transform(32617)
# random sample of 5 points
pts <- st_sample(nc, size = 5) %>% st_sf
# create 50km grid - here you can substitute 200 for 50000
grid_50 <- st_make_grid(nc, cellsize = c(50000, 50000)) %>%
st_sf(grid_id = 1:length(.))
# create labels for each grid_id
grid_lab <- st_centroid(grid_50) %>% cbind(st_coordinates(.))
# view the sampled points, polygons and grid
ggplot() +
geom_sf(data = nc, fill = 'white', lwd = 0.05) +
geom_sf(data = pts, color = 'red', size = 1.7) +
geom_sf(data = grid_50, fill = 'transparent', lwd = 0.3) +
geom_text(data = grid_lab, aes(x = X, y = Y, label = grid_id), size = 2) +
coord_sf(datum = NA) +
labs(x = "") +
labs(y = "")
# which grid square is each point in?
pts %>% st_join(grid_50, join = st_intersects) %>% as.data.frame
#> grid_id geometry
#> 1 55 POINT (359040.7 3925435)
#> 2 96 POINT (717024 4007464)
#> 3 91 POINT (478906.6 4037308)
#> 4 40 POINT (449671.6 3901418)
#> 5 30 POINT (808971.4 3830231)
Thanks. I updated the link in my question to relfect the changes on their webpage. Now it should work again.
– majom
Mar 5 '18 at 15:18
I really need to start using thesf
package. This is awesome!
– spacedSparking
Mar 23 '18 at 20:41
Is there an easy way to only plot the grid cells that intersect with the state polygon?
– spacedSparking
Mar 23 '18 at 22:09
st_intersection(grid_50, nc) should do it
– sebdalgarno
Mar 24 '18 at 23:18
add a comment |
The New York dataset provided in the question is no longer available for download. I use the nc dataset from sf package to demonstrate a solution using sf package:
library(sf)
library(ggplot2)
# read nc polygon data and transform to UTM
nc <- st_read(system.file('shape/nc.shp', package = 'sf')) %>%
st_transform(32617)
# random sample of 5 points
pts <- st_sample(nc, size = 5) %>% st_sf
# create 50km grid - here you can substitute 200 for 50000
grid_50 <- st_make_grid(nc, cellsize = c(50000, 50000)) %>%
st_sf(grid_id = 1:length(.))
# create labels for each grid_id
grid_lab <- st_centroid(grid_50) %>% cbind(st_coordinates(.))
# view the sampled points, polygons and grid
ggplot() +
geom_sf(data = nc, fill = 'white', lwd = 0.05) +
geom_sf(data = pts, color = 'red', size = 1.7) +
geom_sf(data = grid_50, fill = 'transparent', lwd = 0.3) +
geom_text(data = grid_lab, aes(x = X, y = Y, label = grid_id), size = 2) +
coord_sf(datum = NA) +
labs(x = "") +
labs(y = "")
# which grid square is each point in?
pts %>% st_join(grid_50, join = st_intersects) %>% as.data.frame
#> grid_id geometry
#> 1 55 POINT (359040.7 3925435)
#> 2 96 POINT (717024 4007464)
#> 3 91 POINT (478906.6 4037308)
#> 4 40 POINT (449671.6 3901418)
#> 5 30 POINT (808971.4 3830231)
Thanks. I updated the link in my question to relfect the changes on their webpage. Now it should work again.
– majom
Mar 5 '18 at 15:18
I really need to start using thesf
package. This is awesome!
– spacedSparking
Mar 23 '18 at 20:41
Is there an easy way to only plot the grid cells that intersect with the state polygon?
– spacedSparking
Mar 23 '18 at 22:09
st_intersection(grid_50, nc) should do it
– sebdalgarno
Mar 24 '18 at 23:18
add a comment |
The New York dataset provided in the question is no longer available for download. I use the nc dataset from sf package to demonstrate a solution using sf package:
library(sf)
library(ggplot2)
# read nc polygon data and transform to UTM
nc <- st_read(system.file('shape/nc.shp', package = 'sf')) %>%
st_transform(32617)
# random sample of 5 points
pts <- st_sample(nc, size = 5) %>% st_sf
# create 50km grid - here you can substitute 200 for 50000
grid_50 <- st_make_grid(nc, cellsize = c(50000, 50000)) %>%
st_sf(grid_id = 1:length(.))
# create labels for each grid_id
grid_lab <- st_centroid(grid_50) %>% cbind(st_coordinates(.))
# view the sampled points, polygons and grid
ggplot() +
geom_sf(data = nc, fill = 'white', lwd = 0.05) +
geom_sf(data = pts, color = 'red', size = 1.7) +
geom_sf(data = grid_50, fill = 'transparent', lwd = 0.3) +
geom_text(data = grid_lab, aes(x = X, y = Y, label = grid_id), size = 2) +
coord_sf(datum = NA) +
labs(x = "") +
labs(y = "")
# which grid square is each point in?
pts %>% st_join(grid_50, join = st_intersects) %>% as.data.frame
#> grid_id geometry
#> 1 55 POINT (359040.7 3925435)
#> 2 96 POINT (717024 4007464)
#> 3 91 POINT (478906.6 4037308)
#> 4 40 POINT (449671.6 3901418)
#> 5 30 POINT (808971.4 3830231)
The New York dataset provided in the question is no longer available for download. I use the nc dataset from sf package to demonstrate a solution using sf package:
library(sf)
library(ggplot2)
# read nc polygon data and transform to UTM
nc <- st_read(system.file('shape/nc.shp', package = 'sf')) %>%
st_transform(32617)
# random sample of 5 points
pts <- st_sample(nc, size = 5) %>% st_sf
# create 50km grid - here you can substitute 200 for 50000
grid_50 <- st_make_grid(nc, cellsize = c(50000, 50000)) %>%
st_sf(grid_id = 1:length(.))
# create labels for each grid_id
grid_lab <- st_centroid(grid_50) %>% cbind(st_coordinates(.))
# view the sampled points, polygons and grid
ggplot() +
geom_sf(data = nc, fill = 'white', lwd = 0.05) +
geom_sf(data = pts, color = 'red', size = 1.7) +
geom_sf(data = grid_50, fill = 'transparent', lwd = 0.3) +
geom_text(data = grid_lab, aes(x = X, y = Y, label = grid_id), size = 2) +
coord_sf(datum = NA) +
labs(x = "") +
labs(y = "")
# which grid square is each point in?
pts %>% st_join(grid_50, join = st_intersects) %>% as.data.frame
#> grid_id geometry
#> 1 55 POINT (359040.7 3925435)
#> 2 96 POINT (717024 4007464)
#> 3 91 POINT (478906.6 4037308)
#> 4 40 POINT (449671.6 3901418)
#> 5 30 POINT (808971.4 3830231)
answered Mar 5 '18 at 1:47
sebdalgarnosebdalgarno
923410
923410
Thanks. I updated the link in my question to relfect the changes on their webpage. Now it should work again.
– majom
Mar 5 '18 at 15:18
I really need to start using thesf
package. This is awesome!
– spacedSparking
Mar 23 '18 at 20:41
Is there an easy way to only plot the grid cells that intersect with the state polygon?
– spacedSparking
Mar 23 '18 at 22:09
st_intersection(grid_50, nc) should do it
– sebdalgarno
Mar 24 '18 at 23:18
add a comment |
Thanks. I updated the link in my question to relfect the changes on their webpage. Now it should work again.
– majom
Mar 5 '18 at 15:18
I really need to start using thesf
package. This is awesome!
– spacedSparking
Mar 23 '18 at 20:41
Is there an easy way to only plot the grid cells that intersect with the state polygon?
– spacedSparking
Mar 23 '18 at 22:09
st_intersection(grid_50, nc) should do it
– sebdalgarno
Mar 24 '18 at 23:18
Thanks. I updated the link in my question to relfect the changes on their webpage. Now it should work again.
– majom
Mar 5 '18 at 15:18
Thanks. I updated the link in my question to relfect the changes on their webpage. Now it should work again.
– majom
Mar 5 '18 at 15:18
I really need to start using the
sf
package. This is awesome!– spacedSparking
Mar 23 '18 at 20:41
I really need to start using the
sf
package. This is awesome!– spacedSparking
Mar 23 '18 at 20:41
Is there an easy way to only plot the grid cells that intersect with the state polygon?
– spacedSparking
Mar 23 '18 at 22:09
Is there an easy way to only plot the grid cells that intersect with the state polygon?
– spacedSparking
Mar 23 '18 at 22:09
st_intersection(grid_50, nc) should do it
– sebdalgarno
Mar 24 '18 at 23:18
st_intersection(grid_50, nc) should do it
– sebdalgarno
Mar 24 '18 at 23:18
add a comment |
Have you looked at the R raster package? It has tools to convert to/from vector GIS objects so you should be able to a) create a raster (grid) with 200x200m cells and b) convert it to a set of polygons with a logical id of some kind. From there I would look at the sp package to help with intersecting the points and the polygon grid. This http://cran.r-project.org/web/packages/sp/vignettes/over.pdf page might be a good start. Wandering through the sp package docs you might be able to start with the SpatialGrid-class and just skip the raster part entirely.
1
Thanks for your comment. I already looked at those packages, but failed to implement this. This was why I was asking for an example.
– majom
Mar 10 '14 at 9:05
add a comment |
Have you looked at the R raster package? It has tools to convert to/from vector GIS objects so you should be able to a) create a raster (grid) with 200x200m cells and b) convert it to a set of polygons with a logical id of some kind. From there I would look at the sp package to help with intersecting the points and the polygon grid. This http://cran.r-project.org/web/packages/sp/vignettes/over.pdf page might be a good start. Wandering through the sp package docs you might be able to start with the SpatialGrid-class and just skip the raster part entirely.
1
Thanks for your comment. I already looked at those packages, but failed to implement this. This was why I was asking for an example.
– majom
Mar 10 '14 at 9:05
add a comment |
Have you looked at the R raster package? It has tools to convert to/from vector GIS objects so you should be able to a) create a raster (grid) with 200x200m cells and b) convert it to a set of polygons with a logical id of some kind. From there I would look at the sp package to help with intersecting the points and the polygon grid. This http://cran.r-project.org/web/packages/sp/vignettes/over.pdf page might be a good start. Wandering through the sp package docs you might be able to start with the SpatialGrid-class and just skip the raster part entirely.
Have you looked at the R raster package? It has tools to convert to/from vector GIS objects so you should be able to a) create a raster (grid) with 200x200m cells and b) convert it to a set of polygons with a logical id of some kind. From there I would look at the sp package to help with intersecting the points and the polygon grid. This http://cran.r-project.org/web/packages/sp/vignettes/over.pdf page might be a good start. Wandering through the sp package docs you might be able to start with the SpatialGrid-class and just skip the raster part entirely.
answered Mar 10 '14 at 4:25
cokrzyscokrzys
44426
44426
1
Thanks for your comment. I already looked at those packages, but failed to implement this. This was why I was asking for an example.
– majom
Mar 10 '14 at 9:05
add a comment |
1
Thanks for your comment. I already looked at those packages, but failed to implement this. This was why I was asking for an example.
– majom
Mar 10 '14 at 9:05
1
1
Thanks for your comment. I already looked at those packages, but failed to implement this. This was why I was asking for an example.
– majom
Mar 10 '14 at 9:05
Thanks for your comment. I already looked at those packages, but failed to implement this. This was why I was asking for an example.
– majom
Mar 10 '14 at 9:05
add a comment |
The "GIS universe" is complex and have many standards that your data must be compliant. All "GIS tools" interoperates by GIS-standards. All "serious GIS data" today (2014) are stored in a database.
The best way to "use R" in a GIS context, with other FOSS tools, is embedded into SQL. The best tools are PostgreSQL 9.X (see PL/R) and PostGIS.
You answer:
- To import/export shape files: use
shp2pgsql
andpgsql2shp
. - To "split a shape file in 200 meter squares/sub-polygons": see
ST_SnapToGrid()
,ST_AsRaster()
, etc. We need understand better your needs to express into a "recipe". - you say that need "geographic coordinates are located" .. perhaps
ST_Centroid()
of the squares (?)... You can express "more mathematically" so I understand.
... Perhaps you not need any raster convertion, only a matrix of regurlar-sampled points.
A primitive way is use R without PL/R, in a your usual external compiler: only convert your polygons and export as shape or as WKT (see ST_AsText
), then convert data with awk or another filter to the R format.
1
Thanks for your help. However, I would strongly prefer a solution which relies completely on R and existing packages. When I am able to split the shape file in 200m*200m subpolygons I can check withpoint.in.polygon
which coordinates are in which polygons. My problem is to split the original shapefile in those sub-polygons.
– majom
Mar 9 '14 at 21:38
It is not a "SIG problem", try to ask at Stackoverflow directly.
– Peter Krauss
Mar 10 '14 at 11:18
See also how to deal with points of type SpatialPointsDataFrame, and a grid that is a raster at Stackoverflow.
– Peter Krauss
Mar 22 '14 at 7:54
add a comment |
The "GIS universe" is complex and have many standards that your data must be compliant. All "GIS tools" interoperates by GIS-standards. All "serious GIS data" today (2014) are stored in a database.
The best way to "use R" in a GIS context, with other FOSS tools, is embedded into SQL. The best tools are PostgreSQL 9.X (see PL/R) and PostGIS.
You answer:
- To import/export shape files: use
shp2pgsql
andpgsql2shp
. - To "split a shape file in 200 meter squares/sub-polygons": see
ST_SnapToGrid()
,ST_AsRaster()
, etc. We need understand better your needs to express into a "recipe". - you say that need "geographic coordinates are located" .. perhaps
ST_Centroid()
of the squares (?)... You can express "more mathematically" so I understand.
... Perhaps you not need any raster convertion, only a matrix of regurlar-sampled points.
A primitive way is use R without PL/R, in a your usual external compiler: only convert your polygons and export as shape or as WKT (see ST_AsText
), then convert data with awk or another filter to the R format.
1
Thanks for your help. However, I would strongly prefer a solution which relies completely on R and existing packages. When I am able to split the shape file in 200m*200m subpolygons I can check withpoint.in.polygon
which coordinates are in which polygons. My problem is to split the original shapefile in those sub-polygons.
– majom
Mar 9 '14 at 21:38
It is not a "SIG problem", try to ask at Stackoverflow directly.
– Peter Krauss
Mar 10 '14 at 11:18
See also how to deal with points of type SpatialPointsDataFrame, and a grid that is a raster at Stackoverflow.
– Peter Krauss
Mar 22 '14 at 7:54
add a comment |
The "GIS universe" is complex and have many standards that your data must be compliant. All "GIS tools" interoperates by GIS-standards. All "serious GIS data" today (2014) are stored in a database.
The best way to "use R" in a GIS context, with other FOSS tools, is embedded into SQL. The best tools are PostgreSQL 9.X (see PL/R) and PostGIS.
You answer:
- To import/export shape files: use
shp2pgsql
andpgsql2shp
. - To "split a shape file in 200 meter squares/sub-polygons": see
ST_SnapToGrid()
,ST_AsRaster()
, etc. We need understand better your needs to express into a "recipe". - you say that need "geographic coordinates are located" .. perhaps
ST_Centroid()
of the squares (?)... You can express "more mathematically" so I understand.
... Perhaps you not need any raster convertion, only a matrix of regurlar-sampled points.
A primitive way is use R without PL/R, in a your usual external compiler: only convert your polygons and export as shape or as WKT (see ST_AsText
), then convert data with awk or another filter to the R format.
The "GIS universe" is complex and have many standards that your data must be compliant. All "GIS tools" interoperates by GIS-standards. All "serious GIS data" today (2014) are stored in a database.
The best way to "use R" in a GIS context, with other FOSS tools, is embedded into SQL. The best tools are PostgreSQL 9.X (see PL/R) and PostGIS.
You answer:
- To import/export shape files: use
shp2pgsql
andpgsql2shp
. - To "split a shape file in 200 meter squares/sub-polygons": see
ST_SnapToGrid()
,ST_AsRaster()
, etc. We need understand better your needs to express into a "recipe". - you say that need "geographic coordinates are located" .. perhaps
ST_Centroid()
of the squares (?)... You can express "more mathematically" so I understand.
... Perhaps you not need any raster convertion, only a matrix of regurlar-sampled points.
A primitive way is use R without PL/R, in a your usual external compiler: only convert your polygons and export as shape or as WKT (see ST_AsText
), then convert data with awk or another filter to the R format.
edited Apr 13 '17 at 12:33
Community♦
1
1
answered Mar 9 '14 at 21:20
Peter KraussPeter Krauss
1,1241435
1,1241435
1
Thanks for your help. However, I would strongly prefer a solution which relies completely on R and existing packages. When I am able to split the shape file in 200m*200m subpolygons I can check withpoint.in.polygon
which coordinates are in which polygons. My problem is to split the original shapefile in those sub-polygons.
– majom
Mar 9 '14 at 21:38
It is not a "SIG problem", try to ask at Stackoverflow directly.
– Peter Krauss
Mar 10 '14 at 11:18
See also how to deal with points of type SpatialPointsDataFrame, and a grid that is a raster at Stackoverflow.
– Peter Krauss
Mar 22 '14 at 7:54
add a comment |
1
Thanks for your help. However, I would strongly prefer a solution which relies completely on R and existing packages. When I am able to split the shape file in 200m*200m subpolygons I can check withpoint.in.polygon
which coordinates are in which polygons. My problem is to split the original shapefile in those sub-polygons.
– majom
Mar 9 '14 at 21:38
It is not a "SIG problem", try to ask at Stackoverflow directly.
– Peter Krauss
Mar 10 '14 at 11:18
See also how to deal with points of type SpatialPointsDataFrame, and a grid that is a raster at Stackoverflow.
– Peter Krauss
Mar 22 '14 at 7:54
1
1
Thanks for your help. However, I would strongly prefer a solution which relies completely on R and existing packages. When I am able to split the shape file in 200m*200m subpolygons I can check with
point.in.polygon
which coordinates are in which polygons. My problem is to split the original shapefile in those sub-polygons.– majom
Mar 9 '14 at 21:38
Thanks for your help. However, I would strongly prefer a solution which relies completely on R and existing packages. When I am able to split the shape file in 200m*200m subpolygons I can check with
point.in.polygon
which coordinates are in which polygons. My problem is to split the original shapefile in those sub-polygons.– majom
Mar 9 '14 at 21:38
It is not a "SIG problem", try to ask at Stackoverflow directly.
– Peter Krauss
Mar 10 '14 at 11:18
It is not a "SIG problem", try to ask at Stackoverflow directly.
– Peter Krauss
Mar 10 '14 at 11:18
See also how to deal with points of type SpatialPointsDataFrame, and a grid that is a raster at Stackoverflow.
– Peter Krauss
Mar 22 '14 at 7:54
See also how to deal with points of type SpatialPointsDataFrame, and a grid that is a raster at Stackoverflow.
– Peter Krauss
Mar 22 '14 at 7:54
add a comment |
Thanks for contributing an answer to Geographic Information Systems Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f88830%2foverlay-a-spatial-polygon-with-a-grid-and-check-in-which-grid-element-specific-c%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
See also stackoverflow.com/q/17801398/287948
– Peter Krauss
Mar 22 '14 at 7:51
Is there way to dropping empty grids? or just griding the boundary of interest?
– NeedHelp
Apr 6 at 22:53
If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review
– wetland
Apr 6 at 23:16