小编Ted*_*ard的帖子

如何使R的'光栅'包区分GeoTIFF中的正旋转矩阵和负旋转矩阵?

看来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 raster image-rotation geotiff r-raster

51
推荐指数
1
解决办法
854
查看次数

从R中的变量打印内联乳胶方程式,遇到\ beta的问题

我想在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 …

latex r r-markdown

7
推荐指数
1
解决办法
2909
查看次数

R功能为太阳位置带来意想不到的效果

给定时间,纬度和经度,我想计算太阳的位置.我在这里找到了这个很棒的问题和答案:太阳在一天中的位置,经度和纬度.但是,当我评估函数时,我得到的结果不正确.考虑到答案的质量,我几乎可以肯定我的结果有些不对劲,但我问这个问题是试图解决问题的记录.

以下是为方便起见,下面重印的功能代码:

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)

geometry r azimuth astronomy

7
推荐指数
1
解决办法
148
查看次数

在 emacs 组织模式下评估当前标题下的所有代码块

我使用 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)

emacs org-mode

5
推荐指数
1
解决办法
504
查看次数

在R中,拆分数据帧,使子集数据帧包含先前数据帧的最后一行和后续数据帧的第一行

有关如何拆分数据帧的答案有很多,例如如何拆分数据框?

但是,我想拆分一个数据帧,以便较小的数据帧包含前一个数据帧的最后一行和下一个数据帧的第一行.

这是一个例子

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)

r dataframe

4
推荐指数
1
解决办法
558
查看次数

检测栅格是否在SpatialPolygons对象内,没有或相交

我有很多栅格,我想检查它们是否完全包含在空间多边形内,完全没有空间多边形,或者与空间多边形相交(这可能意味着多边形完全在栅格内,或多边形和光栅重叠).我正在做这个检查,以便在可能的情况下节省时间密集的屏蔽.

这是一个例子:

                                      # 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)

r r-raster r-sp

3
推荐指数
1
解决办法
1944
查看次数