【问题标题】:Problems Reading in TIF File In R在 R 中读取 TIF 文件时出现问题
【发布时间】:2020-03-09 13:45:14
【问题描述】:

我正在尝试使用光栅读取 R 中的 Tif 文件。我基本上需要将 tif 文件中的数据(坐标)匹配到我在另一个 shapefile 中定义的城市的特定边界。
我的 TIF 文件大约 7 mb。

问题是我知道如何将这些 tif 文件转换为可用格式的唯一方法是首先将我的 RasterLayer 转换为数据框。但是,当我尝试这样做时,由于某种原因,数据框最终有大约 3 亿行,而栅格层最初只有 16,000 行。这会导致一切停滞不前。我想知道是否有一种更简单的方法可以将我的 TIF 文件转换为 R 的可读格式,然后我可以随后在我的 Over 函数中使用它。我的代码如下。任何帮助,将不胜感激。

city_lights <- raster(tif_file)
city_lights_df <- as.data.frame(city_lights, xy = TRUE)
coordinates(city_lights_df)<- ~x +y
proj4string(city_lights_df) <- proj4string(city_boundaries_poly_obj)

city_lights_coords <- over(city_lights_df, city_boundaries_poly_obj)

【问题讨论】:

    标签: r data-science geospatial raster tiff


    【解决方案1】:

    我不是 100% 清楚您的问题,但我假设您想从城市边界多边形所覆盖的栅格中返回值?如果是这样试试这个,如果不是,请提供更多详细信息:

    city_lights <- raster(tif_file)
    city_lights <- crop(city_lights, city_boundaries_poly_obj)
    city_lights <- mask(city_lights, city_boundaries_poly_obj)
    res <- rasterToPoints(city_lights)
    

    【讨论】:

    • 您好,这里的问题是我无法将城市灯光读入内存,因为 TIF 太大,所以我无法裁剪它。
    • 您是说栅格太大而无法读入 R 吗?您没有在问题中提到任何地方,并且 7 MB 对于栅格来说并不大
    • 您好,对不起,我刚刚意识到我回答了错误的查询。对于这个问题,这将起作用。我有 2 个类似的问题未解决。
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    相关资源
    最近更新 更多