将纬度/经度分配给邮政编码

发布于 2024-11-27 15:31:31 字数 530 浏览 3 评论 0原文

我在 R 中有一个数据帧纬度和经度点。使用 R 数据科学工具包,我可以将这些点分配给国家/州/县/城市/选区/邻里,这很有用。

我想在 R 或 python 中将这些点分配给 5 位邮政编码(甚至 9 位邮政编码!)。有没有简单的方法可以做到这一点?

编辑:我找到了一个包含邮政编码边界的文件。不幸的是,它是一个 .lpk 文件。如何将其导入到 R 中?
编辑2:我找到了一个形状文件,这会更容易一起工作。

I have a dataframe latitude and longitude points in R. Using the R data science toolkit, I can assign these points to Country/State/County/City/Constituency/Neighborhood, which is useful.

I'd like to assign these points to 5 digit zip-codes (or even 9 digit zip codes!) in R or python. Is there an easy way to do this?

Edit: I found a file that contains zip code boundaries. Unfortunately, it is a .lpk file. How do I import this into R?
Edit 2: I found a shape file, which will be easier to work with.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

在梵高的星空下 2024-12-04 15:31:31
  1. 在某处查找邮政编码形状文件(.shp 格式,有时称为
    ArcGIS Shapefiles)。

  2. 使用maptools包的readShapePoly将其加载到R中
    命令。

  3. 创建一个 SpatialPointsDataFrame 来保存点。

  4. 确保您的预测正确。

  5. 使用sp包的overlay命令将点覆盖到多边形中。

您可能会发现 taRifx 包中的 cleanLatLon 很有帮助。

  1. Find a zip code shapefile somewhere (.shp format, sometimes called
    ArcGIS Shapefiles).

  2. Load it into R using the maptools package's readShapePoly
    command.

  3. Create a SpatialPointsDataFrame to hold the points.

  4. Make sure your projections are correct.

  5. Use the sp package's overlay command to overlay the points into the polygons.

You may find cleanLatLon in the taRifx package to be helpful.

Oo萌小芽oO 2024-12-04 15:31:31

我运行了 gsk3 的组合,效果非常好。这是具体代码。我还包括了我的经纬度数据框的 str 以供参考。

> # Shape files found here by state: http://www.census.gov/geo/www/cob/z52000.html#shp
> 
> library(maptools)
> library(maps)
> 
> zip.map <- readShapePoly("zt48_d00.shp")
> latlong <- read.csv("latlong.csv")
> str(latlong)
'data.frame':   2102 obs. of  3 variables:
 $ ref : Factor w/ 1594 levels ...
 $ lat : num  32.9 32.9 32.9 32.9 32.9 ...
 $ long: num  -96.7 -96.7 -96.7 -96.7 -96.7 ...
> coordinates(latlong) = ~long+lat
> write.csv(cbind(latlong, overlay(zip.map,latlong)),"zip.match.csv" )

I ran what gsk3 put together and it worked like a charm. Here is the specific code. I've also included the str of my latlong data frame for reference.

> # Shape files found here by state: http://www.census.gov/geo/www/cob/z52000.html#shp
> 
> library(maptools)
> library(maps)
> 
> zip.map <- readShapePoly("zt48_d00.shp")
> latlong <- read.csv("latlong.csv")
> str(latlong)
'data.frame':   2102 obs. of  3 variables:
 $ ref : Factor w/ 1594 levels ...
 $ lat : num  32.9 32.9 32.9 32.9 32.9 ...
 $ long: num  -96.7 -96.7 -96.7 -96.7 -96.7 ...
> coordinates(latlong) = ~long+lat
> write.csv(cbind(latlong, overlay(zip.map,latlong)),"zip.match.csv" )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文