最近在学习一些关于**SIF(太阳诱导叶绿素荧光)**的知识,所以把这个过程中遇到的一些问题和解决问题的过程记录下来,以便之后能够回忆起来。
1. arcgis的渔网(fishnet)的绘制和数据获取
首先需要选取一个区域进行渔网格的提取,我选取的是西南地区的图像(云贵川、重庆、西藏):
进行fishnet的生成(数据管理工具):
打开fishnet图像的属性表,查看里面的字段,然后添加两个字段(latitude和longitude),并进行几何计算,生成对应字段的值:
得到包含两个字段具体信息的属性表:
导出属性表,并以文本文件的形式储存:
成功!!!
最后展示一下生成的效果图:
2. 图像掩膜和归一化处理
图像掩膜(裁剪出西南地区所对应的sif图像数据)应该是一个比较常见的操作,按掩膜提取:
再对掩膜后的栅格图像进行归一化操作,我这里叫做模糊分类,有的版本的arcgis叫做 Fuzzy Membership(模糊隶属度):
选择线性函数:
生成结果对比(图一为归一化图像,图二为原始图像)
可以看出,归一化之后的图像,对比度更加的明显。
3. Panoply的使用
这是一个用来查看**.nc文件**()的一个神器。
.nc文件: netCDF(The Network Common Data Form),可以用来存储一系列的数组。可以通过之前生成的fishnet文本数据生成.nc文件,具体说就像栅格图像的属性表,记录了图像的 纬度、经度、时间、SIF 等字段。
1. 打开一个.nc文件:
2. 查看文件中的信息:
但是我对这些信息都不太了解,不知道他们具体有什么作用。
再重新打开一个文件(图像很大,大概150MB):
这个图中包含了可以绘制图像的属性字段(GeoTraj),加载起来会比较的卡:
4.Python查看.nc文件
# -*- coding: utf-8 -*-
from netCDF4 import Dataset
import numpy as np
import sys
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.basemap import Basemap
from pandas import DataFrame
#数据读入
nc=Dataset('D:\\PythonFile\\ret_f_nr5_nsvd12_v26_waves734_nolog.20140202_v28_all.nc')
print(nc.variables.keys())
print('-----------------------------------------------------------------------------------')
#取出各variable的数据看看,数据格式为numpy数组
for var in nc.variables.keys():
data=nc.variables[var][:].data
print(var,data.shape)
print('-----------------------------------------------------------------------------------')
print(nc.variables['longitude'][:].data,nc.variables['latitude'][:].data)
结果图: