标签: shapefile

使用ObjectiveC的Shapefile

我想知道在objective-C中是否存在一个操作shapefile(读/写/编辑)的类?

我在kml文件上找到了很多东西,但没有关于shp文件的东西,但绝对想要避免转换文件格式(shp-> kml)的需要.

谢谢

objective-c shapefile

7
推荐指数
2
解决办法
3397
查看次数

从shapefile(R)只读数据槽?

我有一些非常大的shapefile.我可以SpatialPolygonsDataFrame使用该rgdal函数将它们读入readOGR,但每个文件需要很长时间.我实际上只对插槽data.frame中显示的内容感兴趣@data.有没有办法只读取数据,跳过资源密集型多边形?

示例代码:

## State of Alabama census blocks (152 MB compressed, 266 MB uncompressed)
shpurl <- "http://www2.census.gov/geo/tiger/TIGER2011/TABBLOCK/tl_2011_01_tabblock.zip"
tmp    <- tempfile(fileext=".zip")
download.file(shpurl, destfile=tmp)
unzip(tmp, exdir=getwd())

## Read shapefile
nm  <- strsplit(basename(shpurl), "\\.")[[1]][1]
lyr <- readOGR(dsn=getwd(), layer=nm)

## Data I want
head(lyr@data)
Run Code Online (Sandbox Code Playgroud)

r geospatial shapefile rgdal

7
推荐指数
1
解决办法
1242
查看次数

如何在ggplot2中将地图与复杂的点显示结合起来?

我正试图用非洲背景地图绘制研究地点的积分.我可以独立创建这两个,但我很难将它们叠加在彼此之上.

我使用的非洲地图是来自maplibrary.org的Esri shapefile.可以从我的保管箱https://www.dropbox.com/s/etqdw3nky52czv4/Africa%20map.zip获取.我在文本文件中有点,也可以从我的投递箱中获得. https://www.dropbox.com/s/scvymytjsr5pvaf/SPM-437-22Nov12.txt.他们指的是疟疾寄生虫的分子耐药性研究.我想绘制它们,使颜色是具有抗药性遗传标记的寄生虫的比例,并且大小是测试的寄生虫的数量.

独立绘制点数:

qplot(Longitude, Latitude, data = d.spm.437, colour = Frc437, size = Tot437)
Run Code Online (Sandbox Code Playgroud)

绘制非洲地图:

library(maptools)
africa = readShapePoly("Africa.shp")
africa.map = fortify(africa, region="COUNTRY")
qplot(long, lat, data = africa.map, geom="path", group=group)
Run Code Online (Sandbox Code Playgroud)

任何有关将这两者放在一起同时保留点数显示的帮助将不胜感激.

r shapefile ggplot2

7
推荐指数
1
解决办法
2640
查看次数

R - 使用plot() - 基于槽值着色shapefile多边形

我有一个显示澳大利亚偏远地区的形状文件,来自澳大利亚统计局:

http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1270.0.55.005July%202011?OpenDocument

在同一个URL是PDF"ASGS Remoteness Structure Edition 2011 PDF Maps" - 我试图从这个PDF文档重现第一张地图.

我已经在shapefile中读到并向data插槽添加了颜色信息:

ra <- readShapeSpatial("RA_2011_AUST", delete_null_obj = TRUE)
ra@data$COLOUR <- "#FFFFFF"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 0] <- "#006837"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 1] <- "#31A354"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 2] <- "#78C679"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 3] <- "#C2E699"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 4] <- "#FFFFCC"
Run Code Online (Sandbox Code Playgroud)

我唯一要做的就是绘制地图!这是我被困的地方......

ra@polygons是一个包含35个多边形的列表,每个多边形都有一个槽ID,它是数据帧的索引ra@data.所以我要做的就是告诉我plot()找到颜色ra@data$COLOUR[ID].嗯,不太好.35个多边形("多边形"类)中的每一个都有自己的多边形列表("Polygon"类); 总共有6902个多边形!!!

我的理解plot()是,我必须以与绘制多边形相同的顺序传递颜色矢量.因此,我相信我必须创建一个长度为6902的向量,每个元素保存相关多边形的颜色值.我到目前为止怎么样?

如果按顺序绘制多边形,那将很容易,但它们不是.35个多边形中的每一个都有一个plotOrder整数向量的槽,因此颜色向量可能必须按照这些向量中的每个向量的顺序排序.

在这一点上,这一切似乎有点过于复杂.我完全偏离了这里吗?

谢谢你的建议!

r geospatial shapefile

7
推荐指数
1
解决办法
9535
查看次数

使用R操纵shapefile属性表

我已经在GIS堆栈交换中发布了这个问题,但它没有看到太多的流量.

我是一名GIS用户,几年来一直使用R进行统计,我很高兴看到很多新的GIS功能被发布(光栅,shapefile,rgdal等).

我在R中做了很多数据库和表操作,因此能够从shapefile中添加和删除属性是一个强大的潜力.

我希望我只是错过了那里的东西,但我似乎无法找到一个很好的方法来添加或删除shapefile属性表中的属性.

Overflow中的任何人都可以回复我的GIS帖子吗?或者我可以被告知如何将我的列表属性表放入数据帧并返回以替换当前属性表?

编辑进度

自我原帖后的一些进展:

这是在弄清楚如何采取我的属性表appart(.dbf),添加东西,现在我试图把它重新组合起来替换原来的dbf.

>libary(raster); library(rgdal); library(shapefiles)
>shp<-shapefile(Shape)  # D.C. area airport polygons
>summary(shp)           #Shapefile properties

Object of class SpatialPointsDataFrame
Coordinates:
                min       max
coords.x1  281314.2  337904.7
coords.x2 4288867.0 4313507.0
Is projected: TRUE 
proj4string :
[+proj=utm +zone=18 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0]
Number of points: 4
Data attributes:
    ObjectID        LOCID               NAME              FIELD              STATE            STATE_FIPS           ACAIS              TOT_ENP            TYPE          
 Min.   :134.0   Length:4           Length:4           Length:4           Length:4           Length:4           Length:4           Min.   :    271   Length:4          
 1st Qu.:242.8   Class :character …
Run Code Online (Sandbox Code Playgroud)

r raster shapefile

7
推荐指数
1
解决办法
8059
查看次数

gdal/ogr:如何真正裁剪shapefile?

鉴于对应于欧洲国家的SHP文件,以及......

给定对应法国的定义区域:

West : 005° 48' W
East : 010° E
North : 051° 30' N
South : 041° N
Run Code Online (Sandbox Code Playgroud)

如何只获得与我定义的区域相交的点/几何与gdal?所以我的作物确实是一种真正的作物,它只保留必要的几何形状.强烈偏好gdal,ogr或控制台的解决方案.

gis shapefile gdal ogr

7
推荐指数
1
解决办法
6577
查看次数

算法(和工具)从shapefile创建加权 - 制图?

我可以使用什么算法来生成加权图表,如下所示: http://www.brainpickings.org/index.php/2010/04/15/cartograms/

我可以使用R,.NET库和PostGIS中的代码生成shapefile图.但是,我找不到用于查找用于生成这些扭曲的shapefile图的算法的实现的搜索项.不一定只想绘制世界地图,因此必须能够使用任意shapefile.

c# postgis r shapefile cartogram

7
推荐指数
1
解决办法
556
查看次数

导入的shapefile外部的掩码区域(底图/ matplotlib)

我正在通过Matplotlib在美国和加拿大东海岸的底图上绘制数据.除了基础层(填充的等高线图),我使用Matplotlib的readshapefile工具在数据顶部覆盖了这个焦点区域的shapefile.

我想知道如何掩盖shapefile之外的所有网格数据.我显然可以通过Matplotlib做一个maskocean命令,但我仍然留在圣劳伦斯以西的填充轮廓.现在有人怎么做?我在线搜索没有太多运气.

def make_map(lon,lat,param):
    fig, ax = plt.subplots()
    ax.axis('off')
    x1 = -83.
    x2 = -57.
    y1 = 37.
    y2 = 50.
    projection='merc'
    resolution='h'
    m = Basemap(projection=projection, llcrnrlat=y1, urcrnrlat=y2, llcrnrlon=x1,
                urcrnrlon=x2, resolution=resolution)
    x,y = m((lon-360.),lat)
    m.ax = ax
    my_cmap = cm.get_cmap('coolwarm')
    pp = m.contourf(x, y, param, 30, cmap=my_cmap, extend='both')  
    m.drawmapscale(-67, 39.5, -70, 43.5, 500, fontsize=8, barstyle='fancy') 
    return fig, m, x, y

def drawstates(ax, shapefile='../StateProv_UTMrp'):
        shp = m.readshapefile(shapefile, 'states',zorder = 1, drawbounds=True)
        for nshape, seg in enumerate(m.states):
            poly = Polygon(seg, facecolor='w',alpha=0.0, edgecolor='k') …
Run Code Online (Sandbox Code Playgroud)

python matplotlib esri shapefile matplotlib-basemap

7
推荐指数
1
解决办法
1680
查看次数

b从ANSI 1252到UTF-8的重新编码失败,错误:"无效的参数".geopandas python

我试图将shapefile读入GeoDataFrame.

通常我只是这样做,它的工作原理:

import pandas as pd

import geopandas as gpd
from shapely.geometry import Point

df = gpd.read_file("wild_fires/nbac_2016_r2_20170707_1114.shp")
Run Code Online (Sandbox Code Playgroud)

但这一次它给了我错误: b'Recode from ANSI 1252 to UTF-8 failed with the error: "Invalid argument".'

完整错误:

---------------------------------------------------------------------------
CPLE_AppDefinedError                      Traceback (most recent call last)
<ipython-input-14-adcad0275d30> in <module>()
----> 1 df_wildfires_2016 = gpd.read_file("wild_fires/nbac_2016_r2_20170707_1114.shp")

/usr/local/lib/python3.6/site-packages/geopandas/io/file.py in read_file(filename, **kwargs)
     19     """
     20     bbox = kwargs.pop('bbox', None)
---> 21     with fiona.open(filename, **kwargs) as f:
     22         crs = f.crs
     23         if bbox is not None:

/usr/local/lib/python3.6/site-packages/fiona/__init__.py in open(path, mode, driver, schema, …
Run Code Online (Sandbox Code Playgroud)

python shapefile geopandas

7
推荐指数
1
解决办法
1387
查看次数

如何在Python中使用uber h3将shapefile/geojson转换为六边形?

我想在我的地理地图上创建六边形,并希望保留 shapefile/geojson 指定的数字边界。如何使用 uber 的 h3 python 库来做到这一点?

我对 shapefile 或任何其他地理数据结构不熟悉。我对 python 最满意。

python shapefile geojson h3

7
推荐指数
2
解决办法
1万
查看次数