2013-02-13 5 views
0

Я не уверен, как начать это, так как моя игра ГИС, играющая в R, заключалась в том, чтобы строить сюжеты с использованием ggplot2 и других пакетов с использованием полных координат. Теперь мне нужно использовать компонент визуализации в Microstrategy, который использует шейп-файл в виде файла HTML, содержащего координаты x-y для графика (т. Е. Верхний левый - 0,0). Пример файла государственного уровня:конвертировать форматы шейп-файла Zip3 и zip5 в координаты x-y

<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> 

Точки, перечисленная в «Coords» является Х и Y точкой по отношению к 812 по 713 «образу», который нанесен и цветной на лета.

У меня есть файлы shp, shx, dbf для Zip3 и Zip5 от http://www.vdstech.com/usa-data.aspx, но я не уверен, где начать конвертацию! Я не против делать грубую работу по форматированию файла HTML вручную, это преобразование XY, за которое я застрял (ржавый, не затронутый ГИС в течение довольно долгого времени):

Следующий код импортирует шейп-файл в R

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

После чего я застрял и в настоящее время охота на учебник о том, как извлечь zip3 + ху координат в dataframe, что я могу после этого использовать, чтобы создать свой окончательный файл с

обновление 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

Update3 Этого код отвалов застежки-коды в кадре данных zip3.codes < - as.data.frame (zip3) Какой должна быть комбинируется с чем-то вроде zip3.df < - укрепляют (zip3 @ многоугольников [[1000]]) Где 1000 будет заменен на все строки zip3.codes, связанные с определенным zip3

+0

Как насчет 'fortify' из пакета' ggplot2'? – mnel

+0

Я не знаком с этой функцией.Я все еще ковыряю с переменной zip3 и ее структурой –

+1

fortify будет конвертировать из SpatialPolygonsDataFrame в 'data.frame' для построения с помощью' ggplot2'. – mnel

ответ

1

Вы можете использовать fastshp пакет для загрузки данных:

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

s теперь список всех форм ZIP. Вы заинтересованы в x и y компонентов - например, чтобы построить первый ZIP просто использовать что-то вроде

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

Чтобы соответствовать именам, используйте read.dbf из foreign:

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

См ?read.shp для более подробную информацию о доступных форматах. В «полигоне» используется NA для разделения отдельных полигонов, «список» использует индексирование, чтобы дать вам детали.

BTW набор данных несколько сомнительный, вы можете посмотреть данные TIGER/Line census ZCTA5 (последнее - 2010).

 Смежные вопросы

  • Нет связанных вопросов^_^