绘制R区粮农组织捕鱼区地图 [英] Map FAO fishing areas in R

查看:18
本文介绍了绘制R区粮农组织捕鱼区地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想根据一个数据集(在我的例子中,是鲨鱼物种的长度数据),用R标出粮农组织捕鱼区的颜色。

我更喜欢在ggplot中做一个全息地图,但其他类型的地图也是可以的。最坏的情况是粮农组织区域的基本地图,我可以在其中添加泡沫。即使只是一张现有的粮农组织地区基本地图也是很棒的。欢迎提出任何建议!

推荐答案

我转到this page并单击以查找this link以检索GeoJSON文件:

download.file("http://www.fao.org/fishery/geoserver/fifao/ows?service=WFS&request=GetFeature&version=1.0.0&typeName=fifao:FAO_AREAS_CWP&outputFormat=json", dest="FAO.json")

从现在开始,我关注this example from the R graph gallery,在this SO questionthese notes的帮助下:

library(geojsonio)
library(sp)
library(broom)
library(ggplot2)
library(dplyr)    ## for joining values to map

spdf <- geojson_read("FAO.json",  what = "sp")

此时,plot(spdf)将显示区域的平面(BASE-R)图。

spdf_fortified <- tidy(spdf)
## make up some data to go with ...
fake_fish <- data.frame(id = as.character(1:324), value = rnorm(324))
spdf2 <- spdf_fortified %>% left_join(fake_fish, by = "id")
ggplot() +
    geom_polygon(data = spdf2, aes( x = long, y = lat, group = group,
                                            fill = value), color="grey") +
    scale_fill_viridis_c() +
    theme_void() +
    theme(plot.background = element_rect(fill = 'lightgray', colour = NA)) +
    coord_map() +
    coord_sf(crs = "+proj=cea +lon_0=0 +lat_ts=45") ## Gall projection

ggsave("FAO.png")

备注
  • 有些步骤很慢,可能值得研究一下如何粗化/降低空间多边形对象的分辨率(如果您只想显示图片,分辨率可能会过高)
  • 老实说,默认的顺序配色方案可能更好,但这些天来所有酷孩子似乎都喜欢&viridis&qo;所以...
  • 可能有更好的方法来完成许多这样的工作(例如,设置地图投影,填充地块的背景颜色,...?)

这篇关于绘制R区粮农组织捕鱼区地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆