Open utterances-bot opened 1 year ago
Hi Darius, thank you for this useful information! Two questions: 1) I loaded the dataset VIS006 with calibration="reflectance", and I noticed that the values are very big (in my case, from 6 to 85). I expected to have something between 0 and 1. I need reflectance to compute some vegetation indices. Do you know if there is a scale factor?
2) Do you know if there are "surface reflectance products" for MSG? If not, how can we perform atmospheric correction to SEVIRI-MSG15 images? Thank and ciao Manuel
Hi Manuel, thanks for your interest!
concerning 1: Could you please somehow share the file you are using? Normally, satpy should be able to calibrate to reflectance values automatically.
concerning 2: I am not aware of any MSG surface reflectance data product. The sensor's data is mainly used in the atmospheric sciences. For example, some of its channels lie within the water vapor windows of the solar spectrum, thus they will not even receive any signal from the surface. What application do you have in mind and do you have any references in the literature for it using MSG or other geostationary satellites?
thank you Darius! here is the link with the NAT and the output Geotiff file: https://we.tl/t-ufnlY6XlOj
I selected the followings: calibration = "reflectance" dataset = "VIS006" llx = -18. # lower left x coordinate in degrees lly = 10. # lower left y coordinate in degrees urx = 40. # upper right x coordinate in degrees ury = 20. # upper right y coordinate in degrees resolution = 0.03 # target resolution in degrees (3000 meters)
Concerning 2) I just wondering if we can monitor land and to compute some soil/vegetation indices as usually done for LEO images (e.g. Sentinel-2).
ciao Manuel
I believe satpy
converts to reflectance values in the 0 to 100 range. That means that the reflectance in your crop is between 6 and 85%. You can of course use xarray
syntax to convert to the 0/1 range:
from satpy import Scene
import numpy as np
file = "MSG2-SEVI-MSG15-0100-NA-20200115111244.253000000Z-NA.nat"
reader = "seviri_l1b_native"
scn = Scene(filenames = {reader:[file]})
scn.load(["VIS006"], calibration="reflectance")
scn["VIS006"] = scn["VIS006"] / 100
np.nanmax(scn["VIS006"].values)
thank you for the clarification
Darius A. Görgen - Translating EUMETSAT’s .nat files to GTiff
Python code to translate EUMETSAT’s .nat datasets to GTiffs.
https://www.dariusgoergen.com/contents/blog/2020-06-14-nat2tif/