TimHessels / SEBAL

The Surface Energy Balance Algorithm for Land
Apache License 2.0
27 stars 28 forks source link

Some confusion #9

Open XiaoJuninWHU opened 2 years ago

XiaoJuninWHU commented 2 years ago

The equation of the Advection Factor was not found in the literature. AF = 1+0.985EFexp[0.08*VPD-3] Could you please share with me the relevant literature about the advection factor? Thanks a lot.

2019102060072@whu.edu.cn

TimHessels commented 2 years ago

Tu, Q., Cheng, C., & Qin, P. (2020). Parameterization of the Surface Energy Balance of a Shallow Water Table Grassland. Water, 12(2), 523.

XiaoJuninWHU commented 2 years ago

Thanks a lot.

从 Windows 版邮件发送

发件人: Tim Hessels 发送时间: 2022年3月24日 14:58 收件人: TimHessels/SEBAL 抄送: XiaoJuninWHU; Author 主题: Re: [TimHessels/SEBAL] Some confusion (Issue #9)

Tu, Q., Cheng, C., & Qin, P. (2020). Parameterization of the Surface Energy Balance of a Shallow Water Table Grassland. Water, 12(2), 523. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

Lneeeeeeeee commented 1 year ago

There is no introduction about the soil input in the document at PySEBAL_doc (https://pysebal-doc.readthedocs.io/en/install/installation.html). I would like to ask whether the data in this part is instantaneous or mean. Is there any way to obtain these parameters that can be recommended?What are the input parameters associated with the output variables?

TimHessels commented 1 year ago

The soil input is static data. It will not differ much. Those parameters can be obtained using field measurements, or if the ground type is known, an estimation can be made based on literature. The data resources depends on the area, for example in the USA the SSURGO map can be used. Those inputs are mainly used for the estimation of the soil moisture.

Lneeeeeeeee commented 1 year ago

OK, thanks you very much. I just want to only obtain ET. So if I don't change these parameters will it not affect my final ETa or ETp?

TimHessels commented 1 year ago

Yes it will not be affected. So you can just use the default numbers as input.

Lneeeeeeeee commented 1 year ago

Thank you very much. About the calculation of es which in the document was different from the equation in FAO56. In PySEBAL_doc (https://pysebal-doc.readthedocs.io/en/install/installation.html) the equation was es=6.112exp((17.67T)/(t+243.15)), but it was es=0.6108exp((17.27T)/(T+237.3)) in FAO56,why? Or could you give me a literature about your calculation ?

TimHessels commented 1 year ago

Sorry, but I do not understand your question. Where did you find this equation: es=6.112exp((17.67T)/(t+243.15)). This is the Bolton (1980) equation for calculating the saturated vapor pressure. But I am using es=0.6108exp((17.27T)/(T+237.3)) the FAO 56 version. So I do not exactly understand which literature you want?

Lneeeeeeeee commented 1 year ago

I found this equation : es=6.112exp((17.67T)/(t+243.15)) in PySEBAL_doc (https://pysebal-doc.readthedocs.io/en/install/installation.html) at PySEBAL data requirements part.

TimHessels commented 1 year ago

Ok, maybe it is good to ask the one who created that document. Because I am not aware of this document and it has no connection with the pySEBAL of this Github page. Required meteo input for the pySEBAL model are: Wind, relative humidity, temperature and solar radiation. You can just select your method how to get those datasets. Therefor feel free to use the Bolton equation or the FAO equation is also fine. One note is that the vapor pressure is not a required input for the pySEBAL model.

Lneeeeeeeee commented 1 year ago

Ok, thank you very much for helping me with your code.

Lneeeeeeeee commented 1 year ago

Can you tell me the difference between Rs_24 and Transm_24, and the difference between Rs_in_inst_cloud_free with Transm_inst_cloud_free which in the excel? Thank you very much.

TimHessels commented 1 year ago

The total available solar energy can be determined in two ways. One is with the transmissivity or directly with the incoming solar radiation at ground level. The _24 is the daily input, the _inst is the instantaneous input at the moment of satellite overpass. Only one of both parameters (trans and Rs) needs to be defined.

Lneeeeeeeee commented 1 year ago

Can you tell me the means of "zx“ in the "Meteo_Input" sheet and how to change it with different type (Landsat 8/7/5)? Thank you!

TimHessels commented 1 year ago

The zx is the measurement height of the meteo inputs in meters. This does not depend on different Landsat versions.

Lneeeeeeeee commented 1 year ago

Ok, thank you very much. I successfully ran landsat 8, but there were some errors when running landsat 5 and 7.(I already changed landsat number and bands thermal and other data in excel, but still can't run it.). I don't know why always occur error. Could you give me some advice on this question?

TimHessels commented 1 year ago

Can you type the error here and maybe share the input excel file?

Lneeeeeeeee commented 1 year ago

124034_2011.xlsx This is the excel.

TimHessels commented 1 year ago

Thank you! Can you also send me the log.txt file (located in the output main directory)?

Lneeeeeeeee commented 1 year ago

Landsat7.xlsx log.txt These are landsat7 excel and log.txt file. The last file was about landsat5 and the error was the starting line num:2, SEBAL did not run line 2 fully. There was no log file about landsat 5.

TimHessels commented 1 year ago

Just to check. Do you have this directory: H:\Landsat\LE7\LC07_124_34_2012\LE07_L1TP_124034_20120202_20161204_01_T1

And within this directory do you have this file: LE07_L1TP_124034_20120202_20161204_01_T1_MTL.txt

If yes, can you send this file to me?

Lneeeeeeeee commented 1 year ago

LE07_L1TP_124034_20120202_20161204_01_T1_MTL.txt Yes, I have this directory and this is the file.

TimHessels commented 1 year ago

I see that you are running version 3.3.7.1. Which is a version of some years ago. Can you update your code by taking the version from the current main branch? This is version 3.4.4.

Lneeeeeeeee commented 1 year ago

OK. I will try to update my code and run it again. Thank you again!

Lneeeeeeeee commented 1 year ago

I had updated the version 3.4. But when l run it, the error is "ERROR 4: None: No such file or directory". The screenshot is about the directory of output. And the file was log.txt file. Besides, could you tell me how to determine the number of "Hot_Pixel_Constant_Landsat" and "Cold_Pixel_Constant_Landsat" in the Landsat_input sheet? Should I fill in the contents of the USER_Input sheet? Thanks. log.txt screenshot

TimHessels commented 1 year ago

Attached the latest manual. Which is a bit outdated, but in general it is still OK. pySEBAL v3.4 User Manual.pdf

The only big difference at the moment is that the hot and cold pixel values default are 0 and 0.2 for the cold and hot pixel respectively (these are one of the values that needs to be filled in within the input Excel file).

Lneeeeeeeee commented 1 year ago

Excel_SEBAL_v3_4_4.xlsx This the Excel which I run just now, but it still had the "ERROR 4: None: No such file or directory".

Lneeeeeeeee commented 1 year ago

And the latest manual didn't have the information about the sheet of USER_Input and Additional_Input.

TimHessels commented 1 year ago

Can you change the hot and cold pixel constant values to 0 and 0.2 and run again? now they are defined as 1 and 2 which is too high for this version.

As mentioned this manual is a bit older, so not everything is included. But the User and additional_inputs sheets are very straight forward. If you fill in one of those parameters, the parameter of the LS image will be replaced by this tiff file.

Lneeeeeeeee commented 1 year ago

I have changed the hot and cold pixel, but it still have the same error...

TimHessels commented 1 year ago

Can you send me the log.txt?

Lneeeeeeeee commented 1 year ago

Sure. log.txt

TimHessels commented 1 year ago

I think that the run was OK. You can ignore the Error: One of the Inputs is not Correct. It is based on an input that is not necessary for running the model.

Lneeeeeeeee commented 1 year ago

OK. Thank you very much.

Lneeeeeeeee commented 1 year ago

I have some problems again. The value of ET was zero when I run the image of Landsat 5 which most in the days was cold. And I don't know how to adjust it to change the result, could you give me some advice, thank you very much.

TimHessels commented 1 year ago

Hi, can you attach the log.txt file of one of the LS5 runs?

Lneeeeeeeee commented 1 year ago

log.txt Of course!

TimHessels commented 1 year ago

Your Instantaneous radiation is very low for this run. Can you check if this is right?

Lneeeeeeeee commented 1 year ago

The value was zero in field (the red part in picture), but was not zero at the rural area (the yellow part). And this is log.txt file. log.txt image

TimHessels commented 1 year ago

I do not see very weird inputs, so overall the inputs looks fine. The only test that you can do is to lower the humidity which is now almost 100%. Can you do a re-run with humidity of 60%? Just to see if this improve the results. If so, a real run can be done by using a bit lower humidity (around 90% for example).

Lneeeeeeeee commented 1 year ago

There is something wrong with the humidity. Could you share me the literature about the calculation of RH in your CalcHumidityGLDASdata.py file?

TimHessels commented 1 year ago

It can be that the estimation of the vapor pressure is not working for your area (1.6077717HdataPdata). I think you are only referring to this part. This is an approximation, but many other formula's can be found. Maybe another works better for your area.

Lneeeeeeeee commented 1 year ago

OK. Thank you very much, I will try others formulas to calculate RH in my area.

TimHessels commented 1 year ago

I see that the air pressure needs to be in mbar. The example is wrong (it uses Kpa). So this value needs to be multiplied by 10.

Lneeeeeeeee commented 1 year ago

But in fact, it still has something wrong. Maybe this formula is not appropriate in my area.

TimHessels commented 1 year ago

Ah the input is Kpa (sorry), because I also calculate the saturated vapor pressure in Kpa. Yes maybe you need to change the constant. Now the dry air constant of 0.622 is used, so maybe this needs to be adjusted a bit. Here you find some background: http://pressbooks-dev.oer.hawaii.edu/atmo/chapter/chapter-4-water-vapor/ .

Lneeeeeeeee commented 1 year ago

I will check it again. Thanks.

Lneeeeeeeee commented 1 year ago

I have solved the above problem with your help. I think the code you wrote is great. So, I want to refer your code and select the SEBAL model to calculate ET by UAV image. In your code, I don't know how to select the hot and cold pixels. May be you select the cold pixels with the low Ts (top10%)and high NDVI (top 10%) and select the hot pixels with high Ts (top 10%)and low NDVI (top 10%) ? If not, could you tell me how to select the hot and pixels in your code? Thanks again! image

TimHessels commented 1 year ago

Yes the bare and water pixels are defined using the NDVI (water pixels are negative, bare are between NDVIhot_low and NDVIhot_high). The average temperature of all those pixels are used as hot and cold pixel value.

Lneeeeeeeee commented 1 year ago

Hi, Tim Hessels, could you tell me how to calculate the constant of NDVIhot_low and NDVIhot_high in SEBAL model.