空间数据有空间坐标值以及这些坐标的参照系。举个简单的例子,如地球上的火山峰的坐标。我们能够用十进制的经纬度列出众所周知的火山坐标,这个坐标相对于格林威治的本初子午线和赤道的0纬度。WGS84(World Geodetic System)是常用的世界大地坐标系。广州网站建设
假设我们对1980年至2000年之间活跃的火山感兴趣,根据某些约定的地震注册系统,这些数据集仅由点组成。当我们希望在一幅平面地图上画出这些点时,将面临投影问题,必须将采用球面经纬度的系统转变为非球面坐标系统,这样会改变它们的相对位置。在图1.2中,数据采用Mollweide(摩尔威特)投影,为了有一个参照,在上面增加了海岸线。
第4章将介绍如何选择坐标参考系以及在不同坐标参考系之间的转换,绘制图1.2的完整代码如下:
- > library(maptools)
- > library(rgdal)
- > library(maps)
- > volc.tab = read.table("data1964al.xy")
- > volc = SpatialPoints(volc.tab[c(2,1)])
- > llCRS <- CRS("+proj=longlat +ellps=WGS84")
- > proj4string(volc) <- llCRS
- > prj_new = CRS("+proj=moll")
- > volc_proj = spTransform(volc, prj_new)
- > wrld <- map("world", interior=FALSE, xlim=c(-179,179), ylim=c(-89,89),
- + plot=FALSE)
- > wrld_p <- pruneMap(wrld, xlim=c(-179,179))
- > wrld_sp <- map2SpatialLines(wrld_p, proj4string=llCRS)
- > wrld_proj <- spTransform(wrld_sp, prj_new)
- > #save(c("wrld_proj", "wrld_sp"), file = "hsd_data/wrld.RData")
- > #load("hsd_data/wrld.RData")
- > wrld_grd <- gridlines(wrld_sp, easts=c(-179,seq(-150,150,50),179.5),
- + norths=seq(-75,75,15), ndiscr=100)
- > wrld_grd_proj <- spTransform(wrld_grd, prj_new)
- > at_sp <- gridat(wrld_sp, easts=0, norths=seq(-75,75,15), offset=0.3)
- > at_proj <- spTransform(at_sp, prj_new)
- > plot(wrld_proj, col="grey50")
- > plot(wrld_grd_proj, add=TRUE, lty=3, col="grey50")
- > points(volc_proj, cex = .8, pch = 3)
- > text(coordinates(at_proj),pos = at_proj$pos, offset = at_proj$offset,
- + labels = parse(text = as.character(at_proj$labels)), cex = 0.6)
![]() |
| 图1.2 1964年以后知道的世界上的火山喷发图(数据来源:国家地球物理中心) |
如果有火山爆发的最后观测日期和时间,这些信息可以看作属性,它本身是非空间性的,但是这些属性信息是依附于每一个空间实体(火山)的。广州网站建设
没有明确的属性时,这些点通常都带有隐含属性,比如,所有在这张地图中的点都有一个恒定的隐藏属性,即火山峰的标识,相比之下,其他点却没有。纯空间信息用数据模型来表达。这里可以辨别的不同数据模型类型包括:
点:一个单点位置,比如全球定位系统读取的位置或地理编码;
线:有序点的集合,由直线段相连;
多边形:一个区域,由一条或以上的封闭线组成,可能包含孔;
网格:点或矩形单元的集合,由规则的栅格构成。
前三个是矢量数据模型,表示尽量精确的实体,而最后一个数据模型是栅格数据模型,表示使用规则单元铺盖的连续表面。所有的空间数据包含位置信息,可以说明位置在哪里。在许多应用里,这些信息可以通过属性扩展,说明什么东西在哪里。Chrisman(2002, p.37-69)区分了一系列这种空间和时空查询。关于这四种基本数据模型和带有属性类型的例子将在下面给出。
火山的位置(x, y坐标)可能足以标识它与地球上其他火山的相对位置,但是描述单个火山,我们可以使用更多的信息。比如,描述火山的地势,图1.3显示了在电脑中描绘连续地表(如地势)的一些不同方法。
首先,使用密集规则网格中的大量点,存储每个点接近地表点高度属性,用图1.3a中所示的灰色阶来指示这些点。
其次,在相同高度上,通过连接有序点形成等高线,这些叠置在同一张图上,如图1.3b所示,在这种情况下,等高线来自规则网格点的值。当一个线段集合形成一个没有和其他线相交的对象时,就形成了一个等高线多边形,在图1.3a中,较高的轮廓线是封闭的,形成了等高线多边形。




