Python_DataFrame根据1列数据对令1列数据处理|MODIS数据质量控制筛选

Python_DataFrame根据1列数据对令1列数据处理|MODIS数据质量控制筛选

MCD43A4数据质量控制筛选

数据情况

Mandatory Quality bit index
Value	Description
0	Processed, good quality (full BRDF inversions)
1	Processed, see other QA (magnitude BRDF inversions)
255	Fill Value

数据处理

QC为0和1的数据为可用数据,所以保留QC为0和1的数据,其余置为空,以做后续插值处理。

import pandas as pd 
import numpy as np 
import warnings
warnings.filterwarnings('ignore')

#读取数据
df = pd.read_csv('G:/MCD43A4/AR-Vir-MCD43A4-061-results.csv')
df = df.set_index('Date')
#显示所有的行
pd.set_option('display.max_rows', None)
#读取Band1、Band2数据及QC数据
df_NDVI = df[['MCD43A4_061_Nadir_Reflectance_Band1','MCD43A4_061_BRDF_Albedo_Band_Mandatory_Quality_Band1','MCD43A4_061_Nadir_Reflectance_Band2','MCD43A4_061_BRDF_Albedo_Band_Mandatory_Quality_Band2']]
df_NDVI.rename(columns={'MCD43A4_061_Nadir_Reflectance_Band1':'Band_1','MCD43A4_061_BRDF_Albedo_Band_Mandatory_Quality_Band1':'QC_1','MCD43A4_061_Nadir_Reflectance_Band2':'Band_2','MCD43A4_061_BRDF_Albedo_Band_Mandatory_Quality_Band2':'QC_2'},inplace=True)
df_NDVI
Date        Band_1      QC_1 Band_2     QC_2
2010-01-27	0.0270	    1	 0.3363	    1
2010-01-28	0.0269	    1	 0.3369	    1
2010-01-29	32767.0000	255	 32767.0000	255
2010-01-30	32767.0000	255	 32767.0000	255
2010-01-31	32767.0000	255	 32767.0000	255
2010-02-01	32767.0000	255	 32767.0000	255

根据QC_1控制Band_1,根据QC_2控制Band_2。切片处理

#根据QC数据进行筛选 
df_NDVI.loc[(df_NDVI["QC_1"]==255),"Band_1"] = df_NDVI.loc[(df_NDVI["QC_1"]==255),"Band_1"].apply(lambda x:np.NaN)
df_NDVI.loc[(df_NDVI["QC_2"]==255),"Band_2"] = df_NDVI.loc[(df_NDVI["QC_2"]==255),"Band_2"].apply(lambda x:np.NaN)
df_NDVI
Date        Band_1      QC_1 Band_2     QC_2
2010-01-27	0.0270	    1	 0.3363	    1
2010-01-28	0.0269	    1	 0.3369	    1
2010-01-29	NaN	        255  NaN	    255
2010-01-30	NaN	        255	 NaN	    255
2010-01-31	NaN	        255	 NaN	    255
2010-02-01	NaN	        255	 NaN	    255

记录学习,有什么错误,请多指正!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值