我必须将一些投影光栅(具有ndvi值)转换为csv或excel文件。我想保持网格形式,第一行作为公制lon值,第一列作为公制lat值。在交叉点应该有ndvi值。
我通常用“as”。数据frame(光栅,xy=T)将值导出为数据帧,但在这种情况下,我将获得一种值矩阵。
library(raster)
r <- raster(ncol=10, nrow=10)
ncell(r)
values(r) <- 1:ncell(r)
plot(r)
df <- as.data.frame(r, xy=T)
head(df)
x y layer
1 -162 81 1
2 -126 81 2
3 -90 81 3
4 -54 81 4
5 -18 81 5
6 18 81 6
我想要的
1 2
1 v1 v2
2 v3 v4
安然后,write.csv....
如果我们需要一个tidyverse方法
library(tidyerse)
df %>%
spread(x, layer) %>%
arrange(desc(y))
或者使用base R
xtabs(layer ~ y + x, transform(df, y = factor(y,
levels = sort(unique(y), decreasing = TRUE))))
您可以使用作为。矩阵
用于此。
library(raster)
r <- raster(ncol=10, nrow=10)
values(r) <- 1:ncell(r)
m <- as.matrix(r)
write.csv(m, "test.csv", row.names=F)
read.csv("test.csv")
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
#1 1 2 3 4 5 6 7 8 9 10
#2 11 12 13 14 15 16 17 18 19 20
#3 21 22 23 24 25 26 27 28 29 30
#4 31 32 33 34 35 36 37 38 39 40
#5 41 42 43 44 45 46 47 48 49 50
#6 51 52 53 54 55 56 57 58 59 60
#7 61 62 63 64 65 66 67 68 69 70
#8 71 72 73 74 75 76 77 78 79 80
#9 81 82 83 84 85 86 87 88 89 90
#10 91 92 93 94 95 96 97 98 99 100
你也可以像这样创建矩阵
mm <- matrix(values(r), ncol=ncol(r), byrow=TRUE)
我找到了一个从'as.data.frame'传递到'dcast'的解决方案
df <- as.data.frame(raster, xy=T)
d1 <- dcast(df, y~x, value.var = "layer")
d2 <- d1 %>% arrange(-y)
不优雅,但有效。还有其他方法吗?
我目前正在将原始矩阵转换为光栅以使用焦距函数,然后我想将光栅转换回矩阵。但是,当我尝试将光栅函数用作时,出现了一条错误消息。矩阵()。即使有这个非常简单的例子: 以下是我得到的: 如果(!is.null(names(x)))列表(names(x),,则数组(x,c(length(x),1L)中出错: “dimnames”[1]的长度不等于数组范围 我正在使用RstuIO、R版本3.4.0和、和库。
我有一个带有空间坐标和一个变量的矩阵数据。空间分辨率为1000米。 我想将其转换为光栅格式。 我使用下面的代码来完成它。但我得到的决心与我得到的不一样。有没有更好的方法可以用我的真实数据获得相同的分辨率?
我已经使用Google Maps API V3创建了一个自定义地图。这是一幅虚构世界的矩形地图,而不是真实世界中的任何东西。 我一直在读关于如何在自定义谷歌地图中使用投影的文章。我需要使用投影,因为使用投影放置标记和区域,它们不会水平重复。总之,我从教程中提取了以下代码: 我已经把它应用到我的地图上,它似乎起作用了。然而,我正在试图弄清楚如何改变投影的比例。当我放置这样的标记时: 标记被放置在地图
我正在尝试以0.0417度的分辨率将一个人工光发射的全球光栅从经度/纬度重新投影到贝尔曼等面积(EPSG:6933)。由于在重投影期间对像素进行插值时,城市地区周围的数据出现峰值,因此整个图层的数据丢失率约为15%。 我尝试将光栅转换为空间点数据框,重新投影空间点数据框,然后使用使用“projectraster”功能创建的光栅作为模板光栅进行光栅化(我认为模板光栅的尺寸、范围和分辨率可能是问题所在
下面的代码在我的图像上生成两个框。我正计划进一步分析这些框内的像素。 在下面的例子中,在红色方块的情况下,我不想继续下去,因为它的右上角有黑色像素。而我想继续在绿色方块的情况下,因为它没有一个黑色像素沿着它的边缘。
Framework7 有灵活的布局网格,允许你按需求放置内容: <!-- Each "cells" row should be wrapped with div class="row" --> <div class="row"> <!-- Each "cell" has col-[widht in percents] class --> <div class="col-50">50