看来R中的光栅包不区分GeoTIFF的正旋转和负旋转.我感觉这是因为R忽略了旋转矩阵中的负号.我不够精通,无法深入挖掘raster源代码进行验证,但我确实创建了一个可重现的示例来演示问题:
阅读R徽标并另存为GeoTIFF.
library(raster)
b <- brick(system.file("external/rlogo.grd", package="raster"))
proj4string(b) <- crs("+init=epsg:32616")
writeRaster(b, "R.tif")
Run Code Online (Sandbox Code Playgroud)
使用Python向tiff添加旋转
import sys
from osgeo import gdal
from osgeo import osr
import numpy as np
from math import *
def array2TIFF(inputArray,gdalData,datatype,angle,noData,outputTIFF):
# this script takes a numpy array and saves it to a geotiff
# given a gdal.Dataset object describing the spatial atributes of the data set
# the array datatype (as a gdal object) and the name of the output raster, and rotation …Run Code Online (Sandbox Code Playgroud) 我想在r对象中存储一串内联乳胶数学,然后输出这个字符串,这样当编织rmarkdown时,乳胶方程以pdf格式输出.当我在字符串中包含"\ beta"时出错.这是一个例子:
---
title: "Untitled"
author: "Tedward"
date: "February 12, 2015"
output: pdf_document
---
```{r}
b_0<-"$\beta_0$"
```
`r b_0`
Run Code Online (Sandbox Code Playgroud)
错误:
>output file: Test_beta.knit.md
>
>! Package inputenc Error: Keyboard character used is undefined
>(inputenc) in inputencoding `utf8'.
>
>See the inputenc package documentation for explanation.
>Type H <return> for immediate help.
> ...
>
>l.97 $^^H
>
>Try running pandoc with --latex-engine=xelatex.
>pandoc: Error producing PDF from TeX source
>Error: pandoc document conversion failed with error 43
>Execution halted
Run Code Online (Sandbox Code Playgroud)
如果我将beta字符复制并粘贴到rmarkdown文件中,这就是我得到的错误.我想(并尝试了一下)将编码更改为包含beta作为一个字符,但意识到这不会解决我的问题.我需要文本行来读取$\beta …
给定时间,纬度和经度,我想计算太阳的位置.我在这里找到了这个很棒的问题和答案:太阳在一天中的位置,经度和纬度.但是,当我评估函数时,我得到的结果不正确.考虑到答案的质量,我几乎可以肯定我的结果有些不对劲,但我问这个问题是试图解决问题的记录.
以下是为方便起见,下面重印的功能代码:
astronomersAlmanacTime <- function(x)
{
# Astronomer's almanach time is the number of
# days since (noon, 1 January 2000)
origin <- as.POSIXct("2000-01-01 12:00:00")
as.numeric(difftime(x, origin, units = "days"))
}
hourOfDay <- function(x)
{
x <- as.POSIXlt(x)
with(x, hour + min / 60 + sec / 3600)
}
degreesToRadians <- function(degrees)
{
degrees * pi / 180
}
radiansToDegrees <- function(radians)
{
radians * 180 / pi
}
meanLongitudeDegrees <- function(time)
{
(280.460 + 0.9856474 * time) …Run Code Online (Sandbox Code Playgroud) 我使用 org 模式进行可重复的研究和文学编程,主要使用 R 进行计算。我是 emacs 的新手。
如果我开始一个新的 R 会话或者我的会话被中断,我将不得不重新运行一些代码块。这很容易使用速度命令(输入“e”来评估块,然后输入“n”移动到下一个)。我喜欢这个功能,唯一的问题是我的标题和子树然后被扩展,我必须再次关闭它们以保持页面整洁。
是否有现有的功能或 lisp 表达式来评估标题下的所有代码块?是否可以在不扩展以下内容的情况下执行此操作?
非常感谢
例如,如果光标位于标题 1 的开头,您能否使用单个命令评估标题 2 和 3 下的代码块?
* header 1
** header 2
#+BEGIN_SRC R
print("hello")
#+END_SRC
** header 3
#+BEGIN_SRC R
print("world")
#+END_SRC
Run Code Online (Sandbox Code Playgroud) 有关如何拆分数据帧的答案有很多,例如如何拆分数据框?
但是,我想拆分一个数据帧,以便较小的数据帧包含前一个数据帧的最后一行和下一个数据帧的第一行.
这是一个例子
n <- 1:9
group <- rep(c("a","b","c"), each = 3)
data.frame(n = n, group)
n group
1 1 a
2 2 a
3 3 a
4 4 b
5 5 b
6 6 b
7 7 c
8 8 c
9 9 c
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像:
d1 <- data.frame(n = 1:4, group = c(rep("a",3),"b"))
d2 <- data.frame(n = 3:7, group = c("a",rep("b",3),"c"))
d3 <- data.frame(n = 6:9, group = c("b",rep("c",3)))
d <- list(d1, d2, d3)
d
[[1]]
n group …Run Code Online (Sandbox Code Playgroud) 我有很多栅格,我想检查它们是否完全包含在空间多边形内,完全没有空间多边形,或者与空间多边形相交(这可能意味着多边形完全在栅格内,或多边形和光栅重叠).我正在做这个检查,以便在可能的情况下节省时间密集的屏蔽.
这是一个例子:
# create 3 example rasters
r <- raster()
r[] <- rnorm(n = ncell(r))
e1 <- extent(c(45,55,45,50))
r1 <- crop(r,e1)
e2 <- extent(c(20,25,25,30))
r2 <- crop(r,e2)
e3 <- extent(c(38,55,57,65))
r3 <- crop(r,e3)
#create SpatialPolygons
x <- c(40,60)
y <- c(40,60)
m <- expand.grid(x,y)
m <- m[c(1,2,4,3),]
p1 <- Polygon(m)
p1 <- Polygons(list(p1),1)
x <- c(10,15)
y <- c(10,15)
m <- expand.grid(x,y)
m <- m[c(1,2,4,3),]
p2 <- Polygon(m)
p2 <- Polygons(list(p2),2)
x <- c(30,45)
y <- c(70,80)
m <- expand.grid(x,y) …Run Code Online (Sandbox Code Playgroud)