ggOceanMaps重复下载地形与冰川数据问题求助
问题描述
每次重启R环境后,使用ggspatial和ggOceanMaps绘制地图时,总会出现如下提示:
Cannot find files:
C:\Users\AppData\Local\Temp\Rtmpo1nDLv\arctic_land.rda,
C:\Users\AppData\Local\Temp\Rtmpo1nDLv\arctic_glacier.rda,
C:\Users\AppData\Local\Temp\Rtmpo1nDLv\dd_rbathy_cont.rda.Do you want download them now?
1: Yes
2: No
selection: 1
不得不重新下载所有数据,担心会逐渐占用电脑内存。请问:
- 能否避免重复下载?
- 旧数据会在下载时被删除吗?
附带代码:
library(ggOceanMaps) library(readxl) library(ggspatial) library(dplyr) data_a <- structure(list(Nr = c(1, 2, 3, 4, 5, 6), Name = c("MD95-2006", "IODP 302", "IODP 302", "IODP 302", "IODP 302", "IODP 302"), Lat = c(57.083333, 87.89, 87.9036, 87.92118, 87.93333, 87.86658 ), Long = c(-8.05, 137.65, 138.46065, 139.365501, 139.535, 136.17735), `18O` = c(0.69, NA, NA, NA, NA, NA), Info = c(NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, NA_character_), Source = c("MD95-2006 planktic foraminifera ?13C and ?18O", "https://www.ecord.org/expedition302/", "https://www.ecord.org/expedition302/", "https://www.ecord.org/expedition302/", "https://www.ecord.org/expedition302/", "https://www.ecord.org/expedition302/")), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame")) data_b <- structure(list(Nr = c(1, 2, 3, 4, 5, 6), Name = c("Simstich", "Schiebel", "Schiebel", "Stangeew", "Stangeew", "Stangeew"), Lat = c(75.003333, 62.50275, 67.225033, 56.2747, 53.4347, 52.874), Long = c(-7.313333, -13.99235, 2.920317, -48.6992, -50.0673, -51.5128), `18O` = c(NA, NA, NA, NA, NA, NA), Info = c("data for different depths", NA, NA, NA, NA, NA), Source = c("https://doi.pangaea.de/10.1594/PANGAEA.82001?format=html#download", "https://doi.pangaea.de/10.1594/PANGAEA.75647?format=html#download", "https://doi.pangaea.de/10.1594/PANGAEA.75719", "https://doi.pangaea.de/10.1594/PANGAEA.706908", "https://doi.pangaea.de/10.1594/PANGAEA.706908", "https://doi.pangaea.de/10.1594/PANGAEA.706908" )), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame" )) data <- bind_rows(list(data_a,data_b), .id="data_source") map <- basemap(limits = c(-125, -110, 25, 35), glaciers = TRUE,shapefiles = "Arctic", bathy.style = "rcb") + ggspatial::geom_spatial_point( data = data, aes(x = Long, y = Lat, color = data_source) ) + scale_color_manual( values = c("red", "yellow") ) + guides(color = guide_legend(override.aes = list(fill = NA))) print(map)
解决方案
1. 避免重复下载的方法
ggOceanMaps默认将数据存储在R的临时目录(即提示中的C:\Users\AppData\Local\Temp\RtmpXXX),每次重启R后该目录会被自动清空,因此会重复触发下载提示。解决方法是指定一个永久存储目录:
- 先创建一个固定文件夹用于保存ggOceanMaps数据,比如
C:/R_data/ggOceanMaps(可自定义路径) - 在加载ggOceanMaps前,通过
options()设置该路径:
options(ggOceanMaps.datapath = "C:/R_data/ggOceanMaps") library(ggOceanMaps) # 后续绘图代码保持不变
设置后,数据会下载到指定的永久目录,下次重启R时程序会直接读取该目录下的数据,无需重复下载。
2. 旧数据的处理
- 临时目录中的旧数据:每次重启R后,R的临时目录会被系统自动清理,不会持续占用内存。
- 永久存储目录中的旧数据:若数据有更新,新下载的文件会覆盖同名旧文件,不会重复累积。如果需要,也可手动清理该目录中的旧文件,但这类地图数据体积通常不大,一般无需频繁清理。
内容的提问来源于stack exchange,提问作者Weiss
相关产品推荐
相关产品推荐

