0

我正在使用以下代码来绘制轨迹............

library(openair)

load("GDASNDL1000m.Rdata")

trajLevel(traj,method="hexbin",col="jet",xbin=40,parameters=NULL,
orientation=c(90,0,0),projection="mercator")

结果 https://github.com/adeckmyn/maps/files/2667752/GDASNDL1000m.zip

在这里,我想world map用自己的shape file.

我的形状文件如下....

z1=maptools::readShapePoly("/home/sateeshm/shapefiles/ncmrwf/india_map")
library(maps)
map(z1)

https://github.com/adeckmyn/maps/files/2667336/World-India.zip

#

现在,实际的问题是如何将 z1 链接到 trajLevel?

4

1 回答 1

0

为了避免在 openair 中对“world”的硬编码调用,您必须以与“maps”包相同的基于文件的格式创建一个新的世界数据库。

可能最简单的方法是使用mapMaker包。这个包不在 CRAN 上,但可以在 github 上找到。它是我用来创建标准世界地图的包。文档很少,但如果您不关心多边形名称等,您可以创建一个“快速而肮脏”的世界地图,如下所示:

# get your new map as a simple list of polygons (or lines)
z1=maps::map(maptools::readShapePoly("india_map"), plot=FALSE)
# create internal representation
z2=mapMaker::map.make(z1)
# write binary files:
mapMaker::map.export.bin(z2, "/my/path/to/world")

# To make map() call this new database:
library(maps)
worldMapEnv="MYMAP"
Sys.setenv("MYMAP"="/my/path/to/") # don't add the "world" !

现在map("world")将绘制您的世界地图版本。

于 2018-12-12T12:17:30.070 回答