DOI: 10.6084/m9.figshare.23796024
title: <i>Evaluating the accuracy of binary classifiers for geomorphic applications </i>by Rossi (2024) - Accuracy assessment software and figure generation

description: This dataset contains the data and scripts to reproduce figures from '<i>Evaluating the accuracy of binary classifiers for geomorphic applications</i>' published in <i>Earth Surface Dynamics</i> (Rossi, 2024).<b>Figure 1</b> elevation data was downloaded from OpenTopography (2010 Channel Islands Lidar Collection, 2012; Anderson et al., 2012; Reed, 2006). GIS files for elevation data and transect locations are provided in the zipped geodatabase <i>gis_fig1.gdb.zip</i>.<b>Figure 2</b> is based on the bedrock mapping at site P01 from Rossi et al. (2020). GIS files for 1-m slope, air photo mapping, its conversion to a truth raster, and the accuracy classification using a 38 degree slope threshold are provided in the zipped geodatabase <i>gis_fig2.gdb.zip</i>. <b>Figures 3-7 </b>are ultimately based on <i>synthetic_feature_maps_main.py</i> and <i>synthetic_feature_maps_functions.py</i>. The former uses the latter to plot example classified maps along with how accuracy scores vary as a function of feature fraction for a given set of input parameters set by the user. Results are saved as a <i>.csv</i> file. Because these master scripts are designed for one set of input parameters, I provide a number of other scripts below that aid in reproducing the figures shown in the manuscript.<b>Figure 3a</b> and <b>3c</b> can be reproduced using <i>generate_fig3.py</i> directly using input parameters of <i>l </i>= 100, <i>scl </i>= 1, <i>sflag</i> = 2, and <i>fmap</i> = 0.5. This plots the 'match scene' scenario only. Note that there is code that is commented out that will let you plot the 'all feature' scenario as well.<b>Figure 3b</b> and <b>3d</b> can be reproduced using <i>generate_fig3.py</i> directly using input parameters of <i>l </i>= 100, <i>scl </i>= 10, <i>sflag</i> = 2, and <i>fmap</i> = 0.5. This plots the 'match scene' scenario only. Note that there is code that is commented out that will let you plot the 'all feature' scenario as well.<b>Figure 4</b> can be reproduced using <i>generate_Fig4.py</i>. It uses saved results from <i>synthetic_feature_maps_main.py</i> that are stored in the folder <i>results_rand_only</i>.<b>Figure 5</b> can be reproduced using <i>generate_Fig5.py</i>. It uses saved results from <i>synthetic_feature_maps_main.py</i> that are stored in the folder <i>results_syst_only</i>.<b>Figure 6</b> can be reproduced using <i>generate_Fig6.py</i>. It uses saved results from <i>synthetic_feature_maps_main.py</i> that are stored in the folder <i>results_rand_plus_syst</i>.<b>Figure 7</b> can be reproduced using <i>generate_Fig7.py</i>. It uses saved results from <i>synthetic_feature_maps_main.py</i> that are stored in the folders <i>results_rand_only</i>, <i>results_syst_only</i>, and <i>results_rand_plus_syst</i>.<b>Figure 8</b> is conceptual. Figs. 8a-b were drawn in Adobe Illustrator. The plot shown in Fig. 8c can be reproduced using <i>generate_Fig8c.py</i> and requires the associated file <i>fig8_examples.txt</i>.<b>Figure 9</b> is conceptual. Fig. 9a was drawn in Adobe Illustrator. The plot shown in Fig. 9b can be reproduced using <i>generate_Fig9b.py</i>. Because it is not using saved results and runs the 'systematic error' scenario from scratch using <i>synthetic_feature_maps_functions.py</i>, this script will take a bit of time to run.<b>Table 1</b> uses the data from the classified map in Fig 2a and can be directly derived from eqs. 1-7.<b>Table 2</b> requires merging two scenes with different feature fractions to produce and average feature fraction of 0.50. Each cell in the table can be calculated using <i>generate_Table2_contents.py</i>. It uses saved results from <i>synthetic_feature_maps_main.py</i> that are stored in the folders <i>results_rand_only</i>, <i>results_syst_only</i>, and <i>results_rand_plus_syst</i>.