我在 data.txt 中有 2 列 xy 数据,如下所示:
0 0
1 1
2 4
3 9
4 16
5 25
Run Code Online (Sandbox Code Playgroud)
现在我想定义一个函数 f(x),其中 x 是第一列,f(x) 是第二列,然后能够打印该函数的值,如下所示:
f(2)
Run Code Online (Sandbox Code Playgroud)
这应该给我 4。
我该如何实现这一目标?
我试图在R中编写一个使用gstat库的代码来创建插值.我已经阅读了gstat手册,基于互联网上的一些例子,我设法编写了这段代码(这只是一部分):
g <- gstat(id="tec", formula=TEC ~ 1, data=data) ##I create an object
v <- variogram(g) # plot the empirical variogram
plot(v)
mod<-vgm(sill=var(data$TEC),model="Sph",range=200,nugget=200) #create the variogram model
v.fit <- fit.variogram(v, model=mod,fit.method=1) #fit the empirical variogram
Theor_variogram=plot(variogram(g),v.fit,main="WLS Model") #plot the theoretical variogram
plot(Theor_variogram)
## Kriging interpolation
p <- predict.gstat(g, model=v.fit, newdata=predGrid)
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我运行最后一个命令(预测)而不是通过普通克里金插值得到结果时,我得到一个反距离加权(IDW).我在gstat手册中读到:"当没有指定变异函数时,反距离加权插值是默认操作.当指定变异函数时,默认预测方法是普通克里金法."
但是,正如您在我的代码中所看到的,我指定了经验和理论变差函数.你知道我为什么一直得到IDW而不是普通克里金吗?它可以与我的坐标类型相关吗?例如,如果我的坐标彼此接近,或者感兴趣的区域太大?任何帮助都非常有用.
在此先感谢迪米特里斯
我有不同位置(X1,X2,...)的温度数据的每日平均值,我想用它们插入地图.我通过从格式化的Excel工作表加载它们来创建长格式数据对象,例如:
library(reshape2)
tempdata <- read.csv("...", sep=";")
names(tempdata) <- c("date", paste("X", 1:73))
head(tempdata)
# date X1 X2 X3 X4 X5 X6 X7
# 1 1 7.3 6.6 6.7 5.8 6.1 6.1 5.5
# 2 2 7.5 6.6 6.6 5.6 4.8 4.7 3.9
# 3 3 8.8 7.7 7.6 7.0 7.0 6.0 5.8
# 4 4 8.5 7.4 7.5 7.0 7.3 5.9 5.5
# 5 5 7.7 6.7 6.9 6.1 6.8 5.1 4.1
# 6 6 7.5 6.7 6.8 6.0 6.4 5.0 …Run Code Online (Sandbox Code Playgroud) 我是一位地质学家,需要在具有不同xyz数据集的项目中创建数百个一致的轮廓图。
塑造不规则xyz数据点的轮廓涉及在统一的xy网格处创建内插(外推)z值的“网格”。在R之外-此步骤称为“网格化”。我对R还是比较陌生,因此我尝试设置一个强大的工作流来网格化大量不规则数据点。我在努力!
在经典轮廓映射软件和工作流程上,步骤如下:
我正在尝试使R脚本完全遵循上述步骤顺序,以在整个分析过程中保持灵活性和控制力。
df是由示例数据集组成的数据帧。
wellid property z x y
060010 1 0.008849558 756994.5 2637732
009410 1 0.260162602 760190.9 2622262
009910 1 0.115044248 760898.7 2637466
051110 1 0.109243697 761690.2 2630985
065610 1 0.066666667 763064.1 2620929
011010 1 0.000000000 763089.3 2630888
035210 1 0.022556391 765942.4 2625944
052510 1 0.157894737 767058.1 2650034
006610 1 0.045045045 768265.0 2645318
009010 1 0.378151261 768471.8 2636731
011210 1 0.028776978 771393.8 2629001
064810 1 0.428571429 771394.1 2650776
009110 1 0.064220183 775332.6 …Run Code Online (Sandbox Code Playgroud) 我正在开发一种工具,可以让您在 3D“体积”上圈出/包围事物。我想通过标记“切片”1 和 3 并从该信息“填充”切片 2 来节省时间。
两个简单的解决方案是:
1. slice2 = slice1 AND slice3 (gets the overlap between the two)
2. slice2 = slice2 OR slice3 (true for any pixel true in either image)
Run Code Online (Sandbox Code Playgroud)
这些都很好而且很快,但我更喜欢通过使形状在两者之间进行某种平均/插值来做一些更智能的事情。您可以将其想象为试图找到连接海平面飞机和空中高原的悬崖面。
示例:填充此 3d 矩阵中的切片 2-4。(使用创建montage)

随意想出全新的想法。我将把我的想法放在下面。
我想到的一些东西可能会对你(回答者)有所帮助,但我未能成功使用。
到目前为止我得到的最好的:
添加图像。给你重叠和两个周长:
- 一个内周长(其内部肯定是 1)
- 和一个外周长(其内部是有问题的)。
您还可以屏蔽 >0 AND <2 的区域,这是该可疑区域的屏蔽。在两周边图像上
运行 a并遮罩:bwdist
![蒙版 bwdist 图像] 2
但不知道如何从这里出发。沿着该区域绘制“最大”轮廓的线是可行的,但我不确定如何稳健地做到这一点。
欢迎任何关于修正我的想法或任何其他想法的想法!
谢谢。
我有一个二维空间域,例如 [0,1]\xc3\x97[0,1]。在此域中,有 6\xc2\xa0 个点,其中观察到了一些感兴趣的标量(例如,温度、机械应力、流体密度等)。如何预测未观察点的兴趣量?换句话说,如何在 Python 中插入空间数据?
\n例如,考虑 2D 域中的点的以下坐标(输入)以及感兴趣数量的相应观测值(输出)。
\nimport numpy as np\ncoordinates = np.array([[0.0,0.0],[0.5,0.0],[1.0,0.0],[0.0,1.0],[0.5,1.],[1.0,1.0]])\nobservations = np.array([1.0,0.5,0.75,-1.0,0.0,1.0])\nRun Code Online (Sandbox Code Playgroud)\nX\xc2\xa0 和 Y\xc2\xa0 坐标可以通过以下方式提取:
\nx = coordinates[:,0]\ny = coordinates[:,1]\nRun Code Online (Sandbox Code Playgroud)\n以下脚本创建一个散点图,其中黄色(或蓝色)代表高(或低)输出值。
\nimport matplotlib.pyplot as plt\nfig = plt.figure()\nplt.scatter(x, y, c=observations, cmap=\'viridis\')\nplt.colorbar()\nplt.show()\nRun Code Online (Sandbox Code Playgroud)\n\n我想使用克里金法来预测二维输入域内规则网格上感兴趣的标量。我怎样才能在Python中做到这一点?
\n在我正在开发的项目中,我有一个有趣的算法挑战.我有一个排序的坐标点列表,指向街道两侧的建筑物,这些建筑物已经足够放大,如下所示:
我想采取这种曲折并将其平滑以使基础街道线性化.
我可以想到几个解决方案:
是否有更好或最好的方法来解决这个问题?(我使用的是Python 3.5)
algorithm interpolation geospatial smoothing spatial-interpolation
我使用R功能autokrige的automap包,但我得到了一个错误,我不知道如何解决它.你有什么提示吗?
谢谢!
sp.poidf <- SpatialPointsDataFrame(sp.poi,thresh.df)
proj4string(sp.poidf) <- CRS("+proj=longlat +datum=WGS84")
pro.df=spTransform(sp.poidf, CRS("+proj=merc +zone=32s +datum=WGS84"))
sp.new <- SpatialPoints(new.poi)
proj4string(sp.new) <- CRS("+proj=longlat +datum=WGS84")
pro.new <- spTransform(sp.new, CRS("+proj=merc +zone=32s +datum=WGS84"))
mykri <- autoKrige(mythresh~1,pro.df,newdata=pro.new)
Error in function (classes, fdef, mtable) :
unable to find an inherited method for function "proj4string", for signature "NULL"
Run Code Online (Sandbox Code Playgroud)