diff --git a/.gitignore b/.gitignore index fb04d8090..87cc9b051 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,22 @@ doxy.tag *.user *.user* +# LaTeX build artifacts +*.aux +*.fdb_latexmk +*.fls +*.log +*.synctex.gz +*.toc +*.out +*.bbl +*.blg +*.lof +*.lot +*.nav +*.snm +*.vrb + # OpenFOAM *.dep diff --git a/doc/CLI_instructions.pdf b/doc/CLI_instructions.pdf deleted file mode 100644 index 146f2c61e..000000000 Binary files a/doc/CLI_instructions.pdf and /dev/null differ diff --git a/doc/download_elevation_file.pdf b/doc/download_elevation_file.pdf deleted file mode 100644 index e5864ed42..000000000 Binary files a/doc/download_elevation_file.pdf and /dev/null differ diff --git a/doc/download_elevation_file.tex b/doc/download_elevation_file.tex deleted file mode 100644 index ca1ac362c..000000000 --- a/doc/download_elevation_file.tex +++ /dev/null @@ -1,114 +0,0 @@ -%/***************************************************************************** -% * Download Elevation File -%/***************************************************************************** - -\documentclass[12pt]{article} -\usepackage{float} -\usepackage{graphicx} -\usepackage[margin=1in]{geometry} - -\graphicspath{{images/}} - -\usepackage[utf8]{inputenc} -\usepackage[english]{babel} -\usepackage[parfill]{parskip} -\usepackage{datetime} -\usepackage{hyperref} -\hypersetup{ - colorlinks=true, - urlcolor=blue, - } -\urlstyle{same} -\usepackage{subcaption} -\usepackage{dirtytalk} -\usepackage{multirow} -\usepackage{booktabs} - - -\usepackage{fancyhdr} -\pagestyle{fancy} -\fancyhf{} -\rhead{How to download an elevation file using WindNinja} -\cfoot{\thepage} - -\newcommand\vn{3.6.0} - -\begin{document} -\begin{titlepage} - \centering - {\Huge - How to download an elevation file using WindNinja - } - \vfill - \includegraphics[scale=0.75]{dem_download_0} - \vfill - {\Huge - 6/30/2023 %Date Last Edited - } - \vfill -\end{titlepage} - - -\section*{Introduction} -This document describes the functionality built into WindNinja to download -elevation files for wind modeling. We call this utility the “elevation file -grabber”. It allows you to use a custom \textcopyright Mapbox \textcopyright OpenStreetMap interface to zoom into -and select a desired area for wind modeling. The elevation data for this area -is downloaded by WindNinja from a USGS server and saved to a file on your -computer. There is also a command line version of the elevation file grabber -that is described \href{https://weather.firelab.org/windninja/tutorials/fetch_dem_instructions.pdf}{here}. The specific -options available and work flow are described below. - -To open the elevation file grabber window, start WindNinja and click \textit{Surface Input} in the navigation tree at the top of WindNinja, then click the \textit{Download File} button as shown below. - -\begin{figure}[H] - \centering - \label{} - \includegraphics[scale=0.75]{main_window_0} -\end{figure} -\newpage - -The \textit{Download Elevation File} graphics window will open. This graphics window is an interactive mapping display used to navigate into the desired wind simulation area. There are a couple of ways to pan and zoom the map. Using a mouse, you can pan with the left button and zoom using a mouse scroll wheel. The keyboard can also be used to pan (arrow keys) and zoom (plus and minus keys). - -\begin{figure}[H] - \centering - \label{} - \includegraphics[scale=0.75]{dem_download_1} -\end{figure} - -\subsection*{Defining Your Simulation Area} - -There are three ways to define the area you want to download. -\begin{enumerate} -\item Click the \textit{Draw bounding box} button in the upper right corner of the graphics window. Draw a box on the map bounding the area that you want to simulate. A transparent blue box will be drawn in the graphics window showing the area you've defined. -\item Use the \textit{Point and Radius} method. Enter a latitude and longitude in decimal degrees specifying the center of the domain and a radius in miles specifying the distance from the center of the domain to the bounding box edge. -\item Specify the \textit{Bounding Box Coordinates} directly by entering the north and south latitudes and the east and west longitudes in decimal degrees that define your bounding box. -\end{enumerate} -The bounding box coordinates will be displyed in the \textit{Bounding Box Coordinates} text boxes at the bottom of the graphics window once a bounding box has been defined by any method. These coordinates can be edited to change the size of the bounding box. The blue box on the map will update when the \textit{Bounding Box Coordinates} are edited. If a bounding box has been already defined, clicking on the \textit{Draw bounding box} button will delete it. - -\subsection*{Elevation Data Source} - -There are 3 possible on-line data sets to download elevation data from. These are listed in the \textit{Data Source} drop-down box at the top left of the graphics window. The main difference between these data sets is the spatial resolution and extent. The table below briefly describes these differences. You should be sure to choose a data set that covers your simulation area. - -\begin{center} - \begin{tabular}{| l | l | p{1.75in} | p{1.8in} |} - \hline - Data set name & Resolution & Spatial Extent & Description \\ \hline - - WORLD SRTM & 30 meters & Between approximately -60 and +60 latitude & - Data from the Shuttle Radar Tomography Mission (SRTM) \\ \hline - - WORLD GMTED & 250 meters & Between approximately -60 and +85 latitude & - Global Multi-resolution Terrain Elevation Data 2010 (GMTED 2010) \\ \hline - - Landscape (LCP) & 30 meters & Contiguous US, Hawaii, PR, Southern Alaska & - FARSITE Landscape files including vegetation information \\ \hline -\end{tabular} -\end{center} - - -\section*{Download The File} -Once you have defined your download area and selected the elevation data source, click the \textit{Download File} button at the top left of the graphics window to download the elevation file. A window will open to allow you to specify a file name and location. The downloaded file will be a GeoTIFF file (*.tif) in best fit UTM projection using WGS84. After the file is successfully downloaded, you can close the Download elevation file window and the downloaded file will be automatically loaded into the main WindNinja window. - - -\end{document} diff --git a/doc/images/dem_download_0.png b/doc/images/dem_download_0.png deleted file mode 100644 index fd2add357..000000000 Binary files a/doc/images/dem_download_0.png and /dev/null differ diff --git a/doc/images/dem_download_1.png b/doc/images/dem_download_1.png deleted file mode 100644 index f6826c7cf..000000000 Binary files a/doc/images/dem_download_1.png and /dev/null differ diff --git a/doc/images/main_window_0.png b/doc/images/main_window_0.png deleted file mode 100644 index eee5500ac..000000000 Binary files a/doc/images/main_window_0.png and /dev/null differ diff --git a/doc/tutorials/CLI_instructions/CLI_instructions.pdf b/doc/tutorials/CLI_instructions/CLI_instructions.pdf new file mode 100644 index 000000000..41707f542 Binary files /dev/null and b/doc/tutorials/CLI_instructions/CLI_instructions.pdf differ diff --git a/doc/CLI_instructions.tex b/doc/tutorials/CLI_instructions/CLI_instructions.tex similarity index 99% rename from doc/CLI_instructions.tex rename to doc/tutorials/CLI_instructions/CLI_instructions.tex index 1d9265390..4ca5aaa09 100644 --- a/doc/CLI_instructions.tex +++ b/doc/tutorials/CLI_instructions/CLI_instructions.tex @@ -40,7 +40,7 @@ Instructions for using WindNinja's command line interface (CLI) } \vfill - \includegraphics[scale=0.75]{cli-0} + \includegraphics[scale=0.75]{images/cli-0.png} \vfill {\Huge 12/13/2023 %Date Last Edited @@ -79,7 +79,7 @@ \section*{Available Options} \begin{figure}[H] \centering \label{} - \includegraphics[scale=0.6]{cli-1} + \includegraphics[scale=0.6]{images/cli-1.png} \end{figure} Options can be used in any order. Each option has an associated value that can be a string, integer, or float value depending on the option. Some of the options have a default value that is used if the option is not specified. The default value is shown in parenthesis (for example, the \texttt{--num\_threads} option shown above is defaulted to 1 thread). diff --git a/doc/images/cli-0.png b/doc/tutorials/CLI_instructions/images/cli-0.png similarity index 100% rename from doc/images/cli-0.png rename to doc/tutorials/CLI_instructions/images/cli-0.png diff --git a/doc/images/cli-1.png b/doc/tutorials/CLI_instructions/images/cli-1.png similarity index 100% rename from doc/images/cli-1.png rename to doc/tutorials/CLI_instructions/images/cli-1.png diff --git a/doc/displaying_wind_vectors_in_ArcGIS_Pro.pdf b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/displaying_wind_vectors_in_ArcGIS_Pro.pdf similarity index 58% rename from doc/displaying_wind_vectors_in_ArcGIS_Pro.pdf rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/displaying_wind_vectors_in_ArcGIS_Pro.pdf index 8268514ed..3e55c1093 100644 Binary files a/doc/displaying_wind_vectors_in_ArcGIS_Pro.pdf and b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/displaying_wind_vectors_in_ArcGIS_Pro.pdf differ diff --git a/doc/displaying_wind_vectors_in_ArcGIS_Pro.tex b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/displaying_wind_vectors_in_ArcGIS_Pro.tex similarity index 93% rename from doc/displaying_wind_vectors_in_ArcGIS_Pro.tex rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/displaying_wind_vectors_in_ArcGIS_Pro.tex index d2537abc8..c426ef5b3 100644 --- a/doc/displaying_wind_vectors_in_ArcGIS_Pro.tex +++ b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/displaying_wind_vectors_in_ArcGIS_Pro.tex @@ -56,7 +56,7 @@ Chuck McHugh\\ RMRS, Fire Sciences Lab, Missoula, MT, 406-829-6953, \href{mailto:cmchugh@fs.fed.us}{cmchugh@fs.fed.us} } \vfill - \includegraphics[scale=0.45] {arc_00.png} + \includegraphics[scale=0.45]{images/arc_00.png} \vfill {\Large 02/10/2025 %Date Last Edited @@ -70,7 +70,7 @@ \section*{Displaying WindNinja-generated gridded wind vectors} \begin{figure}[H] \centering - \includegraphics[scale=0.9]{arc_1.png} + \includegraphics[scale=0.9]{images/arc_1.png} \caption{Attribute table for WindNinja-generated shapefile as displayed in ArcGIS Pro.} \label{fig:Figure1} \end{figure} @@ -92,7 +92,7 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.3]{arc_2.png} + \includegraphics[scale=0.3]{images/arc_2.png} \caption{Example ArcGIS Pro project with WindNinja-generated shapefile as displayed in ArcGIS Pro prior to scaling and rotation of the WindNinja-generated vectors.} \label{fig:Figure2} @@ -102,14 +102,14 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.3]{arc_3.png} + \includegraphics[scale=0.3]{images/arc_3.png} \caption{Layer Properties dialog box as displayed in ArcGIS Pro.} \label{fig:Figure3} \end{figure} \begin{figure}[H] \centering - \includegraphics[scale=0.8]{arc_4.png} + \includegraphics[scale=0.8]{images/arc_4.png} \caption{Symbology panel as displayed in ArcGIS Pro} \label{fig:Figure4} \end{figure} @@ -118,7 +118,7 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.28]{arc_5.png} + \includegraphics[scale=0.28]{images/arc_5.png} \caption{Selecting Graduated Symbols from Primary Symbology.} \label{fig:Figure5} \end{figure} @@ -127,7 +127,7 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.28]{arc_6.png} + \includegraphics[scale=0.28]{images/arc_6.png} \caption{Selecting speed from the Field drop down.} \label{fig:Figure6} \end{figure} @@ -136,7 +136,7 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.45]{arc_7.png} + \includegraphics[scale=0.45]{images/arc_7.png} \caption{Warning Caption} \label{fig:Figure7} \end{figure} @@ -145,14 +145,14 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.35]{arc_8.png} + \includegraphics[scale=0.35]{images/arc_8.png} \caption{Select the template symbol to access available symbol sets.} \label{fig:Figure8} \end{figure} \begin{figure}[H] \centering - \includegraphics[scale=0.5]{arc_9.png} + \includegraphics[scale=0.5]{images/arc_9.png} \caption{Symbol selector dialog box} \label{fig:Figure9} \end{figure} @@ -163,7 +163,7 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.48]{arc_10.png} + \includegraphics[scale=0.48]{images/arc_10.png} \caption{Selecting the Vary Symbology by Attribute and Rotation drop down.} \label{fig:Figure10} \end{figure} @@ -179,7 +179,7 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.3]{arc_12.png} + \includegraphics[scale=0.3]{images/arc_12.png} \caption{Color dialog box options.} \label{fig:Figure12} \end{figure} @@ -190,7 +190,7 @@ \subsection*{Steps:} \begin{figure}[H] \centering - \includegraphics[scale=0.35]{arc_13.png} + \includegraphics[scale=0.35]{images/arc_13.png} \caption{Rotated WindNinja vectors displayed in ArcGIS Pro.} \label{fig:Figure13} \end{figure} @@ -202,7 +202,7 @@ \section*{Query the Gridded Wind Output in ArcGIS Pro} \begin{figure}[H] \centering - \includegraphics[scale=0.4]{arc_14.png} + \includegraphics[scale=0.4]{images/arc_14.png} \caption{The shapefile overlayed on the ASCII grid. Queried results of the shapefile show the difference in values between wind direction (dir) and the rotation angle (AM\_dir). Query done after the shapefile has been rotated following previous steps.} \label{fig:Figure14} \end{figure} @@ -215,7 +215,7 @@ \section*{Query the Gridded Wind Output in ArcGIS Pro} \begin{figure}[H] \centering - \includegraphics[scale=0.4]{arc_15.png} + \includegraphics[scale=0.4]{images/arc_15.png} \caption{The shapefile overlayed on the ASCII grid. Queried results of the ASCII Grid show the connection between the values in the .asc files (vel and ang) and the values in the shapefile (speed and dir). } \label{fig:Figure15} \end{figure} @@ -237,7 +237,7 @@ \subsection*{How to Change the Number of Records Used In ArcGIS Pro when Display \begin{figure}[H] \centering - \includegraphics[scale=0.55]{arc_7.png} + \includegraphics[scale=0.55]{images/arc_7.png} \caption{Error message when the number of records in the WindNinja ArcGIS Pro shapefile exceeds the default settings.} \label{fig:Figure16} \end{figure} @@ -249,10 +249,10 @@ \subsection*{How to Change the Number of Records Used In ArcGIS Pro when Display \subfloat[Using default setting of 10,000 records]{ \label{subfig:s16} - \includegraphics[scale=0.3]{arc_16.png}}\\ + \includegraphics[scale=0.3]{images/arc_16.png}}\\ \subfloat[Setting Maximum Sample size so all records are used]{ \label{subfig:s17} - \includegraphics[scale=0.3]{arc_17.png}} + \includegraphics[scale=0.3]{images/arc_17.png}} \caption{Displayed ranges of wind speed values based on Maximum Sample Size. (\ref{subfig:s16}) Using default setting of 10,000 records and (\ref{subfig:s17}) Setting Maximum Sample size so all records are used} \label{fig:Figure17} \end{figure} @@ -263,7 +263,7 @@ \subsection*{How to Change the Number of Records Used In ArcGIS Pro when Display \begin{figure}[H] \centering - \includegraphics[scale=0.42]{arc_18.png} + \includegraphics[scale=0.42]{images/arc_18.png} \caption{Histogram with the statistics option selected as displayed in ArcGIS Pro.} \label{fig:Figure18} \end{figure} @@ -276,7 +276,7 @@ \subsection*{How to Change the Number of Records Used In ArcGIS Pro when Display \begin{figure}[H] \centering - \includegraphics[scale=0.45]{arc_19.png} + \includegraphics[scale=0.45]{images/arc_19.png} \caption{Input box for specifying the maximum sample size for the shapefile in ArcGIS Pro} \label{fig:Figure19} \end{figure} @@ -295,7 +295,7 @@ \subsection*{How to Change the Number of Records Used In ArcGIS Pro when Display \begin{figure}[H] \centering - \includegraphics[scale=0.45]{arc_20.png} + \includegraphics[scale=0.45]{images/arc_20.png} \caption{Attribute table for WindNinja-generated shapefile in ArcGIS Pro.} \label{fig:Figure20} \end{figure} diff --git a/doc/images/arc_00.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_00.png similarity index 100% rename from doc/images/arc_00.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_00.png diff --git a/doc/images/arc_1.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_1.png similarity index 100% rename from doc/images/arc_1.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_1.png diff --git a/doc/images/arc_10.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_10.png similarity index 100% rename from doc/images/arc_10.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_10.png diff --git a/doc/images/arc_11.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_11.png similarity index 100% rename from doc/images/arc_11.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_11.png diff --git a/doc/images/arc_12.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_12.png similarity index 100% rename from doc/images/arc_12.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_12.png diff --git a/doc/images/arc_13.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_13.png similarity index 100% rename from doc/images/arc_13.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_13.png diff --git a/doc/images/arc_14.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_14.png similarity index 100% rename from doc/images/arc_14.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_14.png diff --git a/doc/images/arc_15.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_15.png similarity index 100% rename from doc/images/arc_15.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_15.png diff --git a/doc/images/arc_16.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_16.png similarity index 100% rename from doc/images/arc_16.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_16.png diff --git a/doc/images/arc_17.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_17.png similarity index 100% rename from doc/images/arc_17.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_17.png diff --git a/doc/images/arc_18.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_18.png similarity index 100% rename from doc/images/arc_18.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_18.png diff --git a/doc/images/arc_19.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_19.png similarity index 100% rename from doc/images/arc_19.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_19.png diff --git a/doc/images/arc_2.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_2.png similarity index 100% rename from doc/images/arc_2.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_2.png diff --git a/doc/images/arc_20.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_20.png similarity index 100% rename from doc/images/arc_20.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_20.png diff --git a/doc/images/arc_3.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_3.png similarity index 100% rename from doc/images/arc_3.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_3.png diff --git a/doc/images/arc_4.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_4.png similarity index 100% rename from doc/images/arc_4.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_4.png diff --git a/doc/images/arc_5.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_5.png similarity index 100% rename from doc/images/arc_5.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_5.png diff --git a/doc/images/arc_6.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_6.png similarity index 100% rename from doc/images/arc_6.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_6.png diff --git a/doc/images/arc_7.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_7.png similarity index 100% rename from doc/images/arc_7.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_7.png diff --git a/doc/images/arc_8.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_8.png similarity index 100% rename from doc/images/arc_8.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_8.png diff --git a/doc/images/arc_9.png b/doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_9.png similarity index 100% rename from doc/images/arc_9.png rename to doc/tutorials/displaying_wind_vectors_in_ArcGIS_Pro/images/arc_9.png diff --git a/doc/tutorials/download_elevation_file/download_elevation_file.pdf b/doc/tutorials/download_elevation_file/download_elevation_file.pdf new file mode 100644 index 000000000..c2cd10d34 Binary files /dev/null and b/doc/tutorials/download_elevation_file/download_elevation_file.pdf differ diff --git a/doc/tutorials/download_elevation_file/download_elevation_file.tex b/doc/tutorials/download_elevation_file/download_elevation_file.tex new file mode 100644 index 000000000..792b118f9 --- /dev/null +++ b/doc/tutorials/download_elevation_file/download_elevation_file.tex @@ -0,0 +1,127 @@ +%/***************************************************************************** +% * Download Elevation File +%/***************************************************************************** + +\documentclass[12pt]{article} +\usepackage{float} +\usepackage{graphicx} +\usepackage[margin=1in]{geometry} + +\graphicspath{{images/}} + +\usepackage[utf8]{inputenc} +\usepackage[english]{babel} +\usepackage[parfill]{parskip} +\usepackage{datetime} +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue, + } +\urlstyle{same} +\usepackage{subcaption} +\usepackage{dirtytalk} +\usepackage{multirow} +\usepackage{booktabs} + + +\usepackage{fancyhdr} +\pagestyle{fancy} +\fancyhf{} +\rhead{How to download an elevation file using WindNinja} +\cfoot{\thepage} + +\newcommand\vn{3.6.0} + +\begin{document} +\begin{titlepage} + \centering + {\Huge + How to download an elevation file using WindNinja + } + \vfill + \includegraphics[scale=0.40]{images/dem0} + \vfill + {\Huge + 6/30/2023 %Date Last Edited + } + \vfill +\end{titlepage} + + +\section*{Introduction} +This document describes the functionality built into WindNinja to download elevation files for wind modeling. +We call this utility the “elevation file grabber”. +It allows you to use a custom \textcopyright Mapbox \textcopyright OpenStreetMap interface to zoom into and select a desired area for wind modeling. +The elevation data for this area is downloaded by WindNinja from a USGS server and saved to a file on your computer. +There is also a command line version of the elevation file grabber that is described \href{https://ninjastorm.firelab.org/windninja/tutorials/fetch_dem_instructions.pdf}{here}. +The specific options available and work flow are described below. + +To open the elevation file download page, start WindNinja and click \textit{Surface Input} in the navigation tree at the top of WindNinja, then click the \textit{Download File} button as shown below. + +\begin{figure}[H] + \centering + \label{} + \includegraphics[scale=0.50]{images/dem1} +\end{figure} +\newpage + +This area to the right of the navigation tree is an interactive mapping display used to navigate into the desired wind simulation area. +There are a couple of ways to pan and zoom the map. +Using a mouse, you can pan with the left button and zoom using a mouse scroll wheel. +The keyboard can also be used to pan (arrow keys) and zoom (plus and minus keys). + +\begin{figure}[H] + \centering + \label{} + \includegraphics[scale=0.50]{images/dem2} +\end{figure} + +\subsection*{Defining Your Simulation Area} + +There are three ways to define the area you want to download. +\begin{enumerate} +\item Click the \textit{Draw} button in the upper right corner of the download page. +Draw a box on the map bounding the area that you want to simulate. +A transparent blue box will be drawn in the graphics window showing the area you've defined. +The white points can be used to adjust the shape and location of the drawn bounding box. +\item Specify the \textit{Bounding Box Coordinates} directly by entering the north and south latitudes and the east and west longitudes in decimal degrees that define your bounding box. +\item Use the \textit{Point and Radius} method. Enter a latitude and longitude in decimal degrees specifying the center of the domain and a radius in miles specifying the distance from the center of the domain to the bounding box edge. +\end{enumerate} +Once the bounding box has been defined, the coordinates will be displayed in the \textit{Bounding Box} or \textit{Point and Radius} text boxes depending on which is selected. +These coordinates can be edited to change the size of the bounding box, updating the blue box. +If a bounding box has been already defined, clicking on the \textit{Draw bounding box} button will delete it. + +\subsection*{Elevation Data Source} + +There are 3 possible on-line data sets to download elevation data from. +These are listed in the \textit{Data Source} drop-down box at the top left of the graphics window. +The main difference between these data sets is the spatial resolution and extent. +The table below briefly describes these differences. +You should be sure to choose a data set that covers your simulation area. + +\begin{center} + \begin{tabular}{| l | l | p{1.75in} | p{1.8in} |} + \hline + Data set name & Resolution & Spatial Extent & Description \\ \hline + + WORLD SRTM & 30 meters & Between approximately -60 and +60 latitude & + Data from the Shuttle Radar Tomography Mission (SRTM) \\ \hline + + WORLD GMTED & 250 meters & Between approximately -60 and +85 latitude & + Global Multi-resolution Terrain Elevation Data 2010 (GMTED 2010) \\ \hline + + Landscape (LCP) & 30 meters & Contiguous US, Hawaii, PR, Southern Alaska & + FARSITE Landscape files including vegetation information \\ \hline +\end{tabular} +\end{center} + + +\section*{Download The File} +Once you have defined your download area and selected the elevation data source, click the \textit{Download File} button at the bottom left of the download page to download the elevation file. +A window will open to allow you to specify a file name and location. +The downloaded file will be a GeoTIFF file (*.tif) in best fit UTM projection using WGS84. +After the file is successfully downloaded, the downloaded file will be automatically loaded into the Surface Input page. + + +\end{document} diff --git a/doc/tutorials/download_elevation_file/images/dem0.png b/doc/tutorials/download_elevation_file/images/dem0.png new file mode 100644 index 000000000..1803eee99 Binary files /dev/null and b/doc/tutorials/download_elevation_file/images/dem0.png differ diff --git a/doc/tutorials/download_elevation_file/images/dem1.png b/doc/tutorials/download_elevation_file/images/dem1.png new file mode 100644 index 000000000..ddac04408 Binary files /dev/null and b/doc/tutorials/download_elevation_file/images/dem1.png differ diff --git a/doc/tutorials/download_elevation_file/images/dem2.png b/doc/tutorials/download_elevation_file/images/dem2.png new file mode 100644 index 000000000..31e9db29b Binary files /dev/null and b/doc/tutorials/download_elevation_file/images/dem2.png differ diff --git a/doc/fetch_dem_instructions.pdf b/doc/tutorials/fetch_dem_instructions/fetch_dem_instructions.pdf similarity index 81% rename from doc/fetch_dem_instructions.pdf rename to doc/tutorials/fetch_dem_instructions/fetch_dem_instructions.pdf index a9b0385da..ac1e3eb15 100644 Binary files a/doc/fetch_dem_instructions.pdf and b/doc/tutorials/fetch_dem_instructions/fetch_dem_instructions.pdf differ diff --git a/doc/fetch_dem_instructions.tex b/doc/tutorials/fetch_dem_instructions/fetch_dem_instructions.tex similarity index 100% rename from doc/fetch_dem_instructions.tex rename to doc/tutorials/fetch_dem_instructions/fetch_dem_instructions.tex diff --git a/doc/images/fetch_dem_1.png b/doc/tutorials/fetch_dem_instructions/images/fetch_dem_1.png similarity index 100% rename from doc/images/fetch_dem_1.png rename to doc/tutorials/fetch_dem_instructions/images/fetch_dem_1.png diff --git a/doc/tutorials/WindNinja_tutorial1.pdf b/doc/tutorials/tutorial_1/WindNinja_tutorial1.pdf similarity index 98% rename from doc/tutorials/WindNinja_tutorial1.pdf rename to doc/tutorials/tutorial_1/WindNinja_tutorial1.pdf index b92726a18..8107bd509 100644 Binary files a/doc/tutorials/WindNinja_tutorial1.pdf and b/doc/tutorials/tutorial_1/WindNinja_tutorial1.pdf differ diff --git a/doc/tutorials/tutorial_1/WindNinja_tutorial1.tex b/doc/tutorials/tutorial_1/WindNinja_tutorial1.tex index b34c7b376..002c85885 100644 --- a/doc/tutorials/tutorial_1/WindNinja_tutorial1.tex +++ b/doc/tutorials/tutorial_1/WindNinja_tutorial1.tex @@ -7,7 +7,7 @@ \usepackage[margin=1in]{geometry} %\usepackage{subfig} -\graphicspath{{imgs/}} +\graphicspath{{images/}} \usepackage[utf8]{inputenc} \usepackage[english]{babel} @@ -33,7 +33,7 @@ \rhead{WindNinja Tutorial 1: The Basics} \cfoot{\thepage} -\newcommand\vn{3.6.0} +\newcommand\vn{4.0.0} \begin{document} \begin{titlepage} @@ -43,7 +43,7 @@ The Basics } \vfill - \includegraphics[scale=0.35] {title_fig.jpg} + \includegraphics[scale=0.30]{title_fig.jpg} \vfill {\Huge 11/07/2024 %Date Last Edited @@ -52,24 +52,52 @@ \end{titlepage} \section*{Introduction} + \noindent -Welcome to \textbf{WindNinja Tutorial 1: The Basics}. This tutorial will step you through the process of running a basic WindNinja simulation, including how to obtain the necessary elevation data for your specific area. A basic WindNinja simulation uses a single input speed and direction to initialize and drive the wind flow. More advanced topics such as diurnal wind simulation, atmospheric stability, weather station initialization, and weather forecast model initialization are discussed in other tutorials. This tutorial covers both the “button pushing” part of running a simple simulation, as well as an understanding of the simulation process. After the tutorial, you should feel comfortable obtaining elevation data, running WindNinja, and using and viewing the wind outputs. -\newline\break -Note: All required user actions in this tutorial are shown in \textbf{\color{red} red}. +Welcome to \textbf{WindNinja Tutorial 1: The Basics}. +This tutorial will step you through the process of running a basic WindNinja simulation, including how to obtain the necessary elevation data for your specific area. +A basic WindNinja simulation uses a single input speed and direction to initialize and drive the wind flow. +More advanced topics such as diurnal wind simulation, atmospheric stability, weather station initialization, and weather forecast model initialization are discussed in other tutorials. +This tutorial covers both the “button pushing” part of running a simple simulation, as well as an understanding of the simulation process. +After the tutorial, you should feel comfortable obtaining elevation data, running WindNinja, and using and viewing the wind outputs. +\par +\noindent Note: All required user actions in this tutorial are shown in \textbf{\color{red} red}. \section*{What is WindNinja?} -WindNinja is a computer program that computes spatially varying wind fields for wildland fire applications. It is specifically designed to simulate the effect of terrain on wind flow. Unlike traditional weather models, WindNinja does not predict wind for future times, rather it simulates the spatial variation of wind for one instant in time (it does not step forward in time). Information from standard textual weather forecasts can be used to help determine the inputs to WindNinja. WindNinja has the ability to automatically obtain the necessary information from standard weather forecast models to do runs. Using this method, WindNinja can essentially provide a forecast in time, since it does a WindNinja simulation for every forecast time step of the weather forecast model. This is discussed in detail in Tutorial 4. Also, because WindNinja is designed to account for the effect that terrain has on wind flow, it normally runs at a finer resolution (usually around 100-200 meter resolution) than traditional weather models (around 3 kilometer resolution or greater) so the terrain can be more fully resolved (individual ridges and valleys). - -WindNinja has been designed so that a small number of user inputs are required, making simulations easy for non-specialists. The inputs for a basic run are: an elevation data file for the modeling area, a domain-averaged input wind speed and direction, and specification of the dominant vegetation in the area. If you aren’t a GIS person, don’t worry! WindNinja can be run by a person with zero GIS skills and no need to use a complicated GIS. Also, simulations using WindNinja are fairly convenient since a simulation usually takes only a few seconds of run time. - -Outputs from WindNinja can be used for viewing wind flow on maps and for incorporation into fire simulation models. For viewing wind flow, several options are available to the user. Probably the most convenient is to use the free version of Google Earth (using the wind output *.kmz file). Other programs that can be used to view wind flow are GIS programs such as ArcView and ArcGIS (using the output *.shp shapefile), or FlamMap (using the output *.asc grid files). WindNinja winds can be used in the fire spread programs FARSITE and FlamMap (using the output *.asc grid files and *.atm atmosphere files) and have been shown to increase fire spread simulation accuracy (see the publications \href{http://firelab.org/project/windninja}{here}). - -Some users may recall a similar model called WindWizard. WindWizard provided a similar user experience but included more sophisticated physics. The physics in the WindWizard solver were based on proprietary software that required users to purchase a license. Because this severely hampered usability, WindWizard is no longer available. Instead, WindNinja has been upgraded to include the advanced physics previously included in WindWizard, but without the licensing fees. - -As of version 3.0, WindNinja includes an optional momentum solver that replaces the functionality of WindWizard. There are now two options for the solver (the number-crunching part of WindNinja): 1) conservation of mass and 2) conservation of mass and momentum. The conservation of mass option is the native, fast-running solver used in previous versions of WindNinja. The conservation of mass and momentum option is a new solver based on the OpenFOAM toolkit. OpenFOAM is free, open-source software for computational fluid dynamics (CFD) from the OpenFOAM Foundation: \url{http://openfoam.org}. - -The major differences, from a user’s perspective, between the two solvers are listed below: +WindNinja is a computer program that computes spatially varying wind fields for wildland fire applications. +It is specifically designed to simulate the effect of terrain on wind flow. +Unlike traditional weather models, WindNinja does not predict wind for future times, rather it simulates the spatial variation of wind for one instant in time (it does not step forward in time). +Information from standard textual weather forecasts can be used to help determine the inputs to WindNinja. +WindNinja has the ability to automatically obtain the necessary information from standard weather forecast models to do runs. +Using this method, WindNinja can essentially provide a forecast in time, since it does a WindNinja simulation for every forecast time step of the weather forecast model. +This is discussed in detail in Tutorial 4. +Also, because WindNinja is designed to account for the effect that terrain has on wind flow, it normally runs at a finer resolution (usually around 100-200 meter resolution) than traditional weather models (around 3 kilometer resolution or greater) so the terrain can be more fully resolved (individual ridges and valleys). + +WindNinja has been designed so that a small number of user inputs are required, making simulations easy for non-specialists. +The inputs for a basic run are: an elevation data file for the modeling area, a domain-averaged input wind speed and direction, and specification of the dominant vegetation in the area. +If you aren't a GIS person, don't worry! WindNinja can be run by a person with zero GIS skills and no need to use a complicated GIS. +Also, simulations using WindNinja are fairly convenient since a simulation usually takes only a few seconds of run time. + +Outputs from WindNinja can be used for viewing wind flow on maps and for incorporation into fire simulation models. +For viewing wind flow, several options are available to the user. +Probably the most convenient is to use the free version of Google Earth (using the wind output *.kmz file). +Other programs that can be used to view wind flow are GIS programs such as ArcView and ArcGIS (using the output *.shp shapefile), or FlamMap (using the output *.asc grid files). +WindNinja winds can be used in the fire spread programs FARSITE and FlamMap (using the output *.asc grid files and *.atm atmosphere files) and have been shown to increase fire spread simulation accuracy (see the publications \href{http://firelab.org/project/windninja}{here}). + +Some users may recall a similar model called WindWizard. +WindWizard provided a similar user experience but included more sophisticated physics. +The physics in the WindWizard solver were based on proprietary software that required users to purchase a license. +Because this severely hampered usability, WindWizard is no longer available. +Instead, WindNinja has been upgraded to include the advanced physics previously included in WindWizard, but without the licensing fees. + +As of version 3.0, WindNinja includes an optional momentum solver that replaces the functionality of WindWizard. +There are now two options for the solver (the number-crunching part of WindNinja): 1) conservation of mass and 2) conservation of mass and momentum. +The conservation of mass option is the native, fast-running solver used in previous versions of WindNinja. +The conservation of mass and momentum option is a new solver based on the OpenFOAM toolkit. +OpenFOAM is free, open-source software for computational fluid dynamics (CFD) from the OpenFOAM Foundation: \url{http://openfoam.org}. + +The major differences, from a user's perspective, between the two solvers are listed below: \begin{itemize} \item The conservation of mass solver runs much faster than the conservation of mass and momentum solver (less than a minute for conservation of mass compared to about 10-30 min for conservation of mass and momentum). \item The conservation of mass solver's approximation of the momentum equation is simpler and, at times, less accurate than that of the conservation of mass and momentum solver. This is mainly why the conservation of mass solver runs so much faster than the conservation of mass and momentum. The conservation of mass simulations are normally less accurate during stronger winds on the lee sides of ridges and mountains where recirculation eddies can occur. @@ -78,11 +106,13 @@ \section*{What is WindNinja?} \section{Getting Started} -You can download the WindNinja installation file from \url{www.firelab.org}. Step through the simple installation process to install WindNinja. +You can download the WindNinja installation file from \url{www.firelab.org}. +Step through the simple installation process to install WindNinja. \textbf{\color{red}Once installed, you can start WindNinja by going to Start $\Rightarrow$ Programs $\Rightarrow$ WindNinja \vn\ $\Rightarrow$ WindNinja \vn\ } -The main WindNinja window will open. In addition to the usual toolbar features at the top (File, Options, Tools, Help), the window consists of a navigation tree area, an input panel area, and a console output area as shown in the figure below. +The main WindNinja window will open. +In addition to the usual toolbar features at the top (File, Options, Tools, Help), the window consists of a navigation tree area, an input panel area, and a console output area as shown in the figure below. \begin{figure}[H] \centering @@ -90,15 +120,28 @@ \section{Getting Started} \includegraphics[scale=0.75]{layout_1.png} \end{figure} -The navigation tree is designed so you can quickly navigate through the process of running a simulation by left-clicking on an element of the tree. The navigation tree is organized to lead you through the steps of setting up the simulation in logical order, working from top to bottom. The icons next to each level of the tree indicate the current status of that level. A \includegraphics[scale=0.75]{blue_dot} icon indicates that no selection has been made. A \includegraphics[scale=0.75]{red_cross} means that either there was a problem with one of your inputs or you have not made a selection at this level yet, but a selection is required. A \includegraphics[scale=0.75]{green_check} means that your selection for this level in the tree is good. And a \includegraphics[scale=0.5]{ftfo} is a warning that your inputs may not be good but WindNinja cannot determine for sure. Note that this is just a warning, the simulation may still run fine but you should double check these inputs as WindNinja thinks there may be a problem. A useful feature of the navigation tree is that you can hover the mouse over anything for additional, specific information about problems, etc. +The navigation tree is designed so you can quickly navigate through the process of running a simulation by left-clicking on an element of the tree. +The navigation tree is organized to lead you through the steps of setting up the simulation in logical order, working from top to bottom. +The icons next to each level of the tree indicate the current status of that level. +A \includegraphics[scale=0.75]{blue_dot} icon indicates that no selection has been made. +A \includegraphics[scale=0.75]{red_cross} means that either there was a problem with one of your inputs or you have not made a selection at this level yet, but a selection is required. +A \includegraphics[scale=0.75]{green_check} means that your selection for this level in the tree is good. +And a \includegraphics[scale=0.5]{ftfo} is a warning that your inputs may not be good but WindNinja cannot determine for sure. +Note that this is just a warning, the simulation may still run fine but you should double check these inputs as WindNinja thinks there may be a problem. +A useful feature of the navigation tree is that you can hover the mouse over anything for additional, specific information about problems, etc. -The input panel is where you actually enter information. When you select a different part of the navigation tree, the input panel will change allowing you to enter the necessary information. +The input panel is where you actually enter information. +When you select a different part of the navigation tree, the input panel will change allowing you to enter the necessary information. -The console output provides you with feedback from WindNinja. It’s a good idea to watch this output during your setup and run, especially if there are problems with the run. Bad problems are usually shown in red text. +The console output provides you with feedback from WindNinja. +It's a good idea to watch this output during your setup and run, especially if there are problems with the run. +Bad problems are usually shown in red text. \section{Solver} -The solver is the number-crunching part of WindNinja. Starting in WindNinja 3.0 there are two solver options in the navigation tree: 1.) conservation of mass and 2.) conservation of mass and momentum. The conservation of mass option is the native, fast-running solver used in previous versions of WindNinja. The conservation of mass and momentum option is a new solver based on the OpenFOAM toolkit. - +The solver is the number-crunching part of WindNinja. +Starting in WindNinja 3.0 there are two solver options in the navigation tree: 1.) conservation of mass and 2.) conservation of mass and momentum. +The conservation of mass option is the native, fast-running solver used in previous versions of WindNinja. +The conservation of mass and momentum option is a new solver based on the OpenFOAM toolkit. \textbf{\color{red}In the navigation tree, left-click on the solver you want to use under “Solver.” Left-click the box next to the solver name in the input panel to choose the solver.} @@ -108,7 +151,9 @@ \section{Solver} \includegraphics[scale=0.9]{layout_2.png} \end{figure} -The conservation of mass and momentum solver should give more accurate results than the conservation of mass solver in regions where momentum effects are important, such as on the lee-side of terrain obstacles; however, simulation times will be longer. Typical simulation times for the mass and momentum solver will be on the order of 10-30 min. Note that some options, including weather model initializations and non-neutral stability, are not currently available for the momentum solver. Unavailable options will not be selectable in the navigation tree. +The conservation of mass and momentum solver should give more accurate results than the conservation of mass solver in regions where momentum effects are important, such as on the lee-side of terrain obstacles; however, simulation times will be longer. +Typical simulation times for the mass and momentum solver will be on the order of 10-30 min. Note that some options, including weather model initializations and non-neutral stability, are not currently available for the momentum solver. +Unavailable options will not be selectable in the navigation tree. \section{Input} \subsection{Surface Input} @@ -123,7 +168,9 @@ \subsection{Surface Input} \subsubsection{Obtaining and Specifying the Elevation File} -WindNinja uses an elevation file to obtain the necessary elevation information to simulate wind flow for your specific area. Several elevation file formats can be read into WindNinja. They are: +WindNinja uses an elevation file to obtain the necessary elevation information to simulate wind flow for your specific area. +Several elevation file formats can be read into WindNinja. +They are: \begin{itemize} \item[]ASCII Raster (*.asc) @@ -132,26 +179,49 @@ \subsubsection{Obtaining and Specifying the Elevation File} \item[]ERDAS IMAGINE (*.img) \end{itemize} -If you already have one of these files for your area, then you can load it, but be sure it meets WindNinja's requirements (described below). If you don't have an elevation file for your area, you can use the built in file fetching ability of WindNinja to download a file from a USGS or the OpenTopography server. This feature is very easy to use, and the files conform to WindNinja's requirements. The document called \href{https://weather.firelab.org/windninja/tutorials/download_elevation_file.pdf}{\texttt{download\_elevation\_file.pdf} } explains this. +If you already have one of these files for your area, then you can load it, but be sure it meets WindNinja's requirements (described below). +If you don't have an elevation file for your area, you can use the built in file fetching ability of WindNinja to download a file from a USGS or the OpenTopography server. +This feature is very easy to use, and the files conform to WindNinja's requirements. +The document called \href{https://weather.firelab.org/windninja/tutorials/download_elevation_file.pdf}{\texttt{download\_elevation\_file.pdf} } explains this. -If you are just practicing right now, you can also use an elevation file provided by the WindNinja installation.They can be found by going to Start$\Rightarrow$Programs$\Rightarrow$WindNinja-3.0-Example Files. +If you are just practicing right now, you can also use an elevation file provided by the WindNinja installation. +They can be found by at \texttt{Start > Programs > WindNinja-\vn > Example Files}. In the file browser that opens, you will see the elevation files called \texttt{missoula\_valley.tif}, and \texttt{example\_lcp.lcp} Either of these can be used. -Although all of the elevation file formats mentioned above work in WindNinja, there are some slight differences that deserve explanation. The ASCII Raster (*.asc) file type is the most common one used in wildland fire, since it is used in the popular fire behavior programs. So if you will need the elevation file for fire behavior programs in addition to WindNinja, this would probably be the preferred format. There are two slight disadvantages of this file format: it is a much larger file than the others (ascii and uncompressed), and it's projection/datum information is specified in a separate file (*.prj) that must be in the same folder. Both the GeoTiff (*.tif) and ERDAS IMAGINE (*.img) file formats are compressed formats that take much less disk space and download time than the ASCII Raster file format. Also, they contain their projection/datum information in the file rather than a separate file. If you are only using WindNinja, and not a fire behavior program like FARSITE or FlamMap, either of these would be a good format. Last, if you already have a FARSITE landscape file (*.tif or *.lcp) because you are doing fire behavior calculations, you should use it because WindNinja will use the canopy and fuels information to infer gridded surface roughness values (surface drag due to vegetation) and heat flux parameters (for a diurnal flow or non-neutral stability simulation). For the other file formats, you must enter a single, spatially constant vegetation value (described later). +Although all of the elevation file formats mentioned above work in WindNinja, there are some slight differences that deserve explanation. +The ASCII Raster (*.asc) file type is the most common one used in wildland fire, since it is used in the popular fire behavior programs. +So if you will need the elevation file for fire behavior programs in addition to WindNinja, this would probably be the preferred format. +There are two slight disadvantages of this file format: it is a much larger file than the others (ascii and uncompressed), and it's projection/datum information is specified in a separate file (*.prj) that must be in the same folder. Both the GeoTiff (*.tif) and ERDAS IMAGINE (*.img) file formats are compressed formats that take much less disk space and download time than the ASCII Raster file format. +Also, they contain their projection/datum information in the file rather than a separate file. +If you are only using WindNinja, and not a fire behavior program like FARSITE or FlamMap, either of these would be a good format. +Last, if you already have a FARSITE landscape file (*.tif or *.lcp) because you are doing fire behavior calculations, you should use it because WindNinja will use the canopy and fuels information to infer gridded surface roughness values (surface drag due to vegetation) and heat flux parameters (for a diurnal flow or non-neutral stability simulation). +For the other file formats, you must enter a single, spatially constant vegetation value (described later). To be able to do a wind simulation, WindNinja has certain requirements that elevation files must meet: \begin{enumerate} -\item There must be projection/datum information associated with the file and the projection must be defined with that north as ``up.'' This is because we use the standard meteorological convention for wind direction where north is assumed as ``up.'' +\item There must be projection/datum information associated with the file and the projection must be defined with that north as ``up.'' +This is because we use the standard meteorological convention for wind direction where north is assumed as ``up.'' \item The units of your elevation data must be in meters, that is both the vertical (elevation data) and the horizontal (cell resolution/cell size). \item Your elevation file should not contain NODATA values (more about this below). -\item It should not be too large in its extent. A good rule of thumb is to keep your domain less than 30 by 30 miles (50 by 50 km). Larger sizes are possible, but you may run the risk of your computer running out of memory or you may not be resolving the terrain well enough (if the cell size is large). +\item It should not be too large in its extent. +A good rule of thumb is to keep your domain less than 30 by 30 miles (50 by 50 km). +Larger sizes are possible, but you may run the risk of your computer running out of memory or you may not be resolving the terrain well enough (if the cell size is large). \end{enumerate} Note that files downloaded using the built in WindNinja functionality automatically meet these requirements. -A common problem with user provided elevation files is that they contain NO\_DATA values. These are locations in the elevation file where elevation data doesn’t exist. There is now a built-in method in WindNinja to attempt to fill these areas. When the file is loaded, WindNinja will check for NO\_DATA values. If detected, it will ask you if you want to try to fill them. If you say yes, WindNinja will use an interpolation/extrapolation method to try to fill the NO\_DATA values. This is usually successful if there are not too many cells with NO\_DATA. +A common problem with user provided elevation files is that they contain NO\_DATA values. +These are locations in the elevation file where elevation data doesn't exist. +There is now a built-in method in WindNinja to attempt to fill these areas. +When the file is loaded, WindNinja will check for NO\_DATA values. If detected, it will ask you if you want to try to fill them. +If you say yes, WindNinja will use an interpolation/extrapolation method to try to fill the NO\_DATA values. +This is usually successful if there are not too many cells with NO\_DATA. -One common reason that causes NO\_DATA values is when an elevation file is reprojected in a GIS. When this is done, NO\_DATA values are sometimes generated around the border because of the warping. The best way to eliminate these is by first obtaining a larger elevation file than you would normally want, reprojecting it, and then clipping out the NO\_DATA values in a GIS. See the diagram below describing this process, which must be done by someone with GIS skills. Note again that elevation files downloaded using the built in WindNinja functionality do not have this problem. +One common reason that causes NO\_DATA values is when an elevation file is reprojected in a GIS. +When this is done, NO\_DATA values are sometimes generated around the border because of the warping. +The best way to eliminate these is by first obtaining a larger elevation file than you would normally want, reprojecting it, and then clipping out the NO\_DATA values in a GIS. +See the diagram below describing this process, which must be done by someone with GIS skills. +Note again that elevation files downloaded using the built in WindNinja functionality do not have this problem. \begin{figure}[H] \centering @@ -159,31 +229,57 @@ \subsubsection{Obtaining and Specifying the Elevation File} \includegraphics[scale=1.0]{dem_crop.png} \end{figure} -\textbf{\color{red} With “Surface Input” still selected in the navigation tree, left-click on the “Open Elevation File” button. In the window that opens, navigate to and select your elevation file. If you are just practicing, example elevation files are distributed with the WindNinja installation and can be found by going to Start$\Rightarrow$Programs$\Rightarrow$WindNinja-\vn\ $\Rightarrow$Example Files. You can also download an elevation file by clicking on “Download File.”} +\textbf{\color{red} With “Surface Input” still selected in the navigation tree, left-click on the “Open Elevation File” button. +In the window that opens, navigate to and select your elevation file. +If you are just practicing, example elevation files are distributed with the WindNinja installation and can be found by going to \texttt{Start > Programs > WindNinja-\vn > Example Files}. +You can also download an elevation file by clicking on “Download File.”} \subsubsection{Using an Existing Case (Conservation of Mass and Momentum Solver)} -Because of the longer simulation times required for the conservation of mass and momentum solver, we provide the option of using an existing case from a previous simulation. This is useful if you do a conservation of mass and momentum simulation and then later want to re-run the same domain at the same resolution, but with a different wind input. +Because of the longer simulation times required for the conservation of mass and momentum solver, we provide the option of using an existing case from a previous simulation. +This is useful if you do a conservation of mass and momentum simulation and then later want to re-run the same domain at the same resolution, but with a different wind input. -Each time a simulation is run with the conservation of mass and momentum solver, a case directory is left behind in addition to the requested output products. The name of the case directory will include the word \say{NINJAFOAM}, followed by the name of your DEM, and a randomly generated number (to prevent overwriting existing case directories). +Each time a simulation is run with the conservation of mass and momentum solver, a case directory is left behind in addition to the requested output products. +The name of the case directory will include the word \say{NINJAFOAM}, followed by the name of your DEM, and a randomly generated number (to prevent overwriting existing case directories). For example, a case directory for a simulation using the \say{missoula\_valley.tif}DEM might be named \say{NINJAFOAM\_missoula\_valley\_228391}. -The case directory contains directories and text files which define your case. The case directory can be renamed, but the files within the case directory should not be moved or edited if you plan to reuse the case. The case is linked to the DEM used for the original simulation (usually located in the parent directory of the case directory). +The case directory contains directories and text files which define your case. +The case directory can be renamed, but the files within the case directory should not be moved or edited if you plan to reuse the case. +The case is linked to the DEM used for the original simulation (usually located in the parent directory of the case directory). -To reuse a case, click \say{Open Case} in the \say{Surface Input} tab. Navigate to the case you would like to use and click “Select Folder.” If WindNinja detects the folder as a valid case, the \say{Use Existing Case} text box will be populated with the case name you selected. WindNinja will look for the corresponding DEM in the parent directory of the specified case and auto-populate the “Elevation Input File” text box if the DEM is found. If the DEM is not found in this parent directory, you will need to select “Open File” and navigate to and select the appropriate DEM. Note that you cannot change the mesh resolution since the mesh from the existing case is re-used. +To reuse a case, click \say{Open Case} in the \say{Surface Input} tab. +Navigate to the case you would like to use and click “Select Folder.” +If WindNinja detects the folder as a valid case, the \say{Use Existing Case} text box will be populated with the case name you selected. +WindNinja will look for the corresponding DEM in the parent directory of the specified case and auto-populate the “Elevation Input File” text box if the DEM is found. +If the DEM is not found in this parent directory, you will need to select “Open File” and navigate to and select the appropriate DEM. +Note that you cannot change the mesh resolution since the mesh from the existing case is re-used. -If an existing case is used, the computational domain (the mesh) from the existing case is used for the new simulation. This can reduce the total simulation time by up to 40\%. +If an existing case is used, the computational domain (the mesh) from the existing case is used for the new simulation. +This can reduce the total simulation time by up to 40\%. \subsubsection{Setting the Dominant Vegetation Type} -WindNinja approximates the drag effect that vegetation has on wind flow in a very simple way. This requires basic information about the vegetation in the modeling area. If you used a FARSITE landscape file (*.lcp) for the elevation file, then WindNinja will use the canopy and fuels information in the landscape file to infer the vegetation drag information. No vegetation input is required by you. But, if you are using another elevation file type (*.asc, *.tif, or *.img), then you have to choose the dominant vegetation type for your area. This choice of vegetation type is assumed to prevail over the whole domain. The choices for vegetation type are: grass, brush, and trees. For areas with mixed vegetation types, users should choose the dominant one (meaning the vegetation type that covers most of the domain). +WindNinja approximates the drag effect that vegetation has on wind flow in a very simple way. +This requires basic information about the vegetation in the modeling area. If you used a FARSITE landscape file (*.lcp) for the elevation file, then WindNinja will use the canopy and fuels information in the landscape file to infer the vegetation drag information. +No vegetation input is required by you. But, if you are using another elevation file type (*.asc, *.tif, or *.img), then you have to choose the dominant vegetation type for your area. +This choice of vegetation type is assumed to prevail over the whole domain. The choices for vegetation type are: grass, brush, and trees. +For areas with mixed vegetation types, users should choose the dominant one (meaning the vegetation type that covers most of the domain). -\textbf{\color{red} With “Surface Input” still selected in the navigation tree, select the dominant vegetation type in the input panel using the “Vegetation” drop down list. If your elevation file was a FARSITE landscape file, this drop-down box will be grayed out, since the vegetation information is obtained from the landscape file. In this case, you do not need to select a vegetation type.} +\textbf{\color{red} With “Surface Input” still selected in the navigation tree, select the dominant vegetation type in the input panel using the “Vegetation” drop down list. +If your elevation file was a FARSITE landscape file, this drop-down box will be grayed out, since the vegetation information is obtained from the landscape file. +In this case, you do not need to select a vegetation type.} \subsubsection{Choosing the Mesh Resolution} -The mesh resolution selection controls the resolution of the wind simulation. There are four choices for mesh resolution: Coarse, Medium, Fine, and Custom. The finer the mesh, the longer your simulation will take but smaller undulations in the terrain will be better resolved. A good default choice for mesh resolution is “Fine”. The “Custom” selection allows users to enter a specific resolution. Care should be taken when using “Custom” not to enter too fine of a resolution or your computer could run out of memory. Typically, mesh resolutions less than around 70-100 meters are too fine and not recommended. Approximate time estimates for a common sized domain (about 20 miles by 20 miles) using today’s average laptop or desktop computer are shown in the table below. Note that the “Custom” option is not currently available for the conservation of mass and momentum solver. +The mesh resolution selection controls the resolution of the wind simulation. +There are four choices for mesh resolution: Coarse, Medium, Fine, and Custom. +The finer the mesh, the longer your simulation will take but smaller undulations in the terrain will be better resolved. +A good default choice for mesh resolution is “Fine”. The “Custom” selection allows users to enter a specific resolution. +Care should be taken when using “Custom” not to enter too fine of a resolution or your computer could run out of memory. +Typically, mesh resolutions less than around 70-100 meters are too fine and not recommended. +Approximate time estimates for a common sized domain (about 20 miles by 20 miles) using today's average laptop or desktop computer are shown in the table below. +Note that the “Custom” option is not currently available for the conservation of mass and momentum solver. \begin{table}[] \centering @@ -205,20 +301,31 @@ \subsubsection{Choosing the Mesh Resolution} \subsubsection{Time Zone} -Time zone information is not required for this tutorial, so you do not need to make a choice here. Other tutorials that need information about sun angles (diurnal winds and stability calculations) require that a valid time zone be specified. +Time zone information is not required for this tutorial, so you do not need to make a choice here. +Other tutorials that need information about sun angles (diurnal winds and stability calculations) require that a valid time zone be specified. \subsection{Diurnal Input and Stability Input} -Since no diurnal wind or non-neutral stability will be simulated in this tutorial, no selections need to be made under the “Diurnal Input” or “Stability Input” headings in the navigation tree. An explanation of these types of simulations is given in WindNinja Tutorial 2: Diurnal Wind and Non-neutral Stability. For this simulation, a symbol should be next to “Diurnal Input” and “Stability Input” in the navigation tree indicating no selection has been made. + +Since no diurnal wind or non-neutral stability will be simulated in this tutorial, no selections need to be made under the “Diurnal Input” or “Stability Input” headings in the navigation tree. +An explanation of these types of simulations is given in WindNinja Tutorial 2: Diurnal Wind and Non-neutral Stability. +For this simulation, a symbol should be next to “Diurnal Input” and “Stability Input” in the navigation tree indicating no selection has been made. \subsection{Wind Input} -A basic WindNinja simulation will be done, which means that we will initialize the simulation using a domain averaged wind speed and direction. Other initialization methods are discussed in later tutorials. +A basic WindNinja simulation will be done, which means that we will initialize the simulation using a domain averaged wind speed and direction. +Other initialization methods are discussed in later tutorials. \textbf{\color{red} Under \say{Wind Input} in the navigation tree, left-click on \say{Domain Average Wind}.} \subsubsection{Input Wind Height} -In WindNinja, users must specify the height of the input domain averaged wind speed and direction (domain averaged wind speed and direction are discussed below in section 3.3.2). For this height, the meteorological standard is used \textit{where the wind height specified is the height above the top of the vegetation.} So if the area has 100 foot tall trees, the \say{20-foot wind} is actually 120 feet above the ground surface (20 feet above the tops of the trees). In this example, the user would choose \say{20 ft} for the WindNinja input wind height. In the US, the standard height for meteorological measurements in the context of wildland fires is usually 20 feet above the vegetation. Most RAWS stations measure this 20 foot wind and fire weather forecasts generally specify the 20 foot wind. FARSITE and FlamMap also use the 20 foot wind. One exception in the US to this is METAR weather stations which measure the wind at 10 meters. Most other countries such as Canada, Australia, etc. use 10 meters as the standard wind measurement height. +In WindNinja, users must specify the height of the input domain averaged wind speed and direction (domain averaged wind speed and direction are discussed below in section 3.3.2). +For this height, the meteorological standard is used \textit{where the wind height specified is the height above the top of the vegetation.} So if the area has 100 foot tall trees, the \say{20-foot wind} is actually 120 feet above the ground surface (20 feet above the tops of the trees). +In this example, the user would choose \say{20 ft} for the WindNinja input wind height. +In the US, the standard height for meteorological measurements in the context of wildland fires is usually 20 feet above the vegetation. +Most RAWS stations measure this 20 foot wind and fire weather forecasts generally specify the 20 foot wind. FARSITE and FlamMap also use the 20 foot wind. +One exception in the US to this is METAR weather stations which measure the wind at 10 meters. +Most other countries such as Canada, Australia, etc. use 10 meters as the standard wind measurement height. \textbf{\color{red} Select your input wind height using the “Input Wind Height” drop down list.} @@ -226,23 +333,39 @@ \subsubsection{Input Wind Height} \subsubsection{Entering the Input Wind Speed and Direction} -Terrain causes changes in wind speed as air flows over it. Directional changes also occur due to channeling of the flow. For a domain average initialized run, WindNinja requires you to enter a single wind speed and direction to characterize the wind field for the particular wind scenario you are trying to simulate. This input wind speed and direction can be thought of as roughly an average surface wind over the simulation domain at the input height. So if you want a particular wind speed at, say, a certain ridge top, you will have to adjust your input wind speed and direction accordingly. This means that you may have to run multiple simulations varying the input speed and direction to get the resulting wind that you want at that particular ridge top. +Terrain causes changes in wind speed as air flows over it. Directional changes also occur due to channeling of the flow. +For a domain average initialized run, WindNinja requires you to enter a single wind speed and direction to characterize the wind field for the particular wind scenario you are trying to simulate. +This input wind speed and direction can be thought of as roughly an average surface wind over the simulation domain at the input height. +So if you want a particular wind speed at, say, a certain ridge top, you will have to adjust your input wind speed and direction accordingly. +This means that you may have to run multiple simulations varying the input speed and direction to get the resulting wind that you want at that particular ridge top. -There are many resources that you can use to help determine good wind speeds and directions to enter, depending on your specific circumstances. For example, if you are on a fire and want to predict winds for tomorrow, you could look at the general weather forecast or a spot weather forecast and use the \say{Lower Elevation} or \say{Ridgetop Wind} predictions to guide your WindNinja inputs. Or if you are on a fire with homes or other valuable resources on one side of the fire, you could do \say{what-if} types of wind runs to help determine what would happen if the wind pushed the fire in that direction. Similar \say{what-if} wind runs could be done for planning of prescribed fires. Also, measured winds from RAWS stations or observers could be used to reconstruct a past fire. Several other scenarios are possible… +There are many resources that you can use to help determine good wind speeds and directions to enter, depending on your specific circumstances. +For example, if you are on a fire and want to predict winds for tomorrow, you could look at the general weather forecast or a spot weather forecast and use the \say{Lower Elevation} or \say{Ridgetop Wind} predictions to guide your WindNinja inputs. +Or if you are on a fire with homes or other valuable resources on one side of the fire, you could do \say{what-if} types of wind runs to help determine what would happen if the wind pushed the fire in that direction. +Similar \say{what-if} wind runs could be done for planning of prescribed fires. Also, measured winds from RAWS stations or observers could be used to reconstruct a past fire. +Several other scenarios are possible… -WindNinja follows the meteorological convention that the wind direction is the direction that the wind is coming from (so a $270^{\circ}$ wind blows from west to east). WindNinja also lets you choose the units of your input and output wind speed. +WindNinja follows the meteorological convention that the wind direction is the direction that the wind is coming from (so a $270^{\circ}$ wind blows from west to east). +WindNinja also lets you choose the units of your input and output wind speed. -As a convenience, you can enter many different input wind speed and direction combinations at the same time and then run all of these simulations at once. Output files will be written for each speed and direction combination. +As a convenience, you can enter many different input wind speed and direction combinations at the same time and then run all of these simulations at once. +Output files will be written for each speed and direction combination. \textbf{\color{red} With \say{Domain Average Wind} still selected in the navigation tree, enter your desired wind speed and direction in the \say{Speed} and \say{Direction} text boxes. You may enter multiple combinations, row by row. Also select your preferred wind speed units at the top of the speed list.} -In this panel, you have probably noticed that there are also columns to the right, such as \say{Time}, \say{Date}, etc. that are grayed out. These are all related to diurnal and non-neutral stability wind simulations, which are explained in WindNinja Tutorial 2: Diurnal Wind and Non-neutral Stability. They can be ignored for now. +In this panel, you have probably noticed that there are also columns to the right, such as \say{Time}, \say{Date}, etc. that are grayed out. +These are all related to diurnal and non-neutral stability wind simulations, which are explained in WindNinja Tutorial 2: Diurnal Wind and Non-neutral Stability. +They can be ignored for now. \section{Output} -WindNinja writes many different kinds of output files for use in a GIS, Google Earth, fire modeling programs, and engineering programs. The following sections describe how to identify and work with these output files. \textit{Note that output files are written to the folder where your elevation file is located.} The files are automatically named based on your input parameters. Here we will describe the file naming convention used by WindNinja for a domain average initialized run. Other types of runs will have slightly different naming conventions and are discussed in other tutorials. +WindNinja writes many different kinds of output files for use in a GIS, Google Earth, fire modeling programs, and engineering programs. +The following sections describe how to identify and work with these output files. \textit{Note that output files are written to the folder where your elevation file is located.} +The files are automatically named based on your input parameters. Here we will describe the file naming convention used by WindNinja for a domain average initialized run. +Other types of runs will have slightly different naming conventions and are discussed in other tutorials. -The naming convention includes a combination of the elevation file name, input wind direction, input wind speed and output file resolution. Below is an example of the output files from a WindNinja run using an ASCII Raster elevation file called \say{south\_canyon.asc} and an input direction of 270 degrees and speed of 35 mph with an output file resolution of 200 meters. +The naming convention includes a combination of the elevation file name, input wind direction, input wind speed and output file resolution. +Below is an example of the output files from a WindNinja run using an ASCII Raster elevation file called \say{south\_canyon.asc} and an input direction of 270 degrees and speed of 35 mph with an output file resolution of 200 meters. \begin{figure}[H] \label{} @@ -251,12 +374,9 @@ \section{Output} \end{figure} A total of 14 files may share this base name with different appendages and file extensions (indicated above by the (*) asterisk). The table below describes each file. -\newline \begin{center} % \usepackage{multirow} - - \begin{tabular}{|l|l|} \hline \textbf{File} & \textbf{Description} \\ @@ -296,21 +416,41 @@ \section{Output} \end{tabular} \end{center} -Just like the input wind height in Section 3.3.1, you must choose the output wind height and speed units that you would like. This is the height and speed units that winds in the output files are reported at. +Just like the input wind height in Section 3.3.1, you must choose the output wind height and speed units that you would like. +This is the height and speed units that winds in the output files are reported at. -\textbf{\color{red} In the navigation tree, left-click on “Output”. Then in the inputs panel, select the “Output Height” and “Output Speed Units” you desire using the drop down list.} +\textbf{\color{red} In the navigation tree, left-click on “Output”. +Then in the inputs panel, select the “Output Height” and “Output Speed Units” you desire using the drop down list.} -There is a feature in WindNinja that allows users to “clip” off a border area around your output files. The intent of this feature is to let you automatically clip off border areas that might be less accurate because of their close proximity to the boundary of the domain. Typically this boundary influence might extend 5-10\% in from the border of the domain, although users normally don't use this feature and commonly just leave the default value of 0\%. +There is a feature in WindNinja that allows users to “clip” off a border area around your output files. +The intent of this feature is to let you automatically clip off border areas that might be less accurate because of their close proximity to the boundary of the domain. +Typically this boundary influence might extend 5-10\% in from the border of the domain, although users normally don't use this feature and commonly just leave the default value of 0\%. \subsection{Google Earth} -Probably the most convenient way to view winds from WindNinja is to use Google Earth. - -\textbf{\color{red} To write Google Earth files using WindNinja, select \say{Google Earth} in the navigation tree. Then check the \say{Create Google Earth Files} check box in the input panel.} - -Notice that there are several options to control how the wind vectors will look in Google Earth. The default values work well, and don't normally need to be changed. If you want to, you can change the line width of the plotted wind vectors using the \say{Line Width} text box. You can also adjust the wind speed legend by choosing either \say{Uniform Range} or “Equal Count”. This affects where the speed \say{breaks} are in the legend between different colors. \say{Uniform Range} sets the speed \say{breaks} in the legend uniformly in speed among the entire range of speeds. \say{Equal Count} means that the speed \say{break} for each wind vector color will be set so that there are equal numbers of red, orange, yellow, etc. vectors displayed. The resolution of the Google Earth output file can be set in the \say{Resolution} area. By default, the WindNinja mesh resolution is used, which is displayed in the grayed out text box. You can uncheck the \say{Use Mesh Resolution} check box to specify your own resolution. Be careful to not specify too fine of a resolution, since the graphics in Google Earth may be very slow or Google Earth could crash. A good rule of thumb is to keep the resolution greater than about 100 meters. - -Once WindNinja has computed the wind output files (after the solve step explained below in Section 5), you can view the Google Earth output file (*.kmz) in Google Earth. To do this, you must first have Google Earth installed on your computer (it’s a free download from \url{http://earth.google.com/}). Then just double-click on the *.kmz file (located in the same folder as your elevation file) that was created by WindNinja and Google Earth will automatically start up, load the wind file, and zoom into the area you simulated. An example screen capture of winds viewed in Google Earth is shown below. The wind layer can be turned on and off using the check box in the “Places” panel on the left of the Google Earth window. +Likely, the most convenient way to view winds from WindNinja is to use Google Earth. + +\textbf{\color{red} To write Google Earth files using WindNinja, select \say{Google Earth} in the navigation tree. +Then check the \say{Create Google Earth Files} check box in the input panel.} + +Notice that there are several options to control how the wind vectors will look in Google Earth. +The default values work well, and don't normally need to be changed. +If you want to, you can change the line width of the plotted wind vectors using the \say{Line Width} text box. +You can also adjust the wind speed legend by choosing either \say{Uniform Range} or “Equal Count”. +This affects where the speed \say{breaks} are in the legend between different colors. +\say{Uniform Range} sets the speed \say{breaks} in the legend uniformly in speed among the entire range of speeds. +\say{Equal Count} means that the speed \say{break} for each wind vector color will be set so that there are equal numbers of red, orange, yellow, etc. vectors displayed. +The resolution of the Google Earth output file can be set in the \say{Resolution} area. +By default, the WindNinja mesh resolution is used, which is displayed in the grayed out text box. +You can uncheck the \say{Use Mesh Resolution} check box to specify your own resolution. +Be careful to not specify too fine of a resolution, since the graphics in Google Earth may be very slow or Google Earth could crash. +A good rule of thumb is to keep the resolution greater than about 100 meters. + +Once WindNinja has computed the wind output files (after the solve step explained below in Section 5), you can view the Google Earth output file (*.kmz) in Google Earth. +To do this, you must first have Google Earth installed on your computer (it's a free download from \url{http://earth.google.com/}). +Then just double-click on the *.kmz file (located in the same folder as your elevation file) that was created by WindNinja and Google Earth will automatically start up, load the wind file, and zoom into the area you simulated. +An example screen capture of winds viewed in Google Earth is shown below. +The wind layer can be turned on and off using the check box in the “Places” panel on the left of the Google Earth window. \begin{figure}[H] \label{} @@ -318,56 +458,97 @@ \subsection{Google Earth} \end{figure} \subsection{Fire Behavior} -WindNinja writes wind files that can be used in FARSITE and FlamMap for fire behavior simulations. Spatially varying winds like those produced by WindNinja are often termed gridded winds in these programs. -The WindNinja files for use in FARSITE and FlamMap are ASCII Raster format, the same format as the other files used for elevation, fuels, etc. in these programs. There are three gridded files created by WindNinja: a wind speed file (*\_vel.asc), a wind direction file (*\_ang.asc), and a cloud cover file (*\_cld.asc). Each file also has a corresponding projection file (*.prj). Cloud cover is not simulated in WindNinja, but is a required file for running FARSITE using gridded winds. As a convenience, WindNinja provides a cloud cover file with 0\% cloud cover to facilitate gridded wind simulations in FARSITE if cloud cover information is not available. You could change this for your FARSITE simulation by opening the cloud cover file in a text editor and changing the zero to another value. +WindNinja writes wind files that can be used in FARSITE and FlamMap for fire behavior simulations. +Spatially varying winds like those produced by WindNinja are often termed gridded winds in these programs. + +The WindNinja files for use in FARSITE and FlamMap are ASCII Raster format, the same format as the other files used for elevation, fuels, etc. in these programs. +There are three gridded files created by WindNinja: a wind speed file (*\_vel.asc), a wind direction file (*\_ang.asc), and a cloud cover file (*\_cld.asc). +Each file also has a corresponding projection file (*.prj). Cloud cover is not simulated in WindNinja, but is a required file for running FARSITE using gridded winds. +As a convenience, WindNinja provides a cloud cover file with 0\% cloud cover to facilitate gridded wind simulations in FARSITE if cloud cover information is not available. +You could change this for your FARSITE simulation by opening the cloud cover file in a text editor and changing the zero to another value. -It is simple to run FlamMap using gridded winds. Just select the \say{Wind Vectors} radio button where you normally enter wind information in FlamMap. Then choose the \say{Direction} file and the \say{Speed} file. These correspond to the WindNinja \say{*\_ang.asc} and \say{*\_vel.asc} files, respectively. +It is simple to run FlamMap using gridded winds. Just select the \say{Wind Vectors} radio button where you normally enter wind information in FlamMap. +Then choose the \say{Direction} file and the \say{Speed} file. These correspond to the WindNinja \say{*\_ang.asc} and \say{*\_vel.asc} files, respectively. -To use gridded winds in FARSITE, you must use an \say{atmosphere file} (*.atm). WindNinja can make this file for you. The atmosphere file specifies wind file names to be used over time in the FARSITE simulation, since a FARSITE simulation steps through time. In this way, different wind files can be used at different times during the fire simulation. The atmosphere file—a text file specifying month, day, hour, wind speed filename, wind direction filename, and cloud cover filename—must be precisely formatted to function in FARSITE and in the same folder as the wind speed, wind direction, and cloud cover files. You can find more information about using gridded wind in the FARSITE Help by searching for “Gridded Weather File”. +To use gridded winds in FARSITE, you must use an \say{atmosphere file} (*.atm). WindNinja can make this file for you. +The atmosphere file specifies wind file names to be used over time in the FARSITE simulation, since a FARSITE simulation steps through time. +In this way, different wind files can be used at different times during the fire simulation. +The atmosphere file—a text file specifying month, day, hour, wind speed filename, wind direction filename, and cloud cover filename—must be precisely formatted to function in FARSITE and in the same folder as the wind speed, wind direction, and cloud cover files. +You can find more information about using gridded wind in the FARSITE Help by searching for “Gridded Weather File”. -\textbf{\color{red} To make fire behavior output files, left-click on “Fire Behavior” in the navigation tree. Then check the “Create Fire Behavior Files” check box.} +\textbf{\color{red} To make fire behavior output files, left-click on “Fire Behavior” in the navigation tree. +Then check the “Create Fire Behavior Files” check box.} -The resolution of the fire behavior files can be set here. By default, the WindNinja mesh resolution is used, with the actual value displayed in the grayed out text box. You can uncheck the \say{Use Mesh Resolution} check box to specify your own resolution. Be careful to not specify too fine of a resolution. A good rule of thumb is to keep the resolution greater than about 100 meters. +The resolution of the fire behavior files can be set here. +By default, the WindNinja mesh resolution is used, with the actual value displayed in the grayed out text box. +You can uncheck the \say{Use Mesh Resolution} check box to specify your own resolution. Be careful to not specify too fine of a resolution. +A good rule of thumb is to keep the resolution greater than about 100 meters. You can also select if you want to create a FARSITE atmosphere file (*.atm) here. \subsection{Shape Files} -Shapefiles for viewing simulated wind in a GIS are created by WindNinja. Four files (*.shp, *.shx, *.dbf, *.prj) are made for viewing in ArcMap, ArcView, or Quantum GIS. These files are always in the same projection as the elevation file and created in the same directory. To view wind vectors in ArcMap or ArcView, you can follow the instructions for \href{https://weather.firelab.org/windninja/tutorials/ArcGIS.pdf}{ArcMap} or \href{http://firelab.github.io/windninja/pdf/displaying_wind_vectors_in_ArcView.pdf}{ArcView}. -\textbf{\color{red} To make shape files, left-click on \say{Shape Files} in the navigation tree. Then check the \say{Create Shape Files} check box.} +Shapefiles for viewing simulated wind in a GIS are created by WindNinja. +Four files (*.shp, *.shx, *.dbf, *.prj) are made for viewing in ArcMap, ArcView, or Quantum GIS. +These files are always in the same projection as the elevation file and created in the same directory. +To view wind vectors in ArcMap or ArcView, you can follow the instructions for \href{https://weather.firelab.org/windninja/tutorials/ArcGIS.pdf}{ArcMap} or \href{http://firelab.github.io/windninja/pdf/displaying_wind_vectors_in_ArcView.pdf}{ArcView}. -The resolution of the shape files can be set here. By default, the WindNinja mesh resolution is used, with the actual value displayed in the grayed out text box. You can uncheck the \say{Use Mesh Resolution} check box to specify your own resolution. Be careful to not specify too fine of a resolution. A good rule of thumb is to keep the resolution greater than about 100 meters. +\textbf{\color{red} To make shape files, left-click on \say{Shape Files} in the navigation tree. +Then check the \say{Create Shape Files} check box.} + +The resolution of the shape files can be set here. +By default, the WindNinja mesh resolution is used, with the actual value displayed in the grayed out text box. +You can uncheck the \say{Use Mesh Resolution} check box to specify your own resolution. +Be careful to not specify too fine of a resolution. +A good rule of thumb is to keep the resolution greater than about 100 meters. \textbf{\color{red} Select the desired output resolution.} \subsection{Geospatial PDF Files} -Geospatial PDF files are geospatially referenced PDF files. They can be viewed in regular PDF viewers as well as in GIS programs and the Avenza PDF Maps mobile application. +Geospatial PDF files are geospatially referenced PDF files. +They can be viewed in regular PDF viewers as well as in GIS programs and the Avenza PDF Maps mobile application. -\textbf{\color{red} To make Geospatial PDF output files, left-click on \say{Geospatial PDF Files} in the navigation tree. Then check the \say{Create Geospatial PDF Files} check box.} +\textbf{\color{red} To make Geospatial PDF output files, left-click on \say{Geospatial PDF Files} in the navigation tree. +Then check the \say{Create Geospatial PDF Files} check box.} -There are two options for the basemap, a simple hillshade and a TopoFire topographical map that includes roads, boundaries, etc. The PDF can be printed in either portrait or landscape layout. +There are two options for the basemap, a simple hillshade and a TopoFire topographical map that includes roads, boundaries, etc. +The PDF can be printed in either portrait or landscape layout. \textbf{\color{red} Select the desired basemap and layout.} -The resolution of the Geospatial PDF files can be set here. By default, the WindNinja mesh resolution is used, with the actual value displayed in the grayed out text box. You can uncheck the \say{Use Mesh Resolution} check box to specify your own resolution. Be careful to not specify too fine of a resolution. A good rule of thumb is to keep the resolution greater than about 100 meters. +The resolution of the Geospatial PDF files can be set here. +By default, the WindNinja mesh resolution is used, with the actual value displayed in the grayed out text box. +You can uncheck the \say{Use Mesh Resolution} check box to specify your own resolution. +Be careful to not specify too fine of a resolution. +A good rule of thumb is to keep the resolution greater than about 100 meters. \textbf{\color{red} Select the desired output resolution.} \subsection{VTK Files} -VTK output files can be used in scientific and engineering programs to view the full 3-d output wind fields. These programs are fairly complex, and will likely not be used very often by fire analysts and managers. One program to view these files is the free, open-source program \href{http://www.paraview.org/}{ParaView} by \href{http://www.kitware.com/}{Kitware, Inc.} This program allows users to view the full 3-d wind fields simulated by WindNinja, as opposed to all the other types of output files and viewers discussed earlier where only 2-d surface winds can be viewed. In ParaView, you have the ability to use several advanced viewing capabilities such as user defined 2-d slices, raster and vector plotting, contour plotting, and plotting of the computational grid. +VTK output files can be used in scientific and engineering programs to view the full 3-d output wind fields. +These programs are fairly complex, and will likely not be used very often by fire analysts and managers. +One program to view these files is the free, open-source program \href{http://www.paraview.org/}{ParaView} by \href{http://www.kitware.com/}{Kitware, Inc.} +This program allows users to view the full 3-d wind fields simulated by WindNinja, as opposed to all the other types of output files and viewers discussed earlier where only 2-d surface winds can be viewed. +In ParaView, you have the ability to use several advanced viewing capabilities such as user defined 2-d slices, raster and vector plotting, contour plotting, and plotting of the computational grid. -The two VTK files produced by WindNinja are the full 3-d volume data and a ground surface file. We will not produce these files for this tutorial. +The two VTK files produced by WindNinja are the full 3-d volume data and a ground surface file. +We will not produce these files for this tutorial. Note that VTK files are not available for the momentum solver. \section{Solve} -Now you've entered all the required inputs and are ready to run the simulation(s). WindNinja has the ability to use multiple processors/cores if your machine has them. This can dramatically reduce the simulation time. +Now you've entered all the required inputs and are ready to run the simulation(s). +WindNinja has the ability to use multiple processors/cores if your machine has them. +This can dramatically reduce the simulation time. -\textbf{\color{red} Left-click on \say{Solve} in the navigation tree. Set the number of processors you would like using the \say{Number of Processors} text box. Notice that the number of available processors on your computer is detected and displayed. Finally, left-click the \say{Solve} button to start the simulation(s).} +\textbf{\color{red} Left-click on \say{Solve} in the navigation tree. +Set the number of processors you would like using the \say{Number of Processors} text box. +Notice that the number of available processors on your computer is detected and displayed. +Finally, left-click the \say{Solve} button to start the simulation(s).} \begin{figure}[H] \label{} @@ -375,7 +556,8 @@ \section{Solve} \includegraphics[scale=1.0]{solve_1} \end{figure} -A progress window will open (this may take a few seconds) that displays how far along the simulation is. When the simulation is done, the progress bar will notify you. +A progress window will open (this may take a few seconds) that displays how far along the simulation is. +When the simulation is done, the progress bar will notify you. \textbf{\color{red} Click \say{Close} in the progress window.} @@ -385,7 +567,9 @@ \section{Solve} \includegraphics[scale=1.0]{sim_finished_1} \end{figure} -The simulations are complete! The output files can be found in the folder where your elevation file is. For your convenience, a button on the solve input panel called \say{Open Output Files Path} can be clicked to open your file browser in the folder where the output files were written. +The simulations are complete! +The output files can be found in the folder where your elevation file is. +For your convenience, a button on the solve input panel called \say{Open Output Files Path} can be clicked to open your file browser in the folder where the output files were written. \textbf{\color{red} Left-click the \say{Open Output Files Path} button to see the output files that were written.} @@ -395,10 +579,15 @@ \section{Solve} \includegraphics[scale=1.0]{output_path_1} \end{figure} -This concludes \textbf{WindNinja Tutorial 1: The Basics}. You are encouraged to do the other tutorials that are available. +This concludes \textbf{WindNinja Tutorial 1: The Basics}. +You are encouraged to do the other tutorials that are available. \section{Advanced Users} - -Advanced users should note that the default settings in WindNinja have been selected to ensure fast run times for operational wildland fire applications. In some cases this may mean trading slightly higher accuracy for computational efficiency. Advanced users can modify many of these options via the WindNinja command line interface (CLI). The CLI is described in \href{https://weather.firelab.org/windninja/tutorials/CLI_instructions.pdf}{CLI\_instructions.pdf}. The CLI allows for far more customizable WindNinja runs and access to features that are not available in the GUI. Researchers, programmers, and other advanced users are strongly encouraged to explore the capabilities offered in the CLI. The WindNinja source code and additional information can be found at: \url{https://github.com/firelab/windninja}. +Advanced users should note that the default settings in WindNinja have been selected to ensure fast run times for operational wildland fire applications. +In some cases this may mean trading slightly higher accuracy for computational efficiency. +Advanced users can modify many of these options via the WindNinja command line interface (CLI). +The CLI is described in \href{https://weather.firelab.org/windninja/tutorials/CLI_instructions.pdf}{CLI\_instructions.pdf}. +The CLI allows for far more customizable WindNinja runs and access to features that are not available in the GUI. Researchers, programmers, and other advanced users are strongly encouraged to explore the capabilities offered in the CLI. +The WindNinja source code and additional information can be found at: \url{https://github.com/firelab/windninja}. \end{document} diff --git a/doc/tutorials/tutorial_1/imgs/blue_dot.png b/doc/tutorials/tutorial_1/images/blue_dot.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/blue_dot.png rename to doc/tutorials/tutorial_1/images/blue_dot.png diff --git a/doc/tutorials/tutorial_1/imgs/dem_crop.png b/doc/tutorials/tutorial_1/images/dem_crop.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/dem_crop.png rename to doc/tutorials/tutorial_1/images/dem_crop.png diff --git a/doc/tutorials/tutorial_1/imgs/earth_1.png b/doc/tutorials/tutorial_1/images/earth_1.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/earth_1.png rename to doc/tutorials/tutorial_1/images/earth_1.png diff --git a/doc/tutorials/tutorial_1/imgs/file_desc.png b/doc/tutorials/tutorial_1/images/file_desc.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/file_desc.png rename to doc/tutorials/tutorial_1/images/file_desc.png diff --git a/doc/tutorials/tutorial_1/imgs/ftfo.png b/doc/tutorials/tutorial_1/images/ftfo.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/ftfo.png rename to doc/tutorials/tutorial_1/images/ftfo.png diff --git a/doc/tutorials/tutorial_1/imgs/green_check.png b/doc/tutorials/tutorial_1/images/green_check.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/green_check.png rename to doc/tutorials/tutorial_1/images/green_check.png diff --git a/doc/tutorials/tutorial_1/imgs/layout_1.png b/doc/tutorials/tutorial_1/images/layout_1.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/layout_1.png rename to doc/tutorials/tutorial_1/images/layout_1.png diff --git a/doc/tutorials/tutorial_1/imgs/layout_2.png b/doc/tutorials/tutorial_1/images/layout_2.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/layout_2.png rename to doc/tutorials/tutorial_1/images/layout_2.png diff --git a/doc/tutorials/tutorial_1/imgs/layout_3.png b/doc/tutorials/tutorial_1/images/layout_3.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/layout_3.png rename to doc/tutorials/tutorial_1/images/layout_3.png diff --git a/doc/tutorials/tutorial_1/imgs/output_path_1.png b/doc/tutorials/tutorial_1/images/output_path_1.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/output_path_1.png rename to doc/tutorials/tutorial_1/images/output_path_1.png diff --git a/doc/tutorials/tutorial_1/imgs/red_cross.png b/doc/tutorials/tutorial_1/images/red_cross.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/red_cross.png rename to doc/tutorials/tutorial_1/images/red_cross.png diff --git a/doc/tutorials/tutorial_1/imgs/sim_finished_1.png b/doc/tutorials/tutorial_1/images/sim_finished_1.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/sim_finished_1.png rename to doc/tutorials/tutorial_1/images/sim_finished_1.png diff --git a/doc/tutorials/tutorial_1/imgs/solve_1.png b/doc/tutorials/tutorial_1/images/solve_1.png similarity index 100% rename from doc/tutorials/tutorial_1/imgs/solve_1.png rename to doc/tutorials/tutorial_1/images/solve_1.png diff --git a/doc/tutorials/tutorial_1/imgs/title_fig.jpg b/doc/tutorials/tutorial_1/images/title_fig.jpg similarity index 100% rename from doc/tutorials/tutorial_1/imgs/title_fig.jpg rename to doc/tutorials/tutorial_1/images/title_fig.jpg diff --git a/doc/tutorials/WindNinja_tutorial2.pdf b/doc/tutorials/tutorial_2/WindNinja_tutorial2.pdf similarity index 73% rename from doc/tutorials/WindNinja_tutorial2.pdf rename to doc/tutorials/tutorial_2/WindNinja_tutorial2.pdf index 5d235f627..daae863c5 100644 Binary files a/doc/tutorials/WindNinja_tutorial2.pdf and b/doc/tutorials/tutorial_2/WindNinja_tutorial2.pdf differ diff --git a/doc/tutorials/tutorial_2/WindNinja_tutorial2.tex b/doc/tutorials/tutorial_2/WindNinja_tutorial2.tex index 01da8d85b..d2333dcc3 100644 --- a/doc/tutorials/tutorial_2/WindNinja_tutorial2.tex +++ b/doc/tutorials/tutorial_2/WindNinja_tutorial2.tex @@ -7,7 +7,7 @@ \usepackage{graphicx} \usepackage[margin=1in]{geometry} -\graphicspath{{imgs/}} +\graphicspath{{images/}} \usepackage[utf8]{inputenc} \usepackage[english]{babel} @@ -31,7 +31,7 @@ \rhead{WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stability} \cfoot{\thepage} -\newcommand\vn{3.6.0} +\newcommand\vn{4.0.0} \begin{document} \begin{titlepage} @@ -40,7 +40,7 @@ WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stability } \vfill - \includegraphics[scale=0.2] {imgs/title_fig.jpg} + \includegraphics[scale=0.15]{thermalparameterization0.jpg} \vfill {\Huge 3/25/2020 %Date Last Edited @@ -49,23 +49,45 @@ \end{titlepage} \section*{Introduction} -Welcome to WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stablity. This tutorial will step you through the process of running a WindNinja simulation that includes diurnal slope winds and an atmospheric stability that is not neutral. For the purposes of this tutorial, a domain average wind initialization run will be shown, but diurnal wind and non-neutral stability can be included with the other WindNinja initialization methods discussed in subsequent tutorials (point initialization, weather model initialization). Note that the non-neutral stability option is not currently available for use with the momentum solver. This tutorial assumes you have already gone through \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics}. After this tutorial, you should feel comfortable incorporating the diurnal wind and non-neutral stability submodels in your WindNinja runs. +Welcome to WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stablity. +This tutorial will step you through the process of running a WindNinja simulation that includes diurnal slope winds and an atmospheric stability that is not neutral. +For the purposes of this tutorial, a domain average wind initialization run will be shown, but diurnal wind and non-neutral stability can be included with the other WindNinja initialization methods discussed in subsequent tutorials (point initialization, weather model initialization). +Note that the non-neutral stability option is not currently available for use with the momentum solver. +This tutorial assumes you have already gone through \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics}. +After this tutorial, you should feel comfortable incorporating the diurnal wind and non-neutral stability submodels in your WindNinja runs. Note: All required user actions in this tutorial are shown in \textbf{\color{red} red}. \section*{What are Diurnal Winds?} +Most firefighters already have a good understanding of what diurnal slope winds are, because they are discussed in fire behavior training courses and experienced often on fires. +Diurnal slope winds are caused by warming of mountain slopes by daytime sunlight or cooling by nocturnal radiation (that is, radiation emitted by the \say{warm} ground that is lost to the \say{cold} sky). +This heats or cools the air adjacent to the slope, causing buoyant forces that produce flow up or down the slope. +During the daytime, a slope's orientation to the sun can affect its rate of heating and, therefore, the strength of the diurnal wind. +Other factors affecting the diurnal wind strength are how well solar energy is absorbed by the ground surface and transferred to the air, how cloudy it is, and how steep the slope is. -Most firefighters already have a good understanding of what diurnal slope winds are, because they are discussed in fire behavior training courses and experienced often on fires. Diurnal slope winds are caused by warming of mountain slopes by daytime sunlight or cooling by nocturnal radiation (that is, radiation emitted by the \say{warm} ground that is lost to the \say{cold} sky). This heats or cools the air adjacent to the slope, causing buoyant forces that produce flow up or down the slope. During the daytime, a slope’s orientation to the sun can affect its rate of heating and, therefore, the strength of the diurnal wind. Other factors affecting the diurnal wind strength are how well solar energy is absorbed by the ground surface and transferred to the air, how cloudy it is, and how steep the slope is. +A simple model has been included in WindNinja to simulate the effects of diurnal slope winds. +It is designed to compute small scale slope winds, but not larger scale valley winds. +The slope winds will have some effect of producing valley winds, but it will be slight. +Also, the model will not simulate other buoyancy driven flows such as sea or land breezes. -A simple model has been included in WindNinja to simulate the effects of diurnal slope winds. It is designed to compute small scale slope winds, but not larger scale valley winds. The slope winds will have some effect of producing valley winds, but it will be slight. Also, the model will not simulate other buoyancy driven flows such as sea or land breezes. - -Use of the diurnal wind model in WindNinja adds additional input requirements. Most of these inputs (date, time, latitude/longitude, etc.) are the result of having to compute the solar angle at locations across the terrain. +Use of the diurnal wind model in WindNinja adds additional input requirements. +Most of these inputs (date, time, latitude/longitude, etc.) are the result of having to compute the solar angle at locations across the terrain. \section*{What Does the Non-neutral Stability Model Do?} -Atmospheric stability is a measure of the resistance of the atmosphere to vertical motion. This is caused by varying air density with height above the ground. Atmospheric stability can have a dramatic impact on surface wind flow. In a very stable atmosphere, flow approaching a mountain would likely tend to flow around the sides rather than over the mountain. In an unstable atmosphere, the flow might tend to go over the mountain. This is a simplified description of what can be a fairly complex phenomena. Some examples of the complexities of reality are: 1) in certain stable flow conditions wave and breaking-wave structures can form near terrain, 2) the atmospheric stability can change with height in the atmosphere, 3) some conditions can generate severe downslope wind conditions. +Atmospheric stability is a measure of the resistance of the atmosphere to vertical motion. +This is caused by varying air density with height above the ground. +Atmospheric stability can have a dramatic impact on surface wind flow. +In a very stable atmosphere, flow approaching a mountain would likely tend to flow around the sides rather than over the mountain. +In an unstable atmosphere, the flow might tend to go over the mountain. This is a simplified description of what can be a fairly complex phenomena. +Some examples of the complexities of reality are: 1) in certain stable flow conditions wave and breaking-wave structures can form near terrain, 2) the atmospheric stability can change with height in the atmosphere, 3) some conditions can generate severe downslope wind conditions. -WindNinja has a simple model to include some of the simple aspects of non-neutral stability flows. It can be easily turned on and requires few additional inputs from the user. The current model calculates the surface heat flux to approximate the atmospheric stability. Future models will likely use additional information to get a better picture of the state of the atmosphere (mesoscale weather models, etc.). For this reason, the non-neutral stability model is considered in a beta test phase at this point. The current model will approximately simulate non-neutral flows, but not the complex situations mentioned above. +WindNinja has a simple model to include some of the simple aspects of non-neutral stability flows. +It can be easily turned on and requires few additional inputs from the user. +The current model calculates the surface heat flux to approximate the atmospheric stability. +Future models will likely use additional information to get a better picture of the state of the atmosphere (mesoscale weather models, etc.). +For this reason, the non-neutral stability model is considered in a beta test phase at this point. +The current model will approximately simulate non-neutral flows, but not the complex situations mentioned above. \section{Getting Started} @@ -74,21 +96,30 @@ \section{Getting Started} \section{Input} \subsection{Surface Input} -\textbf{\color{red} In the navigation tree, left-click on \say{Surface Input}.} - +\textbf{\color{red}In the navigation tree, left-click on \say{Surface Input}.} -\textbf{\color{red} In the input panel below, left-click on the \say{Open Elevation File} button. In the window that opens, navigate to and select your elevation file. Optionally, you could left-click on the \say{Download File} button to download a file from a USGS server as described in \href{https://weather.firelab.org/windninja/tutorials/fetch_dem_instructions.pdf}{download\_elevation\_file.pdf}.} +\textbf{\color{red}In the input panel below, left-click on the \say{Open Elevation File} button. +In the window that opens, navigate to and select your elevation file. +Optionally, you could left-click on the \say{Download File} button to download a file from a USGS server as described in \href{https://weather.firelab.org/windninja/tutorials/fetch_dem_instructions.pdf}{download\_elevation\_file.pdf}.} -\textbf{\color{red} Select the dominant vegetation type using the \say{Vegetation} drop down list. If your elevation file was a FARSITE landscape file, this drop-down box will be grayed out, since the vegetation information is obtained from the landscape file. In this case, you do not need to select a vegetation type.} +\textbf{\color{red}Select the dominant vegetation type using the \say{Vegetation} drop down list. +If your elevation file was a FARSITE landscape file, this drop-down box will be grayed out, since the vegetation information is obtained from the landscape file. +In this case, you do not need to select a vegetation type.} -\textbf{\color{red} -Select your desired mesh resolution using the \say{Mesh Resolution} drop-down list.} +\textbf{\color{red}Select your desired mesh resolution using the \say{Mesh Resolution} drop-down list.} -For diurnal calculations, WindNinja needs time information to compute the sun angle. Near the bottom of the surface input panel is an area to enter time zone information. You will enter the \textit{actual time of day} for the simulation later. By default, only time zones in the United States are shown. To see all the available time zones in the world, you can check the \say{Show All Zones} check box. To view information about a selected time zone, check the \say{Display time zone detail} check box. Beginning with WindNinja 2.1, the determination of daylight savings or standard time is automatically handled based on the selected time zone and the date and time of the simulation. +For diurnal calculations, WindNinja needs time information to compute the sun angle. +Near the bottom of the surface input panel is an area to enter time zone information. +You will enter the \textit{actual time of day} for the simulation later. +By default, only time zones in the United States are shown. +To see all the available time zones in the world, you can check the \say{Show All Zones} check box. +To view information about a selected time zone, check the \say{Display time zone detail} check box. +Beginning with WindNinja 2.1, the determination of daylight savings or standard time is automatically handled based on the selected time zone and the date and time of the simulation. \textbf{\color{red} Select the timezone that the elevation file is located in.} -If your elevation file spans two time zones, you could choose either one. All output times will then be relative to the chosen time zone. +If your elevation file spans two time zones, you could choose either one. +All output times will then be relative to the chosen time zone. \subsection{Diurnal Input} @@ -97,7 +128,7 @@ \subsection{Diurnal Input} \begin{figure}[H] \centering \label{} - \includegraphics[scale=1.0]{imgs/diurnal_layout_1.png} + \includegraphics[scale=0.5]{thermalparameterization1.png} \end{figure} \subsection{Stability Input} @@ -107,12 +138,13 @@ \subsection{Stability Input} \begin{figure}[H] \centering \label{} - \includegraphics[scale=1.0]{imgs/stability_layout_1.png} + \includegraphics[scale=0.5]{thermalparameterization2.png} \end{figure} \subsection{Wind Input} -\textbf{\color{red} Under \say{Wind Input} in the navigation tree, left-click on \say{Domain Average Wind}. In the input panel below, check the \say{Domain Average Wind} check box to activate domain average wind initialization.} +\textbf{\color{red} Under \say{Wind Input} in the navigation tree, left-click on \say{Domain Average Wind}. +In the input panel below, check the \say{Domain Average Wind} check box to activate domain average wind initialization.} \textbf{\color{red} In the input panel, select your input wind height using the \say{Input Wind Height} drop down list.} @@ -124,23 +156,36 @@ \subsubsection{2.4.1. Entering Speed, Direction, and Additional Diurnal Inputs} \begin{figure}[H] \centering \label{} - \includegraphics[scale=1.0]{imgs/domain_avg_1.png} + \includegraphics[scale=0.50]{thermalparameterization3.png} \end{figure} -These new input fields are “Time”, “Date”, “Cloud Cover”, and “Air Temp.” The time should be specified in military time (24 hour format rather than 12 hour format). A pop up calendar for entering the date can be accessed by left-clicking on the drop-down arrow on the right side of the date text box. Cloud cover is the percent cloud cover (0-100\%). A high percent cloud cover has the effect of reducing the diurnal wind speeds, day and night, by reducing radiant heat transfer between the sky and ground. It will also tend to produce an atmosphere closer to neutral stability. The air temperature is the average air temperature over the simulation area. Since the resulting diurnal winds are not very sensitive to the air temperature value, a value within $10^{\circ} - 15^{\circ}$ F of actual should be OK. +These new input fields are “Time”, “Date”, “Cloud Cover”, and “Air Temp.” +The time should be specified in military time (24 hour format rather than 12 hour format). +A pop up calendar for entering the date can be accessed by left-clicking on the drop-down arrow on the right side of the date text box. Cloud cover is the percent cloud cover (0-100\%). A high percent cloud cover has the effect of reducing the diurnal wind speeds, day and night, by reducing radiant heat transfer between the sky and ground. It will also tend to produce an atmosphere closer to neutral stability. The air temperature is the average air temperature over the simulation area. Since the resulting diurnal winds are not very sensitive to the air temperature value, a value within $10^{\circ} - 15^{\circ}$ F of actual should be OK. -The domain average wind speed and direction will also need to be specified. These are the same winds that were entered in \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics}. During the wind computation, these winds will be combined with the diurnal winds to produce the final wind field. Output of simulations done with light domain average winds (say 1-5 mph) will show significant effect of the diurnal winds. Strong domain average wind cases will not show much diurnal effect because they are overpowered. Note, however, that including diurnal winds in the simulation usually does not noticeably increase the solve time, so it is usually recommended for all simulations. The general effect of the stability calculations will be more flow \textit{around} terrain features at night (stable atmosphere) and over terrain features during the day (unstable atmosphere). +The domain average wind speed and direction will also need to be specified. +These are the same winds that were entered in \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics}. +During the wind computation, these winds will be combined with the diurnal winds to produce the final wind field. +Output of simulations done with light domain average winds (say 1-5 mph) will show significant effect of the diurnal winds. +Strong domain average wind cases will not show much diurnal effect because they are overpowered. +Note, however, that including diurnal winds in the simulation usually does not noticeably increase the solve time, so it is usually recommended for all simulations. +The general effect of the stability calculations will be more flow \textit{around} terrain features at night (stable atmosphere) and over terrain features during the day (unstable atmosphere). \section{Output} -The same output files are written for diurnal and non-neutral stability simulations as non-diurnal simulations (Google Earth, Fire Behavior, Shape files, VTK files). The only difference is in the output file naming convention. Diurnal simulations also include the date and time in the filename. You may want to review the different output file types in \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics} before continuing. +The same output files are written for diurnal and non-neutral stability simulations as non-diurnal simulations (Google Earth, Fire Behavior, Shape files, VTK files). +The only difference is in the output file naming convention. +Diurnal simulations also include the date and time in the filename. +You may want to review the different output file types in \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics} before continuing. -The image below is an example of the output file naming convention from a diurnal WindNinja run (color added for clarity). The run used an ASCII Raster elevation file called “south\_canyon.asc”, an input direction of 270 degrees, input speed of 5 mph, date of 7/6/1994, time of 1200 local time, and an output file resolution of 200 meters. The asterisk (*) at the end indicates that a file name extension would be here and would depend on exactly what type of output file this was (Google Earth would be “.kmz”, etc.). +The image below is an example of the output file naming convention from a diurnal WindNinja run (color added for clarity). +The run used an ASCII Raster elevation file called “south\_canyon.asc”, an input direction of 270 degrees, input speed of 5 mph, date of 7/6/1994, time of 1200 local time, and an output file resolution of 200 meters. +The asterisk (*) at the end indicates that a file name extension would be here and would depend on exactly what type of output file this was (Google Earth would be “.kmz”, etc.). \begin{figure}[H] \centering \label{} - \includegraphics[scale=1.0]{imgs/colored_file_info_1.png} + \includegraphics[scale=0.9]{thermalparameterization4.png} \end{figure} \textbf{\color{red}In the navigation tree, left-click on “Output” and select the “Output Height”, “Output Speed Units”, and “Clip output by” values you want.} diff --git a/doc/tutorials/tutorial_2/imgs/title_fig.jpg b/doc/tutorials/tutorial_2/images/thermalparameterization0.jpg similarity index 100% rename from doc/tutorials/tutorial_2/imgs/title_fig.jpg rename to doc/tutorials/tutorial_2/images/thermalparameterization0.jpg diff --git a/doc/tutorials/tutorial_2/images/thermalparameterization1.png b/doc/tutorials/tutorial_2/images/thermalparameterization1.png new file mode 100644 index 000000000..190a0b149 Binary files /dev/null and b/doc/tutorials/tutorial_2/images/thermalparameterization1.png differ diff --git a/doc/tutorials/tutorial_2/images/thermalparameterization2.png b/doc/tutorials/tutorial_2/images/thermalparameterization2.png new file mode 100644 index 000000000..dd9009ec9 Binary files /dev/null and b/doc/tutorials/tutorial_2/images/thermalparameterization2.png differ diff --git a/doc/tutorials/tutorial_2/images/thermalparameterization3.png b/doc/tutorials/tutorial_2/images/thermalparameterization3.png new file mode 100644 index 000000000..9cc643988 Binary files /dev/null and b/doc/tutorials/tutorial_2/images/thermalparameterization3.png differ diff --git a/doc/tutorials/tutorial_2/imgs/colored_file_info_1.png b/doc/tutorials/tutorial_2/images/thermalparameterization4.png similarity index 100% rename from doc/tutorials/tutorial_2/imgs/colored_file_info_1.png rename to doc/tutorials/tutorial_2/images/thermalparameterization4.png diff --git a/doc/tutorials/tutorial_2/imgs/diurnal_layout_1.png b/doc/tutorials/tutorial_2/imgs/diurnal_layout_1.png deleted file mode 100644 index 21cd192d0..000000000 Binary files a/doc/tutorials/tutorial_2/imgs/diurnal_layout_1.png and /dev/null differ diff --git a/doc/tutorials/tutorial_2/imgs/domain_avg_1.png b/doc/tutorials/tutorial_2/imgs/domain_avg_1.png deleted file mode 100644 index b6c17d3ac..000000000 Binary files a/doc/tutorials/tutorial_2/imgs/domain_avg_1.png and /dev/null differ diff --git a/doc/tutorials/tutorial_2/imgs/stability_layout_1.png b/doc/tutorials/tutorial_2/imgs/stability_layout_1.png deleted file mode 100644 index f1a3c99c8..000000000 Binary files a/doc/tutorials/tutorial_2/imgs/stability_layout_1.png and /dev/null differ diff --git a/doc/tutorials/WindNinja_tutorial3.pdf b/doc/tutorials/tutorial_3/WindNinja_tutorial3.pdf similarity index 68% rename from doc/tutorials/WindNinja_tutorial3.pdf rename to doc/tutorials/tutorial_3/WindNinja_tutorial3.pdf index d1c01437e..3af63cc71 100644 Binary files a/doc/tutorials/WindNinja_tutorial3.pdf and b/doc/tutorials/tutorial_3/WindNinja_tutorial3.pdf differ diff --git a/doc/tutorials/tutorial_3/WindNinja_tutorial3.tex b/doc/tutorials/tutorial_3/WindNinja_tutorial3.tex index 978b12eeb..a2411f347 100644 --- a/doc/tutorials/tutorial_3/WindNinja_tutorial3.tex +++ b/doc/tutorials/tutorial_3/WindNinja_tutorial3.tex @@ -7,7 +7,7 @@ \usepackage{graphicx} \usepackage[margin=1in]{geometry} -\graphicspath{{imgs/}} +\graphicspath{{images/}} \usepackage[utf8]{inputenc} \usepackage[english]{babel} @@ -27,12 +27,13 @@ \usepackage{pdflscape} \usepackage{fancyhdr} + \pagestyle{fancy} \fancyhf{} \rhead{WindNinja Tutorial 3: Point Initialization} \cfoot{\thepage} -\newcommand\vn{3.6.0} +\newcommand\vn{4.0.0} \begin{document} \begin{titlepage} @@ -41,7 +42,7 @@ WindNinja Tutorial 3: Point Initialization } \vfill - \includegraphics[scale=0.35] {title_fig} + \includegraphics[scale=0.35]{point0} \vfill {\Huge 1/15/2024%Date Last Edited @@ -50,49 +51,75 @@ \end{titlepage} \section*{Introduction} -Welcome to \textbf{WindNinja Tutorial 3: Point Initialization}. This tutorial will step you through the process of downloading weather station data and running a WindNinja simulation that is initialized by location specific wind information. Note that the point initialization option is not currently available for use with the momentum solver. This tutorial assumes you have already gone through \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics} and \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial2.pdf}{WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stability}, and that you have a working Internet connection. After this tutorial, you should feel comfortable using data from weather stations or other observations to initialize your WindNinja runs. +Welcome to \textbf{WindNinja Tutorial 3: Point Initialization}. +This tutorial will step you through the process of downloading weather station data and running a WindNinja simulation that is initialized by location specific wind information. +Note that the point initialization option is not currently available for use with the momentum solver. +This tutorial assumes you have already gone through \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics} and \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial2.pdf}{WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stability}, and that you have a working Internet connection. +After this tutorial, you should feel comfortable using data from weather stations or other observations to initialize your WindNinja runs. -Note: All required user actions in this tutorial are shown in \textbf{\color{red}red}. +Note: All required user actions in this tutorial are shown in \textbf{\color{red}red}. \section*{What is point initialization?} -The point initialization technique in WindNinja allows users to provide input values of wind speed, direction, cloud cover, etc. at specified location(s) on the landscape. This information is used to drive the simulation, and the final output wind fields will match your inputs at these locations. Typically, the input information comes from observations at weather stations such as Remote Automated Weather Stations (RAWS) and Automated Airport Weather Stations (ASOS) or from manual measurements done on wildland fires. But other possibilities exist, and users could even use this method to “craft” their own wind fields. For readability, this tutorial (and WindNinja) will call these locations “weather stations”, although, as mentioned, they don't necessarily have to be actual weather stations. You can have as many weather stations as you like, and the stations are not even constrained to be located in the modeling domain. RAWS and ASOS data can be downloaded from MesoWest using a built-in interface. WindNinja accesses the data through the \href{https://synopticlabs.org/api/mesonet/}{Mesonet API} from Synoptic Labs and the MesoWest Research Group. +The point initialization technique in WindNinja allows users to provide input values of wind speed, direction, cloud cover, etc. at specified location(s) on the landscape. +This information is used to drive the simulation, and the final output wind fields will match your inputs at these locations. +Typically, the input information comes from observations at weather stations such as Remote Automated Weather Stations (RAWS) and Automated Airport Weather Stations (ASOS) or from manual measurements done on wildland fires. +But other possibilities exist, and users could even use this method to “craft” their own wind fields. +For readability, this tutorial (and WindNinja) will call these locations “weather stations”, although, as mentioned, they don't necessarily have to be actual weather stations. +You can have as many weather stations as you like, and the stations are not even constrained to be located in the modeling domain. +RAWS and ASOS data can be downloaded from Synoptic using a built-in interface. +WindNinja accesses the data through the \href{https://synopticlabs.org/api/mesonet/}{Mesonet API} from Synoptic Labs and the Synoptic Research Group. \section*{How does point initialization work?} -The first step is to acquire weather station data. Weather station files can be manually constructed (See Section 5), or can be downloaded using the built-in interface. This interface automatically fetches weather data for use in WindNinja simulations. The downloaded data includes all relevant weather data to run a simulation. - -The most recent reported time can be downloaded or a time range can be downloaded. In the case of a time range, WindNinja must perform time interpolation since each weather station may report weather at a different time. The user must set the simulation start and stop times and the number of time steps, and WindNinja will interpolate the weather data to these simulation time steps. WindNinja then runs each step as an individual simulation. - -For each simulation, WindNinja reads in all of your weather stations and fills the simulation domain horizontally using an inverse distance interpolation method. There is a user controlled parameter that allows users to control the radius of influence of each station, if desired. Then the domain is filled vertically using a vertical wind profile. Next, diurnal winds are added to this wind field if they are enabled. Finally, the WindNinja mass-conservation solver is run, including non-neutral stability effects if that option is turned on. Internally in WindNinja, if this solver was only run once, the resulting wind field would not necessarily match the “measured” wind values at the weather stations anymore (since the winds have been adjusted everywhere to conserve mass). So instead, WindNinja runs in an iterative way. After one solver run is finished, WindNinja checks the new wind field to see how close it is to the “measured” values. If it isn't close enough (less than 0.1 m/s difference), WindNinja slightly adjusts the weather station values and does a new run (i.e., horizontally interpolate, fill vertically, add diurnal, run mass-conservation solver). This process is repeated until the solved wind field is within 0.1 m/s of the measured values at every weather station. This is all done automatically by WindNinja, so this process is transparent to the user. +The first step is to acquire weather station data. +Weather station files can be manually constructed (See Section 5), or can be downloaded using the built-in interface. +This interface automatically fetches weather data for use in WindNinja simulations. +The downloaded data includes all relevant weather data to run a simulation. +The most recent reported time can be downloaded or a time range can be downloaded. +In the case of a time range, WindNinja must perform time interpolation since each weather station may report weather at a different time. +The user must set the simulation start and stop times and the number of time steps, and WindNinja will interpolate the weather data to these simulation time steps. +WindNinja then runs each step as an individual simulation. +For each simulation, WindNinja reads in all of your weather stations and fills the simulation domain horizontally using an inverse distance interpolation method. +There is a user controlled parameter that allows users to control the radius of influence of each station, if desired. +Then the domain is filled vertically using a vertical wind profile. Next, diurnal winds are added to this wind field if they are enabled. +Finally, the WindNinja mass-conservation solver is run, including non-neutral stability effects if that option is turned on. +Internally in WindNinja, if this solver was only run once, the resulting wind field would not necessarily match the “measured” wind values at the weather stations anymore (since the winds have been adjusted everywhere to conserve mass). +So instead, WindNinja runs in an iterative way. +After one solver run is finished, WindNinja checks the new wind field to see how close it is to the “measured” values. +If it isn't close enough (less than 0.1 m/s difference), WindNinja slightly adjusts the weather station values and does a new run (i.e., horizontally interpolate, fill vertically, add diurnal, run mass-conservation solver). +This process is repeated until the solved wind field is within 0.1 m/s of the measured values at every weather station. +This is all done automatically by WindNinja, so this process is transparent to the user. \section{Getting Started} - -\textbf{\color{red}Windows: Start WindNinja on by going to Start $\Rightarrow$ Programs $\Rightarrow$ WindNinja \vn\ $\Rightarrow$ WindNinja \vn\ } +\textbf{\color{red}Windows: Start WindNinja on by going to Start $\Rightarrow$ Programs $\Rightarrow$ WindNinja \vn\ $\Rightarrow$ WindNinja \vn\ } \textbf{\color{red}Linux: Start WindNinja by running the command 'WindNinja' in the terminal } - \section{Input} \subsection{Surface Input} \textbf{\color{red}In the navigation tree, left-click on “Surface Input”.} -\textbf{\color{red} -In the input panel, load an elevation file or download one.} +\textbf{\color{red}In the input panel, load an elevation file or download one.} -If you are just practicing, you can use an elevation file provided in the WindNinja installation. They can be found by going to Start WindNinja by going to Start $\Rightarrow$ Programs $\Rightarrow$ WindNinja \vn\ $\Rightarrow$ WindNinja \vn\ $\Rightarrow$Example Files In the file browser that opens, you will see the elevation file called “missoula\_valley.tif”. +If you are just practicing, you can use an elevation file provided in the WindNinja installation. +They can be found by going to Start $\Rightarrow$ Programs $\Rightarrow$ WindNinja \vn\ $\Rightarrow$ WindNinja \vn\ $\Rightarrow$Example Files. +In the file browser that opens, you will see the elevation file called “missoula\_valley.tif”. -If you are using Linux, this tif file is located in the data subdirectory of your WindNinja installation. The path to this file will be .../windninja/data, where '...' represents the path to your WindNinja installation +If you are using Linux, this tif file is located in the data subdirectory of your WindNinja installation. +The path to this file will be .../windninja/data, where '...' represents the path to your WindNinja installation \textbf{\color{red}Select the dominant vegetation type, mesh resolution, and time zone.} \subsection{Diurnal Input} -Local diurnal slope winds can optionally be included in a point initialization run. It is normally recommended that diurnal winds be used since it adds more realism to the simulation and increases the simulation time only slightly. +Local diurnal slope winds can optionally be included in a point initialization run. +It is normally recommended that diurnal winds be used since it adds more realism to the simulation and increases the simulation time only slightly. \subsection{Stability Input} -The stability model can optionally be turned on to simulate an atmosphere that is not necessarily neutrally stable. For this tutorial we will not turn on this model, so leave the “Use Stability” check box unchecked. +The stability model can optionally be turned on to simulate an atmosphere that is not necessarily neutrally stable. +For this tutorial we will not turn on this model, so leave the “Use Stability” check box unchecked. \subsection{Wind Input} \subsubsection{Downloading Weather Stations} @@ -101,86 +128,98 @@ \subsubsection{Downloading Weather Stations} Weather station data can be acquired by opening the station downloader. -\textbf{\color{red}Left-click on “Download data” to open the station downloader window.} +\textbf{\color{red}Left-click on “Download data” to open the station download page.} -There are two options available for specifying which weather stations to download. The first option is to download all weather stations within the DEM. A buffer can also be set to download stations just outside the DEM. Alternatively, specific weather stations may be downloaded by entering their station IDs by selecting “Download by Station ID”. +There are two options available for specifying which weather stations to download. +The first option is to download all weather stations within the DEM. +A buffer can also be set to download stations just outside the DEM. +Alternatively, specific weather stations may be downloaded by entering their station IDs by selecting “Download by Station ID”. -Next, you must specify to time period to download data for. Here you can either download the most recent weather data (one time step), or you can download all available weather data between two date/times. +Next, you must specify to time period to download data for. +Here you can either download the most recent weather data (one time step), or you can download all available weather data between two date/times. -WindNinja has some limitations to the amount of data that can be downloaded at one time. This is in place to reduce the load on the server holding the data. Currently, users are limited to stations within 100 miles of their DEM and up to 1 year of data. For most users, these limits are not restrictive, but in case they are see Section 6 for details on how to relieve the limits. +WindNinja has some limitations to the amount of data that can be downloaded at one time. +This is in place to reduce the load on the server holding the data. +Currently, users are limited to stations within 100 miles of their DEM and up to 1 year of data. +For most users, these limits are not restrictive, but in case they are see Section 6 for details on how to relieve the limits. The download times are typically very fast, but will depend on the number of stations and time range selected. -\textbf{\color{red}For this tutorial, we will download data using the options “Download from DEM” and “Download Between Two Dates”. Using the Drop-down menu on the right, change the option from “Download Most Recent Data” to Download Between Two Dates”. Your screen should look similar to this:} +\textbf{\color{red}For this tutorial, we will download data using the options “Download from DEM” and “Download Between Two Dates”. Using the second Drop-down menu, change the option from “Download Most Recent Data” to Download Between Two Dates”. Your screen should look similar to this:} \begin{figure}[H] \centering \label{} - \includegraphics[scale=1.0]{SF-1-2} + \includegraphics[scale=0.35]{point1} \end{figure} -The start and stop time may be edited to change the range over which data is downloaded. The default is to download data from right now to 24 hours ago at this time. For this tutorial, we will use the defaults. - -\textbf{\color{red}Click “Download Data” to download the station data. A pop-up progress bar will display the status of the download. When this is complete, click “close” and exit the Station Downloader.} +The start and stop time may be edited to change the range over which data is downloaded. +The default is to download data from right now to 24 hours ago at this time. +For this tutorial, we will use the defaults. -\begin{figure}[H] - \centering - \label{} - \includegraphics[scale=1.0]{Download-3} -\end{figure} +\textbf{\color{red}Click “Download Data” to download the station data. A pop-up progress bar will display the status of the download. When this is complete, the window will close, and the page will be redirected back to Point Initialization.} \subsection{Selecting Weather Stations} -Once your download is finished and you exit the station downloader, a new folder beginning with “WXSTATIONS”, will appear in the main panel under “Select Weather Stations”. All of your downloaded weather stations will appear in this panel. You can download multiple weather stations and they will be added to this list. This weather stations panel is an expandable tree structure showing the files and folders that are valid for point initialization runs. You can expand these folders to select the .csv weather station files. Note that all times in the point initialization tab are based on the surface input time zone unless otherwise specified. +Once your download is finished and you exit the station downloader, a new folder beginning with “WXSTATIONS”, will appear in the main panel under “Select Weather Stations”. +All of your downloaded weather stations will appear in this panel. +You can download multiple weather stations and they will be added to this list. +This weather stations panel is an expandable tree structure showing the files and folders that are valid for point initialization runs. +You can expand these folders to select the .csv weather station files. +Note that all times in the point initialization tab are based on the surface input time zone unless otherwise specified. -If you generate your own weather station files, or acquire them from other sources, these can also be selected. To use these files, place them in the same directory as your DEM and WindNinja will automatically detect, and make them selectable in the weather stations panel. +If you generate your own weather station files, or acquire them from other sources, these can also be selected. +To use these files, place them in the same directory as your DEM and WindNinja will automatically detect, and make them selectable in the weather stations panel. The folder name containing the downloaded weather stations follows a specific format. For example: \begin{figure}[H] \centering \label{} - \includegraphics[scale=0.45]{FolderDiag_1} + \includegraphics[scale=0.45]{point2} \end{figure} -\begin{note} -\textcolor{red}{\textbf{NOTE: WindNinja no longer includes a timezone code as part of the file naming convention. \\ \\This file would now be named -\texttt{WXSTATIONS-2018-06-21-1339-2018-06-22-1339-missoula\_valley}}} -\end{note} - +\textbf{\color{red}NOTE: WindNinja no longer includes a timezone code as part of the file naming convention.} +\textbf{\color{red}This file would now be named WXSTATIONS-2018-06-21-1339-2018-06-22-1339-missoula\_valley.} All of the weather station files are stored in this folder. Each file inside the folder is a unique weather station, and naming follows a similar naming format. For example: \begin{figure}[H] \centering \label{} - \includegraphics[scale=0.45]{FileDiag_1} + \includegraphics[scale=0.45]{point3} \end{figure} -\begin{note} -\textcolor{red}{\textbf{ This file would now be named -\texttt{PNTM8-2018-06-21\_1339-2018-22\_1339-2.csv}}} -\end{note} +\textbf{\color{red}NOTE: This file would now be named PNTM8-2018-06-21\_1339-2018-22\_1339-2.csv} \textbf{\color{red}\\ \\Select the desired weather stations by left clicking \underline{each} file you want to use.} \begin{figure}[H] \centering \label{} - \includegraphics[scale=1.0]{PI-Select-Blue_1} + \includegraphics[scale=0.35]{point4} \end{figure} -Note that there are several different types of weather station file formats that are valid for point initialization runs, however they are incompatible with each other. +Note that there are two different types of weather station file formats that are valid for point initialization runs, however they are incompatible with each other. \subsubsection{Types of Weather Stations} + \begin{enumerate} - \item \underline{Time series}: Each file is a unique weather station and these files have multiple observations per station. You can select as many time series files as long as at least some of the data overlaps with the selected simulation start and stop times. This format is the only type that supports multiple time step runs. - \item \underline{Single Step}: Each file is a unique weather station, and these files have only one time-naive observation. These files are produced by selecting the “Download Most Recent Data” option. You can select as many Single Step files as you want. These files may not be used for multiple time step runs. - \item \underline{Old Station Format}: All weather stations are contained in one file, and only work for a single time step. These files are incompatible with all other file formats, and only one file may be selected. This format is not recommended and supported only for legacy users. +\item\underline{Time series}: Each file is a unique weather station and these files have multiple observations per station. +You can select as many time series files as long as at least some of the data overlaps with the selected simulation start and stop times. +This format is the only type that supports multiple time step runs. +\item\underline{Single Step}: Each file is a unique weather station, and these files have only one time-naive observation. +These files are produced by selecting the “Download Most Recent Data” option. You can select as many Single Step files as you want. +These files may not be used for multiple time step runs. \end{enumerate} -After you select the files you would like to use, the start and stop time for the simulation are automatically populated based on the start and stop times that the weather stations have on disk. The simulation times can be manually changed by editing the start and stop time. The “Number of Time Steps” box allows you to change how many simulations you want to run between the start and stop time. These time steps are evenly spaced between the start and stop time. WindNinja will automatically suggest a number of time steps based on the number of hours between the start and stop start and stop times. For this tutorial, we will use the defaults. +After you select the files you would like to use, the start and stop time for the simulation are automatically populated based on the start and stop times that the weather stations have on disk. +The simulation times can be manually changed by editing the start and stop time. +The “Number of Time Steps” box allows you to change how many simulations you want to run between the start and stop time. +These time steps are evenly spaced between the start and stop time. +WindNinja will automatically suggest a number of time steps based on the number of hours between the start and stop start and stop times. +For this tutorial, we will use the defaults. -Note that if you choose \underline{Single Step}files, the simulation time is fixed to when the file was downloaded. \underline{Old Station Format} files require date and time input from the user. +Note that if you choose \underline{Single Step} files, the simulation time is fixed to when the file was downloaded. For your convenience, there is a button at the bottom of the input panel called “Write Station KML” that will write a Google Earth file showing the locations of the weather stations and their values. @@ -188,7 +227,8 @@ \subsubsection{Types of Weather Stations} \section{Output} -The same output files are written for point initialized simulations as for other simulations. WindNinja does a separate simulation for each time step and writes separate output files for each of these steps. +The same output files are written for point initialized simulations as for other simulations. +WindNinja does a separate simulation for each time step and writes separate output files for each of these steps. \textbf{\color{red} In the navigation tree, left-click on “Output” and select the “Output Height”, “Output Speed Units”, and “Clip output by:” values you desire.} @@ -208,22 +248,31 @@ \section{Solve} \section{Building Your Own Station Files}\label{growyourown} -Instead of downloading station files, you can make your own if you have weather information from some other source. A blank station file can be generated by selecting \textit{Tools} $\Rightarrow$ \textit{Write Blank Station File}. Each file corresponds to a single weather station and each line in the file corresponds to an observation. +Instead of downloading station files, you can make your own if you have weather information from some other source. +A blank station file can be generated by selecting \textit{Tools} $\Rightarrow$ \textit{Write Blank Station File}. +Each file corresponds to a single weather station and each line in the file corresponds to an observation. The example station file viewed in a spreadsheet program is shown in Table 1 below. -Note that the station file could also be opened and edited in a simple text editor such as WordPad or NotePad, but it is more convenient and less error prone in a spreadsheet program. Also be aware that in a text editor it doesn't look exactly like Table 1, instead there will be commas separating each field. +Note that the station file could also be opened and edited in a simple text editor such as WordPad or NotePad, but it is more convenient and less error prone in a spreadsheet program. +Also be aware that in a text editor it doesn't look exactly like Table 1, instead there will be commas separating each field. -Several sample weather stations have been included with your installation. In the WindNinja example files, locate folders called WXSTATIONS-2018-06-25-1237-missoula\_valley (a single step set of weather stations) and WXSTATIONS-MDT-2018-06-20-2128-2018-06-21-2128-missoula\_valley (a time series set of weather stations). The format of each of these files looks similar to the example file below. +Several sample weather stations have been included with your installation. +In the WindNinja example files, locate folders called WXSTATIONS-2018-06-25-1237-missoula\_valley (a single step set of weather stations) and WXSTATIONS-MDT-2018-06-20-2128-2018-06-21-2128-missoula\_valley (a time series set of weather stations). +The format of each of these files looks similar to the example file below. \begin{landscape} \begin{figure}[H] \centering \label{} - \includegraphics[scale=0.9]{Table-1} + \includegraphics[scale=0.9]{point5} \end{figure} \end{landscape} -The format of a station file is that the first row is a header that tells you what goes in the corresponding columns. The header fields may contain a textual description of the column, units information, and/or a list of valid values. Every row below the header row represents a measurement for the weather station (ie. each row is a different date/time). A short description of each column is given below. + +The format of a station file is that the first row is a header that tells you what goes in the corresponding columns. +The header fields may contain a textual description of the column, units information, and/or a list of valid values. +Every row below the header row represents a measurement for the weather station (ie. each row is a different date/time). +A short description of each column is given below. \textbf{Station\_Name} @@ -231,11 +280,22 @@ \section{Building Your Own Station Files}\label{growyourown} \textbf{Coord\_Sys} -This is the coordinate system that you will be specifying the location of the station in (later). The two possible choices are “PROJCS” and “GEOGCS”. PROJCS stands for “projected coordinate system”. If you use this, you will specify the location of the station in x,y coordinates in meters. The projection you are actually using is the one that the elevation file is in (for example, UTM, Albers, etc.). This might be useful if you are viewing your elevation file and locating the weather stations in a GIS, since the GIS probably outputs locations in the elevation file's projected coordinate system. The other choice, GEOGCS, stands for “geographic coordinate system” or, in other words, latitude and longitude. So if you want to specify the location of the station in latitude and longitude, use GEOGCS. This would be useful if you knew the latitude/longitude of the weather station or had coordinates from a GPS or were using something like Google Earth to determine where the station will be (since the default in Google Earth is to output position in latitude/longitude). Stations downloaded through WindNinja use GEOGCS. +This is the coordinate system that you will be specifying the location of the station in (later). +The two possible choices are “PROJCS” and “GEOGCS”. PROJCS stands for “projected coordinate system”. +If you use this, you will specify the location of the station in x,y coordinates in meters. +The projection you are actually using is the one that the elevation file is in (for example, UTM, Albers, etc.). +This might be useful if you are viewing your elevation file and locating the weather stations in a GIS, since the GIS probably outputs locations in the elevation file's projected coordinate system. +The other choice, GEOGCS, stands for “geographic coordinate system” or, in other words, latitude and longitude. +So if you want to specify the location of the station in latitude and longitude, use GEOGCS. +This would be useful if you knew the latitude/longitude of the weather station or had coordinates from a GPS or were using something like Google Earth to determine where the station will be (since the default in Google Earth is to output position in latitude/longitude). +Stations downloaded through WindNinja use GEOGCS. \textbf{Datum} -This is the datum that will be used for specifying the location of your weather station. The possible choices are “WGS84”, “NAD83”, or “NAD27”. Note that if you specified PROJCS in the last column for \textbf{Coord\_Sys}, then the datum defined by the elevation file will also be used automatically by WindNinja, so in that case it doesn't matter what you choose (but you need to put something here as a place holder). Also note that if you are using Google Earth to obtain the lat/long of a weather station, Google Earth uses “WGS84”. +This is the datum that will be used for specifying the location of your weather station. +The possible choices are “WGS84”, “NAD83”, or “NAD27”. +Note that if you specified PROJCS in the last column for \textbf{Coord\_Sys}, then the datum defined by the elevation file will also be used automatically by WindNinja, so in that case it doesn't matter what you choose (but you need to put something here as a place holder). +Also note that if you are using Google Earth to obtain the lat/long of a weather station, Google Earth uses “WGS84”. \textbf{Lat/YCoord} @@ -247,11 +307,14 @@ \section{Building Your Own Station Files}\label{growyourown} \textbf{Height} -This is the height of the measured wind above the surrounding vegetation (measured as the distance above the vegetation, not necessarily above the ground). Typically this might be 20 feet or 10 meters. Airport (ASOS) stations measure wind speed at 10 m (~32ft) , permanent RAWS typically report wind speed at 20 ft (~6 m), and Incident RAWS (IRAWS) typically report wind speed at 6 ft (~2 m). +This is the height of the measured wind above the surrounding vegetation (measured as the distance above the vegetation, not necessarily above the ground). +Typically this might be 20 feet or 10 meters. +Airport (ASOS) stations measure wind speed at 10 m (~32ft) , permanent RAWS typically report wind speed at 20 ft (~6 m), and Incident RAWS (IRAWS) typically report wind speed at 6 ft (~2 m). \textbf{Height\_Units} -The units your height is measured in. Valid choices are “meters” or “feet”. +The units your height is measured in. +Valid choices are “meters” or “feet”. \textbf{Speed} @@ -259,54 +322,72 @@ \section{Building Your Own Station Files}\label{growyourown} \textbf{Speed\_Units} -The units of the wind speed. Valid choices are “mph”, “kph”, “m/s”, and “kts”. +The units of the wind speed. +Valid choices are “mph”, “kph”, “m/s”, and “kts”. \textbf{Direction} -This is the wind direction, using the normal meteorologic convention that it is the direction that the wind \textit{comes from}. So for example, if the wind was blowing from west to east, it would be a direction of 270. +This is the wind direction, using the normal meteorologic convention that it is the direction that the wind \textit{comes from}. +So for example, if the wind was blowing from west to east, it would be a direction of 270. \textbf{Temperature} -Air temperature at the station. This is used in the diurnal submodel. It should be noted that the simulated wind is not very sensitive to this value and anything close should be adequate. +Air temperature at the station. +This is used in the diurnal submodel. +It should be noted that the simulated wind is not very sensitive to this value and anything close should be adequate. \textbf{Temperature\_Units} -The units of temperature. Valid choices are “F” or “C”. +The units of temperature. +Valid choices are “F” or “C”. \textbf{Cloud\_Cover} -The percent cloud cover (not fractional cloud cover). The valid range is 0-100. This is used in the diurnal and non-neutral stability submodels. +The percent cloud cover (not fractional cloud cover). +The valid range is 0-100. +This is used in the diurnal and non-neutral stability submodels. \textbf{Radius\_of\_Influence} -This is an option that allows you to limit the horizontal distance that the weather station can affect. If you specify a distance less than zero, this is a special flag that tells WindNinja that this station has no imposed distance limit. Your default should be to enter a value less than zero (like “-1”) to use no distance limit for most stations. An actual distance limit could be used if you think your weather station is being influenced by local factors and doesn't represent the larger scale wind well. This might be the case if the station was located in the lee wind area of a mountain where the measured wind was affected by the mountain's wake. Note that you must have at least one weather station without a distance limit (value less than zero) so that the whole simulation domain will be filled with initial wind values. +This is an option that allows you to limit the horizontal distance that the weather station can affect. +If you specify a distance less than zero, this is a special flag that tells WindNinja that this station has no imposed distance limit. +Your default should be to enter a value less than zero (like “-1”) to use no distance limit for most stations. +An actual distance limit could be used if you think your weather station is being influenced by local factors and doesn't represent the larger scale wind well. +This might be the case if the station was located in the lee wind area of a mountain where the measured wind was affected by the mountain's wake. +Note that you must have at least one weather station without a distance limit (value less than zero) so that the whole simulation domain will be filled with initial wind values. \textbf{Radius\_of\_Influence\_Units} -The distance units of the radius of influence. Valid choices are “feet”, “miles”, “meters”, and “km”. +The distance units of the radius of influence. +Valid choices are “feet”, “miles”, “meters”, and “km”. \textbf{date\_time} -The observation date and time stored in UTC. Format: \texttt{YYYY-MM-DDTHH:MM:00Z}. Seconds are not supported at this time. If this is left blank, only one observation may be stored in the file, and it may not be used for multiple time step runs. +The observation date and time stored in UTC. +Format:\texttt{YYYY-MM-DDTHH:MM:00Z}. +Seconds are not supported at this time. +If this is left blank, only one observation may be stored in the file, and it may not be used for multiple time step runs. \section{Using a Custom API token} -If you want to download more data than WindNinja allows (1 year and stations within a 100 mile buffer from your DEM), you will need to specify your own \textbf{token} for the Mesonet API (this is related to the code WindNinja uses to download weather data from MesoWest). To do this, follow the instructions on \url{https://synopticlabs.org/api/mesonet/} to get an API key and \textbf{token}. +If you want to download more data than WindNinja allows (1 year and stations within a 100 mile buffer from your DEM), you will need to specify your own \textbf{token} for the Mesonet API (this is related to the code WindNinja uses to download weather data from Synoptic). +To do this, follow the instructions on \url{https://synopticlabs.org/api/mesonet/} to get an API key and \textbf{token}. -Once you have a \textbf{token}, you can specify in WindNinja via the configuration option \texttt{CUSTOM\_API\_KEY}. +Once you have a \textbf{token}, you can specify in WindNinja via the configuration option \textbf{CUSTOM\_API\_KEY}. -In the graphical user interface this is accomplished by going to Tools $\Rightarrow$ Configuration Option. In option field, type: \texttt{CUSTOM\_API\_KEY}, and insert your \textbf{token} in value field. Click OK, to finalize. +In the graphical user interface this is accomplished by going to Tools $\Rightarrow$ Configuration Option. +In option field, type: \texttt{CUSTOM\_API\_KEY}, and insert your \textbf{token} in value field. +Click OK, to finalize. \begin{figure}[H] \centering \label{} - \includegraphics[scale=1]{api-config} + \includegraphics[scale=0.35]{point6} \end{figure} This concludes \textbf{WindNinja Tutorial 3: Point Initialization} \section*{Acknowledgements} -The incorporation of weather station downloads in WindNinja was made possible in part due to the data made available by \href{https://synopticlabs.org/api/mesonet/}{MesoWest/SynopticLabs} though the Mesonet API. - +The incorporation of weather station downloads in WindNinja was made possible in part due to the data made available by \href{https://synopticlabs.org/api/mesonet/}{Synoptic} though the Mesonet API. \end{document} diff --git a/doc/tutorials/tutorial_3/imgs/Figs.pptx b/doc/tutorials/tutorial_3/images/Figs.pptx similarity index 100% rename from doc/tutorials/tutorial_3/imgs/Figs.pptx rename to doc/tutorials/tutorial_3/images/Figs.pptx diff --git a/doc/tutorials/tutorial_3/imgs/title_fig.png b/doc/tutorials/tutorial_3/images/point0.png similarity index 100% rename from doc/tutorials/tutorial_3/imgs/title_fig.png rename to doc/tutorials/tutorial_3/images/point0.png diff --git a/doc/tutorials/tutorial_3/images/point1.png b/doc/tutorials/tutorial_3/images/point1.png new file mode 100644 index 000000000..c4de9436a Binary files /dev/null and b/doc/tutorials/tutorial_3/images/point1.png differ diff --git a/doc/tutorials/tutorial_3/imgs/FileDiag_1.png b/doc/tutorials/tutorial_3/images/point2.png similarity index 100% rename from doc/tutorials/tutorial_3/imgs/FileDiag_1.png rename to doc/tutorials/tutorial_3/images/point2.png diff --git a/doc/tutorials/tutorial_3/imgs/FolderDiag_1.png b/doc/tutorials/tutorial_3/images/point3.png similarity index 100% rename from doc/tutorials/tutorial_3/imgs/FolderDiag_1.png rename to doc/tutorials/tutorial_3/images/point3.png diff --git a/doc/tutorials/tutorial_3/images/point4.png b/doc/tutorials/tutorial_3/images/point4.png new file mode 100644 index 000000000..cbf66bb52 Binary files /dev/null and b/doc/tutorials/tutorial_3/images/point4.png differ diff --git a/doc/tutorials/tutorial_3/imgs/Table-1.png b/doc/tutorials/tutorial_3/images/point5.png similarity index 100% rename from doc/tutorials/tutorial_3/imgs/Table-1.png rename to doc/tutorials/tutorial_3/images/point5.png diff --git a/doc/tutorials/tutorial_3/images/point6.png b/doc/tutorials/tutorial_3/images/point6.png new file mode 100644 index 000000000..265197842 Binary files /dev/null and b/doc/tutorials/tutorial_3/images/point6.png differ diff --git a/doc/tutorials/tutorial_3/imgs/Download-3.png b/doc/tutorials/tutorial_3/imgs/Download-3.png deleted file mode 100644 index 540572167..000000000 Binary files a/doc/tutorials/tutorial_3/imgs/Download-3.png and /dev/null differ diff --git a/doc/tutorials/tutorial_3/imgs/PI-Select-Blue_1.png b/doc/tutorials/tutorial_3/imgs/PI-Select-Blue_1.png deleted file mode 100644 index c4884f32c..000000000 Binary files a/doc/tutorials/tutorial_3/imgs/PI-Select-Blue_1.png and /dev/null differ diff --git a/doc/tutorials/tutorial_3/imgs/SF-1-2.png b/doc/tutorials/tutorial_3/imgs/SF-1-2.png deleted file mode 100644 index 56d3125d1..000000000 Binary files a/doc/tutorials/tutorial_3/imgs/SF-1-2.png and /dev/null differ diff --git a/doc/tutorials/tutorial_3/imgs/api-config.png b/doc/tutorials/tutorial_3/imgs/api-config.png deleted file mode 100644 index 522cf7cb2..000000000 Binary files a/doc/tutorials/tutorial_3/imgs/api-config.png and /dev/null differ diff --git a/doc/tutorials/WindNinja_tutorial4.pdf b/doc/tutorials/tutorial_4/WindNinja_tutorial4.pdf similarity index 87% rename from doc/tutorials/WindNinja_tutorial4.pdf rename to doc/tutorials/tutorial_4/WindNinja_tutorial4.pdf index 0f2204ae3..7029e0e12 100644 Binary files a/doc/tutorials/WindNinja_tutorial4.pdf and b/doc/tutorials/tutorial_4/WindNinja_tutorial4.pdf differ diff --git a/doc/tutorials/tutorial_4/WindNinja_tutorial4.tex b/doc/tutorials/tutorial_4/WindNinja_tutorial4.tex index 00948e662..6b49e8b48 100644 --- a/doc/tutorials/tutorial_4/WindNinja_tutorial4.tex +++ b/doc/tutorials/tutorial_4/WindNinja_tutorial4.tex @@ -9,7 +9,7 @@ \usepackage[margin=1in]{geometry} \usepackage[table,x11names]{xcolor} -\graphicspath{{imgs/}} +\graphicspath{{images/}} \usepackage[utf8]{inputenc} \usepackage[english]{babel} @@ -36,7 +36,7 @@ \rhead{WindNinja Tutorial 4: Weather Model Initialization} \cfoot{\thepage} -\newcommand\vn{3.8.0} +\newcommand\vn{4.0.0} \begin{document} \begin{titlepage} @@ -45,7 +45,7 @@ WindNinja Tutorial 4: Weather Model Initialization } \vfill - \includegraphics[scale=0.35] {title_fig} + \includegraphics[scale=0.35]{title_fig} \vfill {\Huge 7/11/2022 %Date Last Edited @@ -55,25 +55,44 @@ \section*{Introduction} -Welcome to WindNinja Tutorial 4: Weather Model Initialization. This tutorial will step you through the process of running a WindNinja simulation that is initialized by output from a weather forecast model. This tutorial assumes you have already gone through \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics} and \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial2.pdf}{WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stability}, and that you have a working Internet connection. After this tutorial, you should feel comfortable downloading weather forecast data, using this data to initialize a series of WindNinja runs, and viewing the output. +Welcome to WindNinja Tutorial 4: Weather Model Initialization. +This tutorial will step you through the process of running a WindNinja simulation that is initialized by output from a weather forecast model. +This tutorial assumes you have already gone through \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial1.pdf}{WindNinja Tutorial 1: The Basics} and \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial2.pdf}{WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stability}, and that you have a working Internet connection. +After this tutorial, you should feel comfortable downloading weather forecast data, using this data to initialize a series of WindNinja runs, and viewing the output. Note: All required user actions in this tutorial are shown in \textbf{\color{red}red}. \section*{What is weather model initialization?} -Weather forecasters traditionally use numerical weather models run on large super-computers to help guide forecasts. These weather models typically simulate large areas (continent scale) and include detailed representations of atmospheric physics such as cloud microphysics, radiant energy transfer, surface fluxes, momentum budgets, and turbulence. Unfortunately, such detailed representations come with a high computational cost and so these models cannot currently be run operationally at a fine enough resolution to capture local terrain influences. The typical horizontal resolution of these models is around 4-12 kilometers. If it is assumed that at least, say, 4 cells are required to resolve flow over a certain terrain feature, then these models can only resolve terrain features that are 16-48 kilometers in size. And so these models are capable of simulating the larger scale features of weather (fronts, sea-breeze, high and low pressure system movement, etc.) and large scale terrain features (mountain ranges), but do a poor job of capturing fine scale local influences (mechanical terrain modification, slope winds, etc.). +Weather forecasters traditionally use numerical weather models run on large super-computers to help guide forecasts. +These weather models typically simulate large areas (continent scale) and include detailed representations of atmospheric physics such as cloud microphysics, radiant energy transfer, surface fluxes, momentum budgets, and turbulence. +Unfortunately, such detailed representations come with a high computational cost and so these models cannot currently be run operationally at a fine enough resolution to capture local terrain influences. +The typical horizontal resolution of these models is around 4-12 kilometers. +If it is assumed that at least, say, 4 cells are required to resolve flow over a certain terrain feature, then these models can only resolve terrain features that are 16-48 kilometers in size. +And so these models are capable of simulating the larger scale features of weather (fronts, sea-breeze, high and low pressure system movement, etc.) and large scale terrain features (mountain ranges), but do a poor job of capturing fine scale local influences (mechanical terrain modification, slope winds, etc.). -In contrast, WindNinja was developed to simulate fine scale winds (around 100-200 meter resolution) that are dominated by mechanical terrain modification and to a lesser extent diurnal slope winds. In situations where other factors become important (larger scale processes, sea-breeze, cloud dynamics, etc.) WindNinja's accuracy can severely degrade since it does not explicitly simulate these effects. +In contrast, WindNinja was developed to simulate fine scale winds (around 100-200 meter resolution) that are dominated by mechanical terrain modification and to a lesser extent diurnal slope winds. +In situations where other factors become important (larger scale processes, sea-breeze, cloud dynamics, etc.) WindNinja's accuracy can severely degrade since it does not explicitly simulate these effects. -The “weather model initialization” feature in WindNinja is an attempt to combine the strengths of traditional coarse weather models and WindNinja into a hybrid model that can better account for the range of scales and physics involved, but at modest computational cost. The hope is that this will provide more accurate wind forecasts that are relevant to wildland fire managers. +The “weather model initialization” feature in WindNinja is an attempt to combine the strengths of traditional coarse weather models and WindNinja into a hybrid model that can better account for the range of scales and physics involved, but at modest computational cost. +The hope is that this will provide more accurate wind forecasts that are relevant to wildland fire managers. \section*{How does the weather model initialization work?} -The first step in the process is to download the latest forecast (which is automated in WindNinja and described in detail later). Currently, WindNinja only uses near surface information from the weather forecast model, but the ability to use information at all vertical levels will be added shortly. The download includes 10 meter wind speed and direction, cloud cover, and 2 meter temperature at the coarse weather model resolution for every output time step. By default, WindNinja does an individual WindNinja simulation for every output time step of the forecast. As of version 3.6.0, however, users can select specific time steps from the forecast to simulate. This can save substantial computational time if you have a forecast with many time steps in it, particualry if you are using the conservation of mass and momentum solver. For each WindNinja run, the coarse information is interpolated onto the fine WindNinja grid. Diurnal winds are then added if the diurnal model is enabled to produce the WindNinja initialized wind field. Finally, the WindNinja solver is run from this initial wind field to adjust the velocities for the local terrain, stability, and to conserve mass. The result is a fine resolution forecast of the winds for your area. +The first step in the process is to download the latest forecast (which is automated in WindNinja and described in detail later). +Currently, WindNinja only uses near surface information from the weather forecast model, but the ability to use information at all vertical levels will be added shortly. +The download includes 10 meter wind speed and direction, cloud cover, and 2 meter temperature at the coarse weather model resolution for every output time step. +By default, WindNinja does an individual WindNinja simulation for every output time step of the forecast. +As of version 3.6.0, however, users can select specific time steps from the forecast to simulate. +This can save substantial computational time if you have a forecast with many time steps in it, particualry if you are using the conservation of mass and momentum solver. +For each WindNinja run, the coarse information is interpolated onto the fine WindNinja grid. +Diurnal winds are then added if the diurnal model is enabled to produce the WindNinja initialized wind field. +Finally, the WindNinja solver is run from this initial wind field to adjust the velocities for the local terrain, stability, and to conserve mass. +The result is a fine resolution forecast of the winds for your area. \section{Getting Started} -\textbf{\color{red}Start WindNinja by going to Start $\Rightarrow$ Programs $\Rightarrow$ WindNinja \vn\ $\Rightarrow$ WindNinja \vn\ } +\textbf{\color{red}Start WindNinja by going to \texttt{Start > Programs > WindNinja \vn{} > WindNinja \vn{}}} \section{Input} \subsection{Surface Input} @@ -82,31 +101,46 @@ \subsection{Surface Input} \textbf{\color{red} In the input panel, load your existing elevation file or download one using the “Download File” button.} -If you are just practicing, you can use an elevation file provided in the WindNinja installation. They can be found by going to Start WindNinja by going to Start $\Rightarrow$ Programs $\Rightarrow$ WindNinja \vn\ $\Rightarrow$ etc $\Rightarrow$ windninja $\Rightarrow$ example-files In the file browser that opens, you will see the elevation file called “missoula\_valley.tif”, and "example\_lcp.lcp". Either of these can be used. +If you are just practicing, you can use an elevation file provided in the WindNinja installation. +They can be found by going to Start WindNinja by going to \texttt{Start > Programs > WindNinja \vn{} > etc > WindNinja > Example Files}. +In the file browser that opens, you will see the elevation file called “missoula\_valley.tif”, and "example\_lcp.lcp". +Either of these can be used. -\textbf{\color{red} Select the dominant vegetation type using the “Vegetation” drop down list. If your elevation file was a FARSITE landscape file, this drop-down box will be grayed out, since the vegetation information is obtained from the landscape file. In this case, you do not need to select a vegetation type.} +\textbf{\color{red} Select the dominant vegetation type using the “Vegetation” drop down list. +If your elevation file was a FARSITE landscape file, this drop-down box will be grayed out, since the vegetation information is obtained from the landscape file. +In this case, you do not need to select a vegetation type.} \textbf{\color{red} Select your desired mesh resolution and time zone.} \subsection{Diurnal Input} -Local diurnal slope winds can optionally be included in a weather model initialization run. It is normally recommended that diurnal winds be used since it adds more realism to the simulation but only adds a negligible amount of simulation time. +Local diurnal slope winds can optionally be included in a weather model initialization run. +It is normally recommended that diurnal winds be used since it adds more realism to the simulation but only adds a negligible amount of simulation time. \textbf{\color{red} Left-click on “Diurnal Input” in the navigation tree, then check the “Use Diurnal Wind” check box in the input panel.} \subsection{Stability Input} -\textbf{\color{red} The stability model can optionally be turned on to simulate an atmosphere that is not necessarily neutral stability. For this tutorial we will not turn on this model, so leave the “Use Stabililty” check box unchecked.} +\textbf{\color{red} The stability model can optionally be turned on to simulate an atmosphere that is not necessarily neutral stability. +For this tutorial we will not turn on this model, so leave the “Use Stabililty” check box unchecked.} \subsection{Wind Input} \subsubsection{Selecting the weather model and downloading the latest forecast} -\textbf{\color{red} Left-click on “Weather Model” in the navigation tree, which is located under “Wind Input”. In the input panel, check the “Weather Model Initialization” check box.} +\textbf{\color{red} Left-click on “Weather Model” in the navigation tree, which is located under “Wind Input”. +In the input panel, check the “Weather Model Initialization” check box.} -There are currently 30 different weather forecast model initializations to choose from in WindNinja. The models are all run by the U.S. National Oceanic and Atmospheric Administration's (NOAA) National Centers for Environmental Prediction (NCEP). WindNinja accesses these data from three different servers, the NOAA NOMADS server, the University Corporation for Atmospheric Research (UCAR) thredds server, and Google's Cloud Platform. The UCAR and NOMADS servers provide a means for a fail safe for WindNinja in case one server is down. We recommend using the NOMADS server as a first choice, as it seems to be more reliable. +There are currently 30 different weather forecast model initializations to choose from in WindNinja. +The models are all run by the U.S. National Oceanic and Atmospheric Administration's (NOAA) National Centers for Environmental Prediction (NCEP). +WindNinja accesses these data from three different servers, the NOAA NOMADS server, the University Corporation for Atmospheric Research (UCAR) thredds server, and Google's Cloud Platform. +The UCAR and NOMADS servers provide a means for a fail safe for WindNinja in case one server is down. +We recommend using the NOMADS server as a first choice, as it seems to be more reliable. -The 30 different forecast models have certain advantages and disadvantages depending on your particular situation. Many of the differences have to do with temporal and spatial resolution and extent, and how often the forecast model is run. Some of the 30 choices in WindNinja are actually duplicates of the same underlying weather forecast model but provided by both servers. The table below and following paragraphs give some information about each model. +The 30 different forecast models have certain advantages and disadvantages depending on your particular situation. +Many of the differences have to do with temporal and spatial resolution and extent, and how often the forecast model is run. +Some of the 30 choices in WindNinja are actually duplicates of the same underlying weather forecast model but provided by both servers. +The table below and following paragraphs give some information about each model. \begin{landscape} \begin{longtable}[1]{|p{4.0cm}|p{2.0cm}|p{2.2cm}|p{2.0cm}|p{2.2cm}|p{3.4cm}|p{3.6cm}|} @@ -170,33 +204,40 @@ \subsubsection{Selecting the weather model and downloading the latest forecast} NOMADS-NBM-CONUS-2.5-KM & NOMADS & National Blend of Models (NBM) & North America & 2.5 km & 1 hourly to 36 hrs & updated every 1 hour\\ \hline \hline -PAST-CAST-GCP-HRRR-CONUS-3-KM & Google Cloud Platform & High Resolution Rapid Refresh (HRRR) & North America & 3 km & 1 hourly to 36 hrs & updated every 1 hour\\ +PASTCAST-GCP-HRRR-CONUS-3-KM & Google Cloud Platform & High Resolution Rapid Refresh (HRRR) & North America & 3 km & 1 hourly to 36 hrs & updated every 1 hour\\ \hline %\end{tabular} \caption{Comparison of the forecast weather models available in WindNinja.} \end{longtable} \end{landscape} -Users should choose a model that best fits their particular situation, keeping in mind that there may be several forecast models that fit. In these situations, it isn't a bad idea to try several of them and examine the differences in the results. - +Users should choose a model that best fits their particular situation, keeping in mind that there may be several forecast models that fit. +In these situations, it isn't a bad idea to try several of them and examine the differences in the results. Below is some general information to consider when choosing a forecast model: \begin{itemize} \item Higher spatial resolution is generally better than lower resolution. -\item Since forecast accuracy degrades with time, forecast models that are run more often might give more accurate results. An example of this degradation is shown in Figure 2.1. The reason for degradation with time is that small errors in the model can accumulate over time. So if a forecast for 1 hour from now was simulated 11 hours ago, that forecast will probably be less accurate than one that was simulated 1 hour ago. The more recent forecast would start with a better description of the current state of the atmosphere and the small accumulating errors wouldn't have as much time to grow. -\item \textbf{PAST-CAST} refers to a model that has been run in the past, and its forecasts are stored and can fetched. Currently, only the HRRR model has pastcast capabilities. In order to use it properly, you have to specify a date range instead of a forecast duration, and WindNinja will fetch each pastcast hour available between the dates. +\item Since forecast accuracy degrades with time, forecast models that are run more often might give more accurate results. +An example of this degradation is shown in Figure 2.1. The reason for degradation with time is that small errors in the model can accumulate over time. +So if a forecast for 1 hour from now was simulated 11 hours ago, that forecast will probably be less accurate than one that was simulated 1 hour ago. +The more recent forecast would start with a better description of the current state of the atmosphere and the small accumulating errors wouldn't have as much time to grow. +\item \textbf{PAST-CAST} refers to a model that has been run in the past, and its forecasts are stored and can fetched. +Currently, only the HRRR model has pastcast capabilities. In order to use it properly, you have to specify a date range instead of a forecast duration, and WindNinja will fetch each pastcast hour available between the dates. \end{itemize} - \begin{figure}[H] \centering \label{ndfd_degrade} - \includegraphics[scale=0.75]{degrade_w_time} - \caption*{An example showing how a forecast can degrade with time. This graph compares wind direction forecast by NDFD in Jan. 2011 with measurements from across the U.S. The time (in hours) since the forecast was issued is shown on the x-axis, and the mean absolute error (MAE) of predicted wind direction is shown on the y-axis.} + \includegraphics[scale=0.70]{degrade_w_time} + \caption*{An example showing how a forecast can degrade with time. + This graph compares wind direction forecast by NDFD in Jan. 2011 with measurements from across the U.S. + The time (in hours) since the forecast was issued is shown on the x-axis, and the mean absolute error (MAE) of predicted wind direction is shown on the y-axis.} \end{figure} \begin{itemize} -\item The forecast model must cover your modeling area. Each forecast model has a limited area, and if you try to use a forecast model for an elevation file that is outside the forecast area, WindNinja will report an error. Images of some of the weather model domains are shown below to give you an idea of what areas the models might cover. +\item The forecast model must cover your modeling area. +Each forecast model has a limited area, and if you try to use a forecast model for an elevation file that is outside the forecast area, WindNinja will report an error. +Images of some of the weather model domains are shown below to give you an idea of what areas the models might cover. \end{itemize} \begin{figure}[H] @@ -207,84 +248,139 @@ \subsubsection{Selecting the weather model and downloading the latest forecast} \end{figure} \begin{figure}[H] \centering - \label{UCAR_NDFD_Domain} + \label{UCAR_NAME_CONUS_Domain} \includegraphics[scale=0.30]{NAM_1} \caption*{UCAR-NAM-CONUS-12km domain.} \end{figure} \begin{figure}[H] \centering - \label{RAP_CONUS} + \label{RAP_CONUS_Domain} \includegraphics[scale=0.35]{UCAR_RAP_domain} \caption*{UCAR-RAP-CONUS-13km domain.} \end{figure} \begin{figure}[H] \centering - \label{RAP_CONUS} + \label{UCAR_NAM_Alaska_Domain} \includegraphics[scale=0.30]{NAM_2} \caption*{UCAR-NAM-Alaska-11km domain.} \end{figure} Some comments about each forecast model: \begin{itemize} -\item \textbf{NDFD} – This model has good spatial resolution (2.5 km), but currently only 6 hour temporal resolution. It provides a relatively long forecast (7 days). Unlike the other models, this one is not just “raw” forecast model output. The UCAR-NDFD-CONUS-2.5-KM starts out as “raw” output from a computer model, but goes through a process of inspection and manipulation by local weather forecasters. The hope is that the expertise of the local weather forecasters can add value to the forecast. At this time, it is unclear if this method is an advantage or disadvantage for use in WindNinja, as certain issues may arise such as “border” effects where one forecaster's area meets another. - -\item \textbf{NAM} – This model is a good all-round choice, providing a forecast out to 3.5 days and covering all of North America. The NAM model is one of the most commonly used mesoscale models in the U.S. - -\item \textbf{HRRR} and \textbf{NAM-NEST} – The HRRR and the NAM-NEST models have the highest resolution of all the models (3 km), excluding NDFD. This high resolution allows these models to resolve some smaller atmospheric features better than other models (sea-breezes, local density-driven winds, etc.). These models also produce the highest temporal output resolution (every hour). The HRRR is specifically designed for very short range forecasts (out to 18 hours). The NAM-NEST models produce forecasts out to 60 hours. The HRRR uses advanced data assimilation (e.g., for lightning) and explicit simulation of convection, which should translate to better thunderstorm predictions. Another big advantage of the HRRR over most of the other models is that it is run every hour, so that its forecasts use very current information about the state of the atmosphere. The HRRR would likely be the best model to use if you need a very short term forecast (say, for the next few hours). - -\item \textbf{RAP} – This model is very similar to HRRR, except at a coarser resolution. Probably only use this model if HRRR is not possible. - -\item \textbf{GFS} – This model has global coverage and so is available anywhere in the world. It is relatively coarse at 0.25 degrees. It is the only global coverage model available. In general, users simulating areas outside North America must use this model. The model also has the longest forecast duration (out to 16 days), although it is questionable whether winds can be predicted with any amount of accuracy this far out. +\item \textbf{NDFD} -- This model has good spatial resolution (2.5 km), but currently only 6 hour temporal resolution. +It provides a relatively long forecast (7 days). +Unlike the other models, this one is not just “raw” forecast model output. +The UCAR-NDFD-CONUS-2.5-KM starts out as “raw” output from a computer model, but goes through a process of inspection and manipulation by local weather forecasters. +The hope is that the expertise of the local weather forecasters can add value to the forecast. +At this time, it is unclear if this method is an advantage or disadvantage for use in WindNinja, as certain issues may arise such as “border” effects where one forecaster's area meets another. + +\item \textbf{NAM} -- This model is a good all-round choice, providing a forecast out to 3.5 days and covering all of North America. +The NAM model is one of the most commonly used mesoscale models in the U.S. + +\item \textbf{HRRR} and \textbf{NAM-NEST} -- The HRRR and the NAM-NEST models have the highest resolution of all the models (3 km), excluding NDFD. This high resolution allows these models to resolve some smaller atmospheric features better than other models (sea-breezes, local density-driven winds, etc.). +These models also produce the highest temporal output resolution (every hour). The HRRR is specifically designed for very short range forecasts (out to 18 hours). +The NAM-NEST models produce forecasts out to 60 hours. +The HRRR uses advanced data assimilation (e.g., for lightning) and explicit simulation of convection, which should translate to better thunderstorm predictions. +Another big advantage of the HRRR over most of the other models is that it is run every hour, so that its forecasts use very current information about the state of the atmosphere. +The HRRR would likely be the best model to use if you need a very short term forecast (say, for the next few hours). + +\item \textbf{RAP} -- This model is very similar to HRRR, except at a coarser resolution. +Probably only use this model if HRRR is not possible. + +\item \textbf{GFS} -- This model has global coverage and so is available anywhere in the world. +It is relatively coarse at 0.25 degrees. It is the only global coverage model available. +In general, users simulating areas outside North America must use this model. +The model also has the longest forecast duration (out to 16 days), although it is questionable whether winds can be predicted with any amount of accuracy this far out. \end{itemize} -WindNinja has an automated system to make downloading the latest forecasts very easy. Essentially, the user just needs to choose the forecast model and number of hours they want and left-click the “Download data” button. The number of hours you enter is the number of hours since the weather model forecast was run (which depends on the model, and would be anywhere from 1 to 24 hours ago). Behind-the-scenes what happens is: WindNinja knows the area you want to simulate based on your elevation file, and so a message is sent over your Internet connection to a web service on the NOMADS or UCAR server asking for the forecast data for an area slightly bigger than your elevation file domain. The web server clips this area out of the full forecast data coverage, and sends it to your computer. +WindNinja has an automated system to make downloading the latest forecasts very easy. +Essentially, the user just needs to choose the forecast model and number of hours they want and left-click the “Download data” button. +The number of hours you enter is the number of hours since the weather model forecast was run (which depends on the model, and would be anywhere from 1 to 24 hours ago). +Behind-the-scenes what happens is: WindNinja knows the area you want to simulate based on your elevation file, and so a message is sent over your Internet connection to a web service on the NOMADS or UCAR server asking for the forecast data for an area slightly bigger than your elevation file domain. +The web server clips this area out of the full forecast data coverage, and sends it to your computer. -\textbf{\color{red} In the input panel for weather model initialization, select the weather model you want to download using the “Download Weather Data” drop-down box. Enter the number of forecast hours that you want. Click the “Download data” button to download the forecast.} +\textbf{\color{red} In the input panel for weather model initialization, select the weather model you want to download using the “Download Weather Data” drop-down box. +Enter the number of forecast hours that you want. Click the “Download data” button to download the forecast.} -The download of the file should normally only take a few seconds, but will depend on your Internet connection speed, spatial extent of your elevation file, number of forecast hours, and forecast model selected. WindNinja builds a directory structure (folders) starting where your elevation file is located to make it easier for you (and WindNinja) to keep track of the forecast and output files made by WindNinja during a weather model initialization run. It is not recommended to manually move, rename, or delete these files until after you are done with your simulations and have closed out of WindNinja. +The download of the file should normally only take a few seconds, but will depend on your Internet connection speed, spatial extent of your elevation file, number of forecast hours, and forecast model selected. +WindNinja builds a directory structure (folders) starting where your elevation file is located to make it easier for you (and WindNinja) to keep track of the forecast and output files made by WindNinja during a weather model initialization run. +It is not recommended to manually move, rename, or delete these files until after you are done with your simulations and have closed out of WindNinja. -When your download is finished, a new folder will appear in the “Downloaded forecasts” list on the input panel. You can download several forecasts (selecting different forecast models) at this time and each will be added to the list. +When your download is finished, a new folder will appear in the “Downloaded forecasts” list on the input panel. +You can download several forecasts (selecting different forecast models) at this time and each will be added to the list. -The “Downloaded forecasts” list is an expandable tree structure showing the files and folders that WindNinja has made during the download process. You can expand the folders to navigate down to the actual downloaded weather file, which has a “.nc” file extension (which stands for “NetCDF”, a standard weather file type) for the UCAR server or a “.zip” file extension for the NOMADS server (the zip contains many GRIB files, which is a common weather raster data format). The naming convention used for these folders and files is automatically generated by WindNinja using the forecast model name, forecast start time, and elevation filename. At the top level, there is a folder for each type of forecast model for your elevation file that looks like this: +The “Downloaded forecasts” list is an expandable tree structure showing the files and folders that WindNinja has made during the download process. +You can expand the folders to navigate down to the actual downloaded weather file, which has a “.nc” file extension (which stands for “NetCDF”, a standard weather file type) for the UCAR server or a “.zip” file extension for the NOMADS server (the zip contains many GRIB files, which is a common weather raster data format). +The naming convention used for these folders and files is automatically generated by WindNinja using the forecast model name, forecast start time, and elevation filename. +At the top level, there is a folder for each type of forecast model for your elevation file that looks like this: \begin{figure}[H] \centering \includegraphics[scale=1.0]{fil_diag} \end{figure} -Note: This is a \textbf{folder}, even though it has the “.tif” at the end. +Note: This is a \textbf{folder}, even though it has the “.tif” at the end. -Under this folder, there is a folder for each time you've downloaded a forecast for this model and elevation file (for example, if you downloaded a forecast yesterday and then downloaded a forecast today, 2 folders would be shown, one with yesterday's date/time and one with today's date/time). The date/time used for the folder name is the date and time of the first time “step” in the forecast. WindNinja calls this the “first forecast time” and it is used to identify when the forecast model was run by the weather model provider. If you download a forecast, and then download the same forecast again before a new forecast has been issued (essentially downloading the exact same forecast twice), the second forecast downloaded will just replace the first forecast and so only one folder will be made. +Under this folder, there is a folder for each time you've downloaded a forecast for this model and elevation file (for example, if you downloaded a forecast yesterday and then downloaded a forecast today, 2 folders would be shown, one with yesterday's date/time and one with today's date/time). +The date/time used for the folder name is the date and time of the first time “step” in the forecast. +WindNinja calls this the “first forecast time” and it is used to identify when the forecast model was run by the weather model provider. +If you download a forecast, and then download the same forecast again before a new forecast has been issued (essentially downloading the exact same forecast twice), the second forecast downloaded will just replace the first forecast and so only one folder will be made. -The date/time naming format for these folders is shown below with colors added for clarity. Unfortunately, these dates and times are in Coordinated Universal Time (UTC), not local time. Conversion to local time is described later in this tutorial. +The date/time naming format for these folders is shown below with colors added for clarity. +Unfortunately, these dates and times are in Coordinated Universal Time (UTC), not local time. +Conversion to local time is described later in this tutorial. \begin{figure}[H] \centering \includegraphics[scale=1.0]{UTC_diag} \end{figure} -Inside of these date/time folders is where the downloaded forecast file is located, and is also where all of WindNinja's output files will be written to. The forecast file is labeled using the same date/time scheme as above, and has the “.nc” or “.zip” file extension added. +Inside of these date/time folders is where the downloaded forecast file is located, and is also where all of WindNinja's output files will be written to. +The forecast file is labeled using the same date/time scheme as above, and has the “.nc” or “.zip” file extension added. +\textbf{You can also use the NetCDF output from a WRF-ARW custom simulation}. This feature is useful for researchers running custom WRF simulations. +Note that the WRF output file must be a NetCDF “wrfout” file with a “.nc” file extension. +To use a custom wrfout file, simply put the wrfout file in the same directory as your DEM and WindNinja will auto-detect it and make it selectable in the “Downloaded forecasts” list. -\textbf{You can also use the NetCDF output from a WRF-ARW custom simulation}. This feature is useful for researchers running custom WRF simulations. Note that the WRF output file must be a NetCDF “wrfout” file with a “.nc” file extension. To use a custom wrfout file, simply put the wrfout file in the same directory as your DEM and WindNinja will auto-detect it and make it selectable in the “Downloaded forecasts” list. - -Since you may have many different forecasts downloaded to your computer, you need to tell WindNinja which one to use. This is done by simply selecting (left-click) the forecast file in the “Downloaded forecasts” list. \textbf{Be sure that you select the “.nc” or “.zip” forecast file and \underline{not a folder}.} +Since you may have many different forecasts downloaded to your computer, you need to tell WindNinja which one to use. +This is done by simply selecting (left-click) the forecast file in the “Downloaded forecasts” list. +\textbf{Be sure that you select the “.nc” or “.zip” forecast file and \underline{not a folder}.} \textbf{\color{red}Select the desired forecast file in the “Downloaded forecasts” list by left-clicking.} -After you select your forecast file, the local time for the “first forecast time” appears below the “Downloaded forecasts” list area. This local time uses the time zone you specified earlier. +After you select your forecast file, the local time for the “first forecast time” appears below the “Downloaded forecasts” list area. +This local time uses the time zone you specified earlier. -By default WindNinja will simulate each time step in the weather model forecast. As of version 3.6.0, however, you can choose to select specific time steps from the forecast to simulate. To do this, check the box labeled “Select specific time steps" located below the “Download forecasts" box. This will activate the window below the “Select specific time steps" making the list of time steps selectable. Initially, all time steps will be selected (selected time steps are highlighted in grey). You can click on specific time steps to de-select or choose the “Select None" button below the window to de-select all time steps and then click on time steps to select the ones you want to simulate. +By default WindNinja will simulate each time step in the weather model forecast. +As of version 3.6.0, however, you can choose to select specific time steps from the forecast to simulate. +To do this, check the box labeled “Select specific time steps" located below the “Download forecasts" box. +This will activate the window below the “Select specific time steps" making the list of time steps selectable. +Initially, all time steps will be selected (selected time steps are highlighted in grey). +You can click on specific time steps to de-select or choose the “Select None" button below the window to de-select all time steps and then click on time steps to select the ones you want to simulate. \section{Output} -The same output files are written for weather model initialized simulations as other simulations (Google Earth, Fire Behavior, Shape files). WindNinja does a separate simulation for each weather forecast model time “step” and writes output files for each of these time “steps”. There is also an optional choice of writing output for the “raw” weather forecast model data, which is written at that forecast model's resolution. All of these output files are written to the date/time folder described above. The naming convention for the WindNinja output files is similar to a “Domain Average Wind” initialized simulation with diurnal turned on. You should reference \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial2.pdf}{WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stability} for more information. The “raw” weather forecast output files are written with a similar naming convention, except that in place of the elevation file name is the weather forecast model name and the resolution is absent (since the resolution is that of the forecast model). Below is an example of a Google Earth output file name and the corresponding “raw” forecast model file name for April 11th at 1500. The elevation file used was called “missoula\_valley.tif” and the weather forecast model was the “UCAR-NAM-CONUS-12-KM”. + +The same output files are written for weather model initialized simulations as other simulations (Google Earth, Fire Behavior, Shape files). +WindNinja does a separate simulation for each weather forecast model time “step” and writes output files for each of these time “steps”. +There is also an optional choice of writing output for the “raw” weather forecast model data, which is written at that forecast model's resolution. +All of these output files are written to the date/time folder described above. +The naming convention for the WindNinja output files is similar to a “Domain Average Wind” initialized simulation with diurnal turned on. +You should reference \href{https://weather.firelab.org/windninja/tutorials/WindNinja_tutorial2.pdf}{WindNinja Tutorial 2: Diurnal Winds and Non-neutral Stability} for more information. +The “raw” weather forecast output files are written with a similar naming convention, except that in place of the elevation file name is the weather forecast model name and the resolution is absent (since the resolution is that of the forecast model). +Below is an example of a Google Earth output file name and the corresponding “raw” forecast model file name for April 11th at 1500. +The elevation file used was called “missoula\_valley.tif” and the weather forecast model was the “UCAR-NAM-CONUS-12-KM”. missoula\_valley\_04-11-2011\_1500\_176m.kmz $\Leftarrow$ WindNinja output file UCAR-NAM-CONUS-12-KM-04-11-2011\_1500.kmz $\Leftarrow$ “raw” forecast file -\textbf{\color{red} In the navigation tree, left-click on “Output” and select the “Output Height”, “Output Speed Units”, and“Clip output by:” values you want. Also, check the “Write Raw Weather Model Output” checkbox.} +\textbf{\color{red} In the navigation tree, left-click on “Output” and select the “Output Height”, “Output Speed Units”, and“Clip output by:” values you want. +Also, check the “Write Raw Weather Model Output” checkbox.} -Another feature in WindNinja is the ability to write out a FARSITE atmosphere file (*.atm). This might be useful if you are planning on using your WindNinja simulation in a FARSITE fire spread simulation. The atmosphere file is used in FARSITE to define which WindNinja files should be used during the fire simulation. Since FARSITE uses WindNinja's fire behavior files (*.asc), this atmosphere option is only available if you are writing fire behavior files. This option can be enabled in WindNinja on the Output$\Rightarrow$Fire Behavior input panel. +Another feature in WindNinja is the ability to write out a FARSITE atmosphere file (*.atm). +This might be useful if you are planning on using your WindNinja simulation in a FARSITE fire spread simulation. +The atmosphere file is used in FARSITE to define which WindNinja files should be used during the fire simulation. +Since FARSITE uses WindNinja's fire behavior files (*.asc), this atmosphere option is only available if you are writing fire behavior files. +This option can be enabled in WindNinja on the Output$\Rightarrow$Fire Behavior input panel. \textbf{\color{red}Choose the types of output files you would like by left-clicking the type in the navigation tree and filling out the corresponding input panel.} @@ -292,13 +388,17 @@ \section{Output} \section{Solve} -\textbf{\color{red} Left-click on “Solve” in the navigation tree. Set the number of processors you would like using the “Number of Processors” text box. Finally, left-click the “Solve” button to start the simulation(s).} +\textbf{\color{red} Left-click on “Solve” in the navigation tree. +Set the number of processors you would like using the “Number of Processors” text box. +Finally, left-click the “Solve” button to start the simulation(s).} -Since WindNinja is doing a simulation for each weather forecast model time “step”, it may take a while for WindNinja to complete the simulations. Typical simulation time for an average dual core computer in 2020 should be around 1-5 minutes depending on the computer, number of forecast model time “steps”, simulation resolution, etc. +Since WindNinja is doing a simulation for each weather forecast model time “step”, it may take a while for WindNinja to complete the simulations. +Typical simulation time for an average dual core computer in 2020 should be around 1-5 minutes depending on the computer, number of forecast model time “steps”, simulation resolution, etc. \textbf{\color{red} When the simulation is finished, close the progress window.} -A handy feature in WindNinja is the “Open Output Files Path” button on the Solve page. If you click this, it will open the folder where all of the output files for the last run were written to. +A handy feature in WindNinja is the “Open Output Files Path” button on the Solve page. +If you click this, it will open the folder where all of the output files for the last run were written to. This concludes \textbf{WindNinja Tutorial 4: Weather Model Initialization}. diff --git a/doc/tutorials/tutorial_4/imgs/NAM_1.png b/doc/tutorials/tutorial_4/images/NAM_1.png similarity index 100% rename from doc/tutorials/tutorial_4/imgs/NAM_1.png rename to doc/tutorials/tutorial_4/images/NAM_1.png diff --git a/doc/tutorials/tutorial_4/imgs/NAM_2.png b/doc/tutorials/tutorial_4/images/NAM_2.png similarity index 100% rename from doc/tutorials/tutorial_4/imgs/NAM_2.png rename to doc/tutorials/tutorial_4/images/NAM_2.png diff --git a/doc/tutorials/tutorial_4/imgs/NAM_domain.gif b/doc/tutorials/tutorial_4/images/NAM_domain.gif similarity index 100% rename from doc/tutorials/tutorial_4/imgs/NAM_domain.gif rename to doc/tutorials/tutorial_4/images/NAM_domain.gif diff --git a/doc/tutorials/tutorial_4/imgs/NDFD_domain.jpg b/doc/tutorials/tutorial_4/images/NDFD_domain.jpg similarity index 100% rename from doc/tutorials/tutorial_4/imgs/NDFD_domain.jpg rename to doc/tutorials/tutorial_4/images/NDFD_domain.jpg diff --git a/doc/tutorials/tutorial_4/imgs/UCAR_NAM_ALASKA_domain.gif b/doc/tutorials/tutorial_4/images/UCAR_NAM_ALASKA_domain.gif similarity index 100% rename from doc/tutorials/tutorial_4/imgs/UCAR_NAM_ALASKA_domain.gif rename to doc/tutorials/tutorial_4/images/UCAR_NAM_ALASKA_domain.gif diff --git a/doc/tutorials/tutorial_4/imgs/UCAR_RAP_domain.png b/doc/tutorials/tutorial_4/images/UCAR_RAP_domain.png similarity index 100% rename from doc/tutorials/tutorial_4/imgs/UCAR_RAP_domain.png rename to doc/tutorials/tutorial_4/images/UCAR_RAP_domain.png diff --git a/doc/tutorials/tutorial_4/imgs/UTC_diag.png b/doc/tutorials/tutorial_4/images/UTC_diag.png similarity index 100% rename from doc/tutorials/tutorial_4/imgs/UTC_diag.png rename to doc/tutorials/tutorial_4/images/UTC_diag.png diff --git a/doc/tutorials/tutorial_4/imgs/degrade_w_time.png b/doc/tutorials/tutorial_4/images/degrade_w_time.png similarity index 100% rename from doc/tutorials/tutorial_4/imgs/degrade_w_time.png rename to doc/tutorials/tutorial_4/images/degrade_w_time.png diff --git a/doc/tutorials/tutorial_4/imgs/fil_diag.png b/doc/tutorials/tutorial_4/images/fil_diag.png similarity index 100% rename from doc/tutorials/tutorial_4/imgs/fil_diag.png rename to doc/tutorials/tutorial_4/images/fil_diag.png diff --git a/doc/tutorials/tutorial_4/imgs/title_fig.png b/doc/tutorials/tutorial_4/images/title_fig.png similarity index 100% rename from doc/tutorials/tutorial_4/imgs/title_fig.png rename to doc/tutorials/tutorial_4/images/title_fig.png diff --git a/doc/tutorials/tutorial_4/imgs/wx_table.png b/doc/tutorials/tutorial_4/images/wx_table.png similarity index 100% rename from doc/tutorials/tutorial_4/imgs/wx_table.png rename to doc/tutorials/tutorial_4/images/wx_table.png