在ENVI5.3.1英文版软件中利用高分一号wfv数据进行几何多项式校正的具体流程
时间: 2024-02-19 13:02:26 浏览: 220
首先,打开ENVI5.3.1软件,然后依次点击菜单栏中的File -> Open Image File,选择高分一号wfv数据文件并打开。
接着,点击菜单栏中的Geometric Correction -> Geometric Correction,打开几何校正窗口。
在几何校正窗口中,选择高分一号wfv数据所在的文件夹,然后在Input Raster中选择高分一号wfv数据文件。接着,在Output Raster中选择几何校正后的输出文件路径和名称。
在Sensor模块中,选择高分一号wfv卫星,并填写相应的参数,如传感器高度、视场角等。
接下来,在GCPs模块中,选择“From Display”或“From File”获取控制点,也可以手动添加控制点。控制点的获取要保证控制点匹配度高,否则会影响几何校正的精度。
然后,在Polynomial Order模块中选择几何多项式的阶数,一般情况下,选择3或4阶多项式即可。
最后,在Resampling模块中,选择相应的插值算法和输出像元大小,并勾选“Create Output Mask File”选项,以便生成掩膜文件。
完成以上步骤后,点击“Run”按钮,开始进行几何校正操作。操作完成后,可以在输出文件夹中找到几何校正后的数据文件和掩膜文件。
相关问题
大气校正后的ndvi_ENVI下高分一号WFV数据FLAASH大气校正
您的问题是关于大气校正后的NDVI,以及高分一号WFV数据的FLASH大气校正。我理解您想问的是这种大气校正方法是否适用于NDVI数据,并且是否可以使用高分一号WFV数据进行FLASH大气校正。
关于第一个问题,大气校正后的NDVI可以提高其精度和可靠性。 NDVI是一种用于评估植被覆盖和生长情况的指数,通常使用遥感数据获取。由于大气扰动,遥感数据中的NDVI值可能会受到影响。大气校正可以消除这种影响,从而提高NDVI数据的质量。
关于第二个问题,高分一号WFV数据可以使用FLASH大气校正方法进行大气校正。FLASH是一种基于物理模型的大气校正方法,可以有效地消除遥感数据中的大气扰动。这种方法已经被广泛应用于遥感数据的处理中,包括高分一号WFV数据的处理。因此,您可以使用高分一号WFV数据进行FLASH大气校正,并获得更高质量的NDVI数据。
使用Py6S模型实现高分一号WFV3数据的大气校正,显示具体操作步骤和代码
Py6S是一个用于大气校正和辐射传输模拟的Python接口,可以用于处理多种遥感数据,包括高分一号WFV3数据。下面是使用Py6S模型实现高分一号WFV3数据的大气校正的基本步骤和代码示例:
1. 安装Py6S
如果你还没有安装Py6S,可以使用以下命令安装:
```
pip install py6s
```
2. 导入必要的库和数据
导入Py6S和需要处理的高分一号WFV3数据。这里假设高分一号WFV3数据已经被裁剪成一个小的区域,并且存储在名为"sample.tif"的文件中。
```python
import numpy as np
from osgeo import gdal
import spectral
import Py6S
# 导入高分一号WFV3数据
data_path = 'sample.tif'
data = gdal.Open(data_path)
# 获取数据的基本信息
cols = data.RasterXSize
rows = data.RasterYSize
bands = data.RasterCount
geo_transform = data.GetGeoTransform()
projection = data.GetProjection()
# 将数据转换为numpy数组
data_array = np.zeros((rows, cols, bands))
for b in range(bands):
band = data.GetRasterBand(b+1)
data_array[:,:,b] = band.ReadAsArray()
```
3. 设置6S模型参数
在使用Py6S模型进行大气校正之前,需要设置6S模型的参数。这些参数包括大气模型、天顶角、水汽含量等。这里我们使用标准大气模型(ATMOSPHERE_PREDEFINED)和默认的天顶角(0度)和水汽含量(1.5cm)。
```python
# 设置6S模型参数
SixS = Py6S.SixS()
SixS.atmos_profile = Py6S.AtmosProfile.PredefinedType(Py6S.AtmProfileType.Tropical)
SixS.aot550 = 0.1
SixS.altitudes.set_sensor_satellite_level()
```
4. 大气校正
使用Py6S模型进行大气校正的主要步骤是遍历数据的每个像素,并根据像素的位置和大气参数计算反射率。下面是一个简单的代码示例:
```python
# 遍历每个像素并进行大气校正
output_array = np.zeros((rows, cols, bands))
for y in range(rows):
for x in range(cols):
pixel_rad = data_array[y, x, :]
if np.sum(pixel_rad) > 0:
SixS.geometry.solar_z = 0
SixS.geometry.view_z = 0
SixS.geometry.view_a = 0
SixS.altitudes.set_sensor_satellite_level()
SixS.wavelength = spectral.envi_header wavelengths
SixS.run()
output_array[y, x, :] = SixS.outputs.values.atmospheric_intrinsic_reflectance
```
5. 保存结果
最后,将处理后的数据保存为GeoTIFF格式。
```python
# 保存结果
driver = gdal.GetDriverByName('GTiff')
out_data = driver.Create('sample_output.tif', cols, rows, bands, gdal.GDT_Float32)
out_data.SetGeoTransform(geo_transform)
out_data.SetProjection(projection)
for b in range(bands):
out_band = out_data.GetRasterBand(b+1)
out_band.WriteArray(output_array[:,:,b])
out_band.FlushCache()
```
这就是使用Py6S模型对高分一号WFV3数据进行大气校正的基本步骤和代码示例。
阅读全文