You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2007 - Following the recommendation from a colleague (Andy French), I decided to make Python my language of choice for routine scripting and workflow development. Looking back, I feel I was ahead of the general trend of researchers rapidly adopting Python and R over the next decade, and it was one of the best decisions of my early career. I set about learning to use Python as my first language of choice for any coding activities.
2013ish - I had a working Python script for daily ASCE standardized reference evapotranspiration. I was actually focused on getting standardized reference ET into the DSSAT crop model in Fortran, but it was easier to code the algorithm and test for accuracy in Python before translation to Fortran. This led to my 2014 CROPGRO-Cotton paper: doi:10.13031/trans.57.10612
2015 - This was my first year as Lead Scientist for the USDA-ARS irrigation management project at Maricopa, Arizona. Among other things, this meant I had responsibility to lead and manage the precision irrigation field program under a newly acquired lateral move irrigation system, with focus on cotton. Like many other locations, we had an Excel spreadsheet with FAO-56 equations embedded. Ours was developed by Doug Hunsaker more than a decade prior. We conducted a field trial that compared the Excel spreadsheet and the DSSAT CROPGRO-Cotton model for in-season cotton irrigation scheduling: doi:10.13031/trans.12323. As I was using the Excel spreadsheet to guide irrigation decisions, I began thinking on how to pull the equations out of the spreadsheet and organize them in a Python script. I have an “FAO56v1.py” file that is dated 1/7/2016.
2016-2018 - During this time, my primary focus was to perform in-season cotton irrigation scheduling using the DSSAT CROPGRO-Cotton model with the standardized reference ET algorithm and dual crop coefficient methodology as implemented by Kendall DeJonge and myself: doi:10.13031/trans.12321. Meanwhile, other efforts with the cotton breeding group at Maricopa provided an opportunity to evaluate my new Python-based FAO56 water balance model for estimation of cotton water use. This resulted in a paper that used an early version of pyfao56, along with integration of crop cover estimates from drone images, to update Kcb and estimate cotton water use at the scale of small breeding plots: doi:10.3390/rs10111682
2019-2020 – This was the first time using an early version of pyfao56 to schedule in-season irrigation for my cotton field trial at Maricopa. The goal of the study was to contrast different use cases of the model and determine how it impacted agronomic outcomes like yield, irrigation requirements, and water productivity. A main finding was that drone-based updating of Kcb alone was insufficient for guiding the model to improved recommendations. Additional data for updating Ks, Dr, or Zr would likely have been beneficial: doi:10.13031/ja.14950
2021ish - I recognized that nobody had yet released a full FAO56 Python package (surprisingly). I had the meat of code already written and field-tested. I reorganized the code to generalize the design and follow object-oriented coding principles. I also spent some weeks learning how to make the code follow basic Python coding standards, and I released the package to several open-source repositories: PyPI, Github, and conda-forge. By then, I’d also learned about SoftwareX journal and saw it as an outlet to get publication credit for some of the codes I’d written, FAO56 and otherwise: doi:10.1016/j.softx.2022.101208
2021-2022 - I conducted additional cotton field trials with focus on integration of soil water content data with not only pyfao56 but also DSSAT CROPGRO-Cotton and AquaCrop. The results demonstrated the value of soil water content data to improve recommendations from soil water balance models: doi:10.13031/ja.15591
2022-present - After release of pyfao56, interest in the tool as grown rapidly. My focus has now shifted to further generalizing the tool, incorporating functionality required by others, and establishing an open-source development community around the project. Data assimilation efforts remain a personal interest as well as keeping the tool up-to-date with any future FAO56 revisions. It was 10+ years of effort (off and on) to bring the package to first release, including many years of field testing. As others have used the tool and provided revisions based on their nuanced implementations of FAO56, the utility of the tool has improved greatly. SoftwareX provides a nice system to formally report on updates to the package, and three update papers have been published to date: doi:10.1016/j.softx.2023.101336 doi:10.1016/j.softx.2023.101518 doi:10.1016/j.softx.2024.101724
Obviously, I am not the original developer of FAO56, and many other scientists deserve the credit for developing the standardized methods for evapotranspiration calculation. In my opinion, the novelty of pyfao56 has less to do with FAO56 per se and more to do with understanding the modern programming paradigm, use of git/Github for version control, and release of code to open-source repositories. My aim has been to use my knowledge of the latter to bring the science embodied in FAO56 to a new generation of evapotranspiration researchers.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Here's some history on how we got here:
2007 - Following the recommendation from a colleague (Andy French), I decided to make Python my language of choice for routine scripting and workflow development. Looking back, I feel I was ahead of the general trend of researchers rapidly adopting Python and R over the next decade, and it was one of the best decisions of my early career. I set about learning to use Python as my first language of choice for any coding activities.
2013ish - I had a working Python script for daily ASCE standardized reference evapotranspiration. I was actually focused on getting standardized reference ET into the DSSAT crop model in Fortran, but it was easier to code the algorithm and test for accuracy in Python before translation to Fortran. This led to my 2014 CROPGRO-Cotton paper: doi:10.13031/trans.57.10612
2015 - This was my first year as Lead Scientist for the USDA-ARS irrigation management project at Maricopa, Arizona. Among other things, this meant I had responsibility to lead and manage the precision irrigation field program under a newly acquired lateral move irrigation system, with focus on cotton. Like many other locations, we had an Excel spreadsheet with FAO-56 equations embedded. Ours was developed by Doug Hunsaker more than a decade prior. We conducted a field trial that compared the Excel spreadsheet and the DSSAT CROPGRO-Cotton model for in-season cotton irrigation scheduling: doi:10.13031/trans.12323. As I was using the Excel spreadsheet to guide irrigation decisions, I began thinking on how to pull the equations out of the spreadsheet and organize them in a Python script. I have an “FAO56v1.py” file that is dated 1/7/2016.
2016-2018 - During this time, my primary focus was to perform in-season cotton irrigation scheduling using the DSSAT CROPGRO-Cotton model with the standardized reference ET algorithm and dual crop coefficient methodology as implemented by Kendall DeJonge and myself: doi:10.13031/trans.12321. Meanwhile, other efforts with the cotton breeding group at Maricopa provided an opportunity to evaluate my new Python-based FAO56 water balance model for estimation of cotton water use. This resulted in a paper that used an early version of pyfao56, along with integration of crop cover estimates from drone images, to update Kcb and estimate cotton water use at the scale of small breeding plots: doi:10.3390/rs10111682
2019-2020 – This was the first time using an early version of pyfao56 to schedule in-season irrigation for my cotton field trial at Maricopa. The goal of the study was to contrast different use cases of the model and determine how it impacted agronomic outcomes like yield, irrigation requirements, and water productivity. A main finding was that drone-based updating of Kcb alone was insufficient for guiding the model to improved recommendations. Additional data for updating Ks, Dr, or Zr would likely have been beneficial: doi:10.13031/ja.14950
2021ish - I recognized that nobody had yet released a full FAO56 Python package (surprisingly). I had the meat of code already written and field-tested. I reorganized the code to generalize the design and follow object-oriented coding principles. I also spent some weeks learning how to make the code follow basic Python coding standards, and I released the package to several open-source repositories: PyPI, Github, and conda-forge. By then, I’d also learned about SoftwareX journal and saw it as an outlet to get publication credit for some of the codes I’d written, FAO56 and otherwise: doi:10.1016/j.softx.2022.101208
2021-2022 - I conducted additional cotton field trials with focus on integration of soil water content data with not only pyfao56 but also DSSAT CROPGRO-Cotton and AquaCrop. The results demonstrated the value of soil water content data to improve recommendations from soil water balance models: doi:10.13031/ja.15591
2022-present - After release of pyfao56, interest in the tool as grown rapidly. My focus has now shifted to further generalizing the tool, incorporating functionality required by others, and establishing an open-source development community around the project. Data assimilation efforts remain a personal interest as well as keeping the tool up-to-date with any future FAO56 revisions. It was 10+ years of effort (off and on) to bring the package to first release, including many years of field testing. As others have used the tool and provided revisions based on their nuanced implementations of FAO56, the utility of the tool has improved greatly. SoftwareX provides a nice system to formally report on updates to the package, and three update papers have been published to date:
doi:10.1016/j.softx.2023.101336
doi:10.1016/j.softx.2023.101518
doi:10.1016/j.softx.2024.101724
Obviously, I am not the original developer of FAO56, and many other scientists deserve the credit for developing the standardized methods for evapotranspiration calculation. In my opinion, the novelty of pyfao56 has less to do with FAO56 per se and more to do with understanding the modern programming paradigm, use of git/Github for version control, and release of code to open-source repositories. My aim has been to use my knowledge of the latter to bring the science embodied in FAO56 to a new generation of evapotranspiration researchers.
Beta Was this translation helpful? Give feedback.
All reactions