如果标题不清楚,我很抱歉,我是python的新手,我的词汇量有限。 我想要做的是对.tif栅格中的每个波段应用标准差拉伸,然后通过使用GDAL (Python)堆叠这些波段来创建一个新的栅格(.tif)。 我可以用不同的波段组合创建新的假彩色光栅并保存它们,我可以使用dstack (第一块代码)在python中创建我想要的图像,但我无法将该图像保存为经过地理校正的.tif文件。 因此,要使用dstack创建拉伸图像,我的代码如下所示: import os
import numpy as np
import matplotlib.pyplot as plt
import math
from o
我想读取几个光栅tif文件,并获得一个数据作为输出。每个光栅有两个波段。
我想得到这样的输出:
我尝试读取所有的tif文件,但我不知道如何将它们堆栈为dataframe:
import numpy as np
import glob
import rasterio as rio
final = []
tif_files = glob.glob(os.path.join(Repo_img, r'*.tif'))
for f in tif_files:
im = rio.open(f).read(1)
imarray = np.array(im)
我是一个R新手,尤其是在空间数据方面。我正在尝试找到一种方法来高效地将多个(~600)个单波段光栅(.tif)文件导入到R中,所有这些文件都存储在同一个文件夹中。不确定这是否重要,但请注意,当在我的Mac和Windows并行虚拟机上的文件夹中查看时,每个.tif = .TIF;.tfw;.TIF.aux.xml;.TIF.ovr;.TIF.xml有以下五(5)种文件格式。无论如何,以下代码(以及我尝试过的其他类似变体)似乎不起作用:
library(sp)
library(rgdal)
library(raster)
#path to where all .tif files are loc
我有这段代码,我的目标是计算我的栅格的罪过的0.8次方。
import os
os.chdir('D:/NOA/Soil_Erosion/test_Project/Workspace/Input_Data_LS_Factor')
import rasterio
import math
data = rasterio.open('Slope_degrees_clipped.tif')
band = data.read(1) # array of float32 with size (3297,2537)
w = band.shape[0]
print(w)
我试图使用来自zonal_stats包的函数rasterstats从.shp文件中的每个形状的.tif文件中获取光栅统计信息。我设法在QGIS中做到了这一点,没有任何问题,但我必须对200多个文件进行同样的操作,这将需要很长时间,所以我正在尝试Python方法。文件和复制代码都在我的中。
我的剧本是:
import rasterio
import geopandas as gpd
import numpy as np
from rasterio.plot import show
from rasterstats import zonal_stats
from rasterio.transfor
我正在处理R中的Landsat 8场景,以计算NDVI并运行土地覆盖分类算法。我对光栅包中的writeRaster函数有问题,特别是在磁盘上编写光栅堆栈时。
我开始加载landsat 8场景的12个波段,并将它们作为层叠加在光栅堆栈中。由于它们是作为16位图像交付的,所以所有层的值范围从0到65535不等。在磁盘上写入光栅堆栈之后,当我从R环境中的磁盘重新加载新创建的文件时,所有层的值范围都与原始值不同。我不知道为什么,我在网上也找不到任何解决办法。
这是代码:
library(raster)
# Load the individual bands of the Landsat scene.
我刚开始命令行工作,不确定是否可以在这个.bat文件中做我想做的事情.
我有红外和自然颜色的图像对,像这样命名为"001_x_y_NIR.tif“和"001_x_y_RGB.tif”,前面的三位数字用来识别图像对。
此代码将图像波段从两个3波段输入文件拼接成一个4波段图像文件。
我想要的是让下面的代码通过一个包含几个NIR/RGB映像对的文件夹运行,这样它就可以在001_x_y_NIR.tif和001_x_y_RGB.tif上进行批处理,然后在002.,003.等等上执行。
正如所写的,如果我在我的源目录中只有一对,但我不知道如何使它以成对的方式迭代,它工作得很好。
set p
我正在测试几张VHSR卫星图像的分割算法,这些图像最初是16位格式的,但当我将它们转换为8位图像时,生成的图像显示为条纹外观。我已经尝试了不同的python库(skimage,cv2,scipy),得到了类似的结果。
1)原来的16位图像是4波段图像(NIR,B,G,R),所以需要选择合适的波段来创建真彩色图像,RGB图像(4,3,2波段)。提前谢谢。可从以下链接下载:
2)我使用这个代码来转换每个像素值,从现在适合8位范围的16位整数:
from scipy.misc import bytescale
SS = io.imread('Imag16bit.tif')
我正在处理R (raster软件包)中的MODIS栅格数据,我想知道为什么当将两个栅格文件相乘时,栅格的大小会变得7000倍。在我的例子中,一个栅格是一个简单的MODIS栅格(介于0和255 (整数)之间的值),另一个是一种模板(0和1(整数))。所以我不明白为什么栅格要这么大?当尝试用writeRaster保存栅格时,这是一个很大的问题,因为我的R会话总是崩溃。
我的代码如下所示:
a <- list.files('All_MODIS_files_of_one_year.tif')
for (day in 1:length(a)){
ra <- raster(a[
我正在尝试将多个.tif堆栈(每个堆栈包含40幅图像)合并到一个tiff堆栈中。我更愿意使用python来完成这个任务。到目前为止,我尝试过的是(请记住,我编写代码的经验不多,如果我错过了一些显而易见的东西,很抱歉):
import numpy as np
from skimage import io
im1 = io.imread('filename1.ome.tif')
for i in range(2,10):
im = io.imread('filename'+str(i)+'.ome.tif')
im1 = np.co