Process to generate input files Weather.csv, Evaporation.csv, and Radiation.csv for i-Tree Research Suite
0. Note, all steps can be completed using WeatherPrep_GUI.exe or WeatherPrep_GUI.py, Advanced XML Configuration active
1. Build the WeatherPrep.sln in VisualStudio** in Release mode
2. Run the program by giving the path to inputs at the command prompt 
2a. C:\iTree\WeatherPrep\WeatherPrep\WeatherPrep\bin\Release>WeatherPrep.exe C:\iTree\WeatherPrep\TestCase
3. WeatherPrepConfig.xml is hard coded as the input file within ReadInputXML.cs
4. WeatherPrepConfig.xml contains the following information:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Program generates output of: Weather.csv, Evaporation.csv, and Radiation.csv -->
<InputList>
  <Input>
    <Model>Hydro</Model><!-- Options: Hydro|Energy|Hydro8; Hydro8=8 weather outputs; Hydro=Hydro8+AtmPressure; Energy=Hydro+WindDirection-->
    <Nation>United States of America</Nation> <!-- Confirm name here: https://database.itreetools.org/#/locationSearch -->
    <State>New York</State> <!-- Confirm name here: https://database.itreetools.org/#/locationSearch -->
    <County>Onondaga</County> <!-- Confirm name here: https://database.itreetools.org/#/locationSearch -->
    <Place>Syracuse</Place> <!-- Confirm name here: https://database.itreetools.org/#/locationSearch -->
    <MaximumLAI>5</MaximumLAI> <!-- Leaf Area Index maximum; affects canopy resistance; units m^2/m^2-->
    <EvergreenPercent>5</EvergreenPercent> <!-- Tree cover that is evergreen; affects evaporation during leaf of period; units percent -->
    <VegetationType>Tree</VegetationType> <!-- Options: Tree, Shrub, or Grass; affects canopy interception for i-Tree Eco -->
    <Height_Tree_m>12</Height_Tree_m> <!-- Average height of tree canopy top in area; affects canopy resistance; units m -->
    <Height_WindSensor_m>10</Height_WindSensor_m> <!-- Height of wind sensor for weather station; 10 is standard; units m-->
    <StartYear>2019</StartYear> <!-- Year of starting data in SurfaceWeatherDataFile; format YYYY -->
    <EndYear>2019</EndYear> <!-- Year of ending data in SurfaceWeatherDataFile; format YYYY  -->
    <SurfaceWeatherDataFile>C:\iTree\WeatherPrep\TestCases\NewYork_Syracuse_Precip\725190-14771-2019_out.txt</SurfaceWeatherDataFile> <!-- NOAA raw data, ISH -->
    <PrecipitationDataCsv></PrecipitationDataCsv> <!-- Optional CSV file to replace SurfaceWeatherDataFile values. Column 1 = date (YYYYMMDD), Column 2 = time (HH:MM:SS), Column 3 = precipitation (m/h) -->
  </Input>
</InputList>

5. Model is the name of the i-Tree Research Suite model whose meteorological input files are being prepared.
5a. 'Hydro' refers to any of the models that use the HydroPlus unified C++ codebase: i-Tree Hydro GUI, i-Tree HydroPlus, i-Tree Cool Air, and i-Tree Cool River
5b. 'Energy' refers only to i-Tree Energy, a building energy balance model coded in Python
6. Location Country, State, County, City are specific names confirmed online at i-Tree Location Database https://database.itreetools.org/#/locationSearch
7. MaximumLAI, EvergreenPercent, VegetationType are values provided by user
8. Height_Tree_m and Height_WindSensor_m are values provided by user, but defaults are Height_Tree_m=12, Height_WindSensor_m=10. Changing Height_WindSensor_m may significantly alter evaporation estimates for open water. 
9. StartYear, EndYear are values corresponding to meteorological data in SurfaceWeatherDataFile
10. SurfaceWeatherDataFile is ISH-formatted NOAA raw meteorological data for the location's nearest WBAN coded meteorological station. The folder NOAA_data_tool stored with this .sln has the procedure for generating this file.
11 PrecipitationDataCsv as .csv is optional to replace values in SurfaceWeatherDataFile (NOAA data often do not report), Column 1 = date (YYYYMMDD), Column 2 = time (HH:MM:SS), Column 3 = precipitation (m/h). 
12. Output generated is Weather.csv, Evaporation.csv, and Radiation.csv for i-Tree Research Suite

**For developers looking to edit or update the WeatherPrep code: the packages "RestSharp" and "RestSharp.Serializers.NewtonsoftJson" cannot currently be updated beyond version 106.12. More recent updates are missing the needed RestSharp.RestClient.ClearHandlers function.