![](/img/trans.png)
[英]Smoothing online data on Python with savgol_filter from scipy.signal library
[英]Plot Smoothing Savgol filter in Modis NETCDF in python
是否可以在 MODIS 的 NETCDF 文件中插入 savgol 過濾器並在 python 中繪制空間平滑?
這是我的示例代碼
import matplotlib.pyplot as plt
import xarray as xr
import pandas as pd
import numpy as np
# open Netcdf file
ds = xr.open_dataset('MOD16A2.006_500m_aid20001.nc')
# show information in xarray dataset
ds
<xarray.Dataset>
Dimensions: (lat: 2567, lon: 2739, time: 45)
Coordinates:
* time (time) object 2001-01-01 00:00:00 ... 2001-12-27 00:00:00
* lat (lat) float64 -7.348 -7.352 -7.356 ... -18.03 -18.04 -18.04
* lon (lon) float64 -61.64 -61.63 -61.63 ... -50.24 -50.23 -50.23
Data variables:
crs int8 ...
ET_500m (time, lat, lon) float32 ...
ET_QC_500m (time, lat, lon) float32 ...
Attributes:
title: MOD16A2.006 for aid0001
Conventions: CF-1.6
institution: Land Processes Distributed Active Archive Center (LP DAAC)
source: AppEEARS v2.36
references: See README.txt
history: See README.txt
# Get Variables
lat = ds.lat
lon = ds.lon
time = ds.time
data = ds.ET_500m[0,:,:]
units = ds.ET_500m[:,:,:].units
# Plot image
data.plot.imshow(cmap='viridis_r', figsize=(10,8))
由於雲量對像素質量造成的噪聲影響,我需要應用空間平滑方法來提高從 MODIS 導出的數據質量
我認為 savgol 過濾器適合這種情況,但我不知道如何在空間上使用它。 我可能有另一種平滑的方法,但我不知道。
是的,有可能,請下次提供一個有效的代碼示例。 我建議在 python 中使用 netCDF4 或 xarray,獲取數據,並使用以下文檔中的 2d Savgol 過濾器:
https://scipy.github.io/old-wiki/pages/Cookbook/SavitzkyGolay
這將執行平滑,然后導出 netCDF 文件中的數據,您應該一切順利。
此外,您還可以將 xarray 與 cartopy 結合使用來繪制數據:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.