【问题标题】:convert Zip3 and zip5 level shapefiles to x-y coordinates将 Zip3 和 zip5 级别的 shapefile 转换为 x-y 坐标
【发布时间】:2013-02-13 23:40:24
【问题描述】:

我不知道如何开始,因为我在 R 中玩的 GIS 一直是使用 ggplot2 和其他使用 latlong 坐标的包来绘制东西。我现在需要做的是在 Microstrategy 中使用可视化组件,该组件使用 HTML 文件形式的 shapefile,其中包含绘图的 x-y 坐标(即左上角为 0,0)。状态级文件的示例是:

<HTML><HEAD><TITLE>untitled</TITLE></HEAD><BODY>
<IMG SRC="" USEMAP="#myMap" WIDTH="812" HEIGHT="713" BORDER="0" />
<MAP NAME="myMap">
<AREA SHAPE="POLY" HREF="#" ALT="Texas" COORDS="299,363,299,360,....." />
</MAP></BODY></HTML>

“坐标”中列出的点是相对于 812 x 713 的“图像”的 X 和 Y 点,该图像是动态绘制和着色的。

我有来自http://www.vdstech.com/usa-data.aspx 的 Zip3 和 Zip5 的 shp、shx、dbf 文件,但我不确定从哪里开始转换!我不介意手动格式化 HTML 文件的繁重工作,这是我坚持的 X-Y 转换(生锈,很长一段时间没有接触过 GIS):

以下代码将 shapefile 导入 R

library(rgdal)
zip3 <- readOGR(dsn = '/Users/adempsey/Downloads/zip3'), layer = 'zip3')

之后我被卡住了,目前正在寻找如何将 zip3 + x-y 坐标提取到数据框中的教程,然后我可以用它来创建我的最终文件

更新 2

使用以下内容,我可以转换为数据框,但我无法提取关联的 zip3 代码,该代码似乎存储在关联的 dbf 文件中

Row long      lat order  hole piece group id
1 -151.0604 70.41873     1 FALSE     1   0.1  0
2 -150.7620 70.49722     2 FALSE     1   0.1  0

是的,这超出了我目前生锈的 R

更新3 此代码将邮政编码转储到数据框中 zip3.codes

【问题讨论】:

  • 来自ggplot2 包的fortify 怎么样?
  • 我不熟悉那个功能。我仍在研究 zip3 变量及其结构
  • fortify 将从 SpatialPolygonsDataFrame 转换为 data.frame 以使用 ggplot2 进行绘图。
  • 是的,但这些是由readOGR 访问的,并且数据在 R 中可用。
  • as.data.frame(zip3)zip3@data.....

标签: r gis microstrategy


【解决方案1】:

你可以使用fastshp包来加载数据:

 install.packages("fastshp",,"http://rforge.net")
 library(fastshp)
 s <- read.shp("zip5.shp", format="polygon")

s 现在是所有 ZIP 形状的列表。您对xy 组件感兴趣 - 例如,要绘制第一个 ZIP,只需使用类似

 plot(s[[1]]$x, s[[1]]$y, asp=1.25)
 polygon(s[[1]]$x, s[[1]]$y, col="#eeeeee")

要匹配名称,请使用foreign 中的read.dbf

 library(foreign)
 d <- read.dbf("zip5.dbf", as.is=TRUE)
 names(s) <- d$ZIP5

有关可用格式的更多详细信息,请参阅?read.shp。 “多边形”使用NA 分隔各个多边形,“列表”使用索引为您提供部分。

顺便说一句,数据集有些可疑,您可能需要查看 TIGER/Line census ZCTA5 数据(最近的是 2010 年)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 2015-12-31
    • 2022-01-20
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多