【问题标题】:How to do raster data assimilation ( 3dVar ) in R or java?如何在 R 或 java 中进行栅格数据同化( 3dVar )?
【发布时间】:2015-08-05 18:32:44
【问题描述】:

假设我有三个光栅图像,免得说下面的

  1. 光栅 1

  2. 光栅 2

  1. 光栅 3

  1. 点(测量)

因此,基于三个光栅图像的数据,我想生成其他预测光栅,而不是最小化测量点的误差(假设误差也会在整个光栅上最小化)。

或者我想要三个栅格的数据同化(Asimilated raster=f(raster1,raster2,raster3) 可以最大限度地减少测量点的误差)。

您能否建议任何可以在 R 或 java 中执行此操作的包(或代码)?

谢谢

【问题讨论】:

    标签: java r raster


    【解决方案1】:

    如果我理解你的话,你想做一个有监督的分类,你有三个预测变量(栅格)和一些你有测量的观察值(点)。以下是您如何做到这一点的示例:

    library(raster)
    library(dismo)
    # three layers
    logo <- brick(system.file("external/rlogo.grd", package="raster"))
    logo
    
    # 10 random points
    set.seed(0)
    p <- randomPoints(logo, 10)
    
    # extract values for points
    pv <- extract(logo, p)
    
    # observations at those locations
    obs <- apply(pv + rnorm(length(pv), 0, 100), 1, sum)
    
    v <- data.frame(obs=obs, pv)
    
    # fit a model
    model <- glm(formula=obs~., data=v)
    model
    
    # predict
    r <- predict(logo, model, progress='text')
    
    plot(r)
    points(p, pch=20, col='red')
    

    您可能希望将glm 替换为另一种更灵活的方法,例如RandomForest。有关更多示例,请参见 ?raster::predict 并参见此小插图:http://cran.r-project.org/web/packages/dismo/vignettes/sdm.pdf。 上下文可能不同,但一般方法(监督分类)非常相似。

    【讨论】:

      【解决方案2】:

      如果您搜索提供 3DVAR 数据同化算法的 Python 包,您可以考虑 OpenTURNS 和 GaussianNonLinearCalibration 类:

      http://openturns.github.io/openturns/master/user_manual/_generated/openturns.GaussianNonLinearCalibration.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多