我需要获取从范围(15,20,1)派生的数字列表,每个数字都是 15*x*100:
X Y
15 100
16 93,75
17 88,2352941176
18 83,3333333333
19 78,9473684211
20 75
Run Code Online (Sandbox Code Playgroud)
结果应该是一个包含两位小数的 y 数组。
我尝试使用 python,花了一段时间才发现它只能处理整数。然后我尝试了 numpy,但我仍然没有到达那里。我是个傻瓜,对这个问题的愚蠢感到抱歉,但在尝试了两个小时后,我决定发布一个问题。
最好的,梅斯
gdal中的方差图像
我想要一个局部方差图像与3x3的地理空间光栅图像使用python.到目前为止,我的方法是将光栅带作为数组读入,然后使用矩阵表示法运行移动窗口并将数组写入新的光栅图像.这种方法适用于本教程中描述的高通滤波器:http://www.gis.usu.edu/~chrisg/python/2009/lectures/ospy_slides6.pdf
然后我尝试用几种方法计算方差,最后一种方法使用numpy(作为np),但我得到的灰色图像到处都是相同的值.我愿意接受任何解决方案.如果它最终给出了我的平均局部方差,那就更好了.
rows = srcDS.RasterYSize
#read in as array
data = srcBand.ReadAsArray(0,0, cols, rows).astype(np.int)
#calculate the variance for a 3x3 window
outVariance = np.zeros((rows, cols), np.float)
outVariance[1:rows-1,1:cols-1] = np.var([(data[0:rows-2,0:cols-2]),
(data[0:rows-2,1:cols-1]),
(data[0:rows-2,2:cols] ),
(data[1:rows-1,0:cols-2]),
(data[1:rows-1,1:cols-1]),
(data[1:rows-1,2:cols] ),
(data[2:rows,0:cols-2] ),
(data[2:rows,1:cols-1] ),
(data[2:rows,2:cols] )])
#output
outDS = driver.Create(outFN, cols, rows, 1, GDT_Float32)
outDS.SetGeoTransform(srcDS.GetGeoTransform())
outDS.SetProjection(srcDS.GetProjection())
outBand = outDS.GetRasterBand(1)
outBand.WriteArray(outVariance,0,0)
...
Run Code Online (Sandbox Code Playgroud) 我有两个数据框:df1
plot grass moss rock other stuff
a 4 0 0 text 3
b 2 2 3 text 4
c 10 0 0 text 0
d 3 1 0 text 9
Run Code Online (Sandbox Code Playgroud)
和 df2
Cover value
grass 5
moss 2
rock 3
Run Code Online (Sandbox Code Playgroud)
我想将 df1 中的值乘以 df2 中的相应值。该解决方案应该适用于大型数据集。
结果df3
plot grass moss rock
a 20 0 0
b 10 4 9
c 50 0 0
d 15 2 0
Run Code Online (Sandbox Code Playgroud) 我想从python中提取一个zip文件中的特定文件夹,然后在原始文件名后重命名它.
例如,我有一个名为test.zip包含多个文件夹和子文件夹的文件:
xl/media/image1.png
xl/drawings/stuff.png
stuff/otherstuff.png
Run Code Online (Sandbox Code Playgroud)
我希望将提取的媒体文件夹的内容提供给名为test的文件夹:
test/image1.png
我有一个分类结果的整数栅格。现在我想用数据帧中的浮点值替换这些类,即栅格类 1 = 0.321; 2 级 = 0.232;3 级 = 3.211。数据框有很多列,我想替换几种不同情况的类:
Class C N ....
1 0.321 0.001
2 0.232 0.012
3 3.211 0.021
Run Code Online (Sandbox Code Playgroud)
有没有办法方便地做到这一点,例如将 data.frame 合并到栅格中?我需要将生成的栅格与另一个栅格相乘以生成输出。
这是光栅文件的元数据:
> LCC
class : RasterLayer
dimensions : 3296, 3711, 12231456 (nrow, ncol, ncell)
resolution : 2, 2 (x, y)
extent : 514151.8, 521573.8, 7856419, 7863011 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=55 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : /home/..../Raster.tif
names : Raster
values : 0, 255 (min, max) …Run Code Online (Sandbox Code Playgroud)