我试图从顶点位置创建一组多边形,以X,Y格式保存.
以下是我的数据示例 - 每行代表一个多边形的顶点.多边形是正方形
square <- rbind(c(255842.4, 4111578, 255862.4, 4111578, 255862.4, 4111558,
255842.4, 4111558, 255842.4, 4111578, 255842.4, 4111578),
c(257397.0, 4111309, 257417.0, 4111309, 257417.0, 4111289,
257397.0, 4111289, 257397.0, 4111309, 257397.0, 4111309))
ID <- c("SJER1", "SJER2")'
Run Code Online (Sandbox Code Playgroud)
我正在使用SpatialPolygons,因此我的数据需要在列表中.所以我创建了一个循环来尝试从矩阵中将我的数据转换为列表格式.
我创建了一个循环代码,我在本网站的其他一些问题中找到了代码.我打破了每一步,试图理解为什么我只得到一个多边形作为输出,即使我有2组点.
for (i in 1:2) {
pts <- rbind(c(square[i,1], square[i,2]), c(square[i,3], square[i,4]),
c(square[i,5],square[i,6]), c(square[i,7],square[i,8]),
c(square[i,9],square[i,10]))
sp1 <- list(Polygon(pts))
sp2 <- list(Polygons(sp1,i))
sp = SpatialPolygons(sp2)
}
plot(sp)
Run Code Online (Sandbox Code Playgroud)
你能帮我理解我如何调整代码来写出两个多边形而不是一个多边形吗?而且,如果我使用矩阵(方形)作为我的起始数据集,我如何为每个多边形分配ID,如果我指定了一个字符ID,它会将我的所有数据转换为一个字符.
我的最终目标是SpatialPolygons对象中的两个多边形,第一个具有ID SJER1,第二个具有SJER2存储在SpatialPolygons对象中的ID .
然后我会把它写到shapefile中.
这是一个非常好奇的Jekyll github问题,我无法弄清楚.
我在这里有一个repo,我正在开发教程
https://github.com/NEONInc/NEON-DataSkills-Lesson-Development
如果您在线访问它,您会注意到_posts目录中的markdown帖子的标题如下所示
#Header One
##Header Two
Run Code Online (Sandbox Code Playgroud)
它们不在线呈现.而是注意到即使是登陆页面:
http://neoninc.github.io/NEON-DataSkills-Lesson-Development/
将顶部标题呈现为
##Welcome to the NEON #WorkWithData Portal!
Run Code Online (Sandbox Code Playgroud)
代替
这是最奇怪的部分 - 当我做"jekyll"构建时,它会在本地呈现FINE.我试过了
另一个怪癖 - 如果你去上课 - 比如说
http://neoninc.github.io/NEON-DataSkills-Lesson-Development/R/EML
注意代码块中的行间距很宽 - 本地的行间距是LESS,看起来好多了.所以某人的CSS被部分忽略了?
我不知道还有什么可以尝试正确渲染 - 或者在github在线和本地构建之间一致地呈现.特别是考虑到我不能在本地复制这个问题.关于我还可以尝试修复此渲染问题的任何指导?
注意:这个相同的repo皮肤用于其他repos并在线呈现JUST FINE.所以这个问题特定于这个特定的回购.
示例:http://neoninc.github.io/NEONDS-Template-Repository/
非常感谢任何想法.利亚
我想为plotRGB输出添加标题。
#create random raster stack
r1 <- raster(nrow=5, ncol=5)
values(r1) <- 1:25
r2 <- r3 <- r1
RGB_stack <- stack(r1, r2, r3)
Run Code Online (Sandbox Code Playgroud)
我试过了:
# Create an RGB image from the raster stack
plotRGB(RGB_stack, r = 1, g = 2, b = 3,
axes=TRUE, main="My Title")
plotRGB(RGB_stack, r = 1, g = 2, b = 3,
axes=TRUE, addfun="(title='Test title')")
Run Code Online (Sandbox Code Playgroud)
我试图打开和关闭轴。我不确定还有什么其他方法可以使这项工作成功。
更新:根据下面的反馈,我发现
#Create an RGB image from the raster stack
plotRGB(RGB_stack, r = 1, g = 2, b = 3,
axes=TRUE, …Run Code Online (Sandbox Code Playgroud) 我遇到了一个不寻常的结果,R 中的栅格没有数据值。下面的代码 - 我有一个没有导入的数据值的栅格 (-9999)。QGIS 也读取 nodatavalue,arcgis。R 在读入 geotiff 时,将 nodata 值分配给 -INF。
我不知道为什么。但是我决定尝试从头开始制作一个 - 并且结果相同。我的过程有什么问题?如何确保 R 正确读取 nodatavalues?
注意:我下面的示例是创建的栅格/ geotiff。但我实际上是在导入一个组织生产的相当大的 geotiff。所以我无法控制它们的编写方式,但如果需要,我可以要求他们调整标签。
library(raster)
#create a raster from the matrix
myRaster1 <- raster(nrow=4, ncol=4)
#assign some random data to the raster
myRaster1[]<- 1:ncell(myRaster1)
myRaster1[5] <- -9999
#ensure the data have some decimals
myRaster1[2] <- 34.5
#assign no data value to raster
myRaster1@file@nodatavalue <- -9999
#make sure it worked
NAvalue(myRaster1)
myRaster1@file@nodatavalue
#view attributes of the raster
myRaster1
#write out raster
#write the …Run Code Online (Sandbox Code Playgroud) 我在我的git网站上遇到了一些不寻常的错误.
注意:我使用Kramdown + highlight.js突出显示代码.
以下是我正在研究的课程.在本课中,我需要EML在代码块中呈现
(类似于XML).我正在使用kramdown.我还想在代码块中呈现HTML - 例如,我需要一个代码块来解释如何添加包含文件:
{% include _toc.html %}
Run Code Online (Sandbox Code Playgroud)
例证 - 以下课程:http: //neoninc.github.io/NEONvalsSkills-Lesson-Development/R/EML/
奇怪的是,当JEKYLL构建页面时,它正在运行包含XML和HTML的代码块.
我试过了:
<code>
<creator>
<individualName>
<givenName>Emery</givenName>
<surName>Boose</surName>
</individualName>
</creator>
</code>
Run Code Online (Sandbox Code Playgroud)
这会在</code>页面上呈现结束标记,这很奇怪.如果我不使用代码标记,那么jekyll会尝试PARSE XML.
<pre><code class="xml">
<creator>
<individualName>
<givenName>Emery</givenName>
<surName>Boose</surName>
</individualName>
</creator>
</code></pre>
Run Code Online (Sandbox Code Playgroud)
这仍然会尝试解析和HTML标记.
我试图切换到redcarpet.但是,redcarpet打破了我的分组框,我的代码如下:{: .notice }用于将样式应用于div.
<i class="fa fa-star"></i> **Data Tip:** To figure out the full slot string,
in `RStudio` we can use Tab Complete as we type.
Run Code Online (Sandbox Code Playgroud)
最后 - 我的工作流程是从RMD编织到md,因此当我构建时,为每个代码块(pre和code)添加自定义代码是有问题的.
简而言之 - 我很难找到解决方案 …
我正在尝试生成一个覆盖美国底图的漂亮泡泡图(如果可以的话,我可以导入一个shapefile,但我一直在使用R底图。
library(ggplot2,sp,raster,maps,mapdata,maptools,ggmap,rgeos)
myData = data.frame(name=c("Florida","Colorado","california","Harvard","Yellowstone"),
lat=c(28.1,39,37,42,44.6),
long=c(-81.6,-105.5,-120,-71,-110),
pop=c(280,156,128,118,202))
Run Code Online (Sandbox Code Playgroud)
使用下面的这段代码,我改编自另一个堆栈溢出帖子(使用卫星地图在R中创建气泡图),可以将气泡图覆盖在美国地图上。但是,渲染速度非常慢,范围太紧,限制在一个盒子中,我无法根据自己的判断将其他图层添加到绘图中,并且底图较厚且视觉上不干净。
xy <- myData[,c("long", "lat")]
nl <- getData('GADM', country="USA", level=1) #raster data, format SpatialPolygonsDataFrame
nl <- gSimplify(nl, tol=0.01, topologyPreserve=TRUE)
# coercing the polygon outlines to a SpatialLines object
spl <- list("sp.lines", as(nl, "SpatialLines"))
SPDF <- SpatialPointsDataFrame(coords=xy, data=myData)
coordinates(myData) <- c("lat", "long")
projection(SPDF)<- "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0"
coordinates(SPDF)[1:5,] #retrieves spatial coordinates form the dataframe
bubble(SPDF, "pop", sp.layout=spl, main="This is It!")
Run Code Online (Sandbox Code Playgroud)
我可以使用此代码绘制一个漂亮的底图。我在地图上添加了点,但是这些点的大小没有按照数据中的弹出列来确定。而且我可以在此地图上添加其他图层。但是我可以像使用气泡图一样控制点的大小和符号本身吗?
map(database= "world", ylim=c(45,90),
xlim=c(-160,-50), col="grey80",
fill=TRUE, projection="gilbert",
orientation= c(90,0,225)) …Run Code Online (Sandbox Code Playgroud)