Open Source Software for Mapping Human Impacts on Marine Ecosystems with an Additive Model

Introduction Human activities like fishing and shipping, agricultural and industrial runoff from land, and climate change profoundly change marine ecosystems around the world [1–5]. In turn, marine ecosystems heavily impacted by humans often stop to provide important services for people [6]. Maintaining or restoring good marine ecosystem condition has thus been the objective of recent environmental laws like the European Union’s Marine Strategy Framework Directive [7]. Reaching this goal, however, requires understanding how several anthropogenic stressors in combination affect marine ecosystems [8] and where problematic combinations of stressors occur. Responding to this challenge, Halpern et al. [3] developed a simple additive model for mapping human impacts on marine ecosystems. They presented a global map of human impacts on marine ecosystems that was recently updated [9]. The model evaluates where human stressors (e.g. fishing with different gear types, shipping lanes, water pollution with different substances) overlap spatially with ecosystem types (e.g. seagrass meadows, soft material sea bottom) or important species that are sensitive to these stressors. It calculates a human impact index, as opposed to a measurable biological, physical or chemical quantity. By now, the model has also been used for regional human impact assessments for e.g. the northern Hawaiian islands [10], the California Current region [11], the waters of British Columbia [12,13], the Baltic Sea [14,15], the waters off Masachusetts [16], the eastern North Sea [17] and the Mediterranean and Black Seas [18]. Variations of the model have been used to assess human impacts on individual benthic habitat types in the Baltic Sea [19] and on marine top predators in the California Current region [20]. While the model has been developed and mostly used by the marine science and conservation community, similar additive human pressure models have been used for freshwater and terrestrial systems [21,22]. Thus, Halpern et al.’s model is well established, but potential model users face technical challenges:


Introduction
Human activities like fishing and shipping, agricultural and industrial runoff from land, and climate change profoundly change marine ecosystems around the world [1][2][3][4][5]. In turn, marine ecosystems heavily impacted by humans often stop to provide important services for people [6]. Maintaining or restoring good marine ecosystem condition has thus been the objective of recent environmental laws like the European Union's Marine Strategy Framework Directive [7]. Reaching this goal, however, requires understanding how several anthropogenic stressors in combination affect marine ecosystems [8] and where problematic combinations of stressors occur.
Responding to this challenge, Halpern et al. [3] developed a simple additive model for mapping human impacts on marine ecosystems. They presented a global map of human impacts on marine ecosystems that was recently updated [9]. The model evaluates where human stressors (e.g. fishing with different gear types, shipping lanes, water pollution with different substances) overlap spatially with ecosystem types (e.g. seagrass meadows, soft material sea bottom) or important species that are sensitive to these stressors. It calculates a human impact index, as opposed to a measurable biological, physical or chemical quantity.
By now, the model has also been used for regional human impact assessments for e.g. the northern Hawaiian islands [10], the California Current region [11], the waters of British Columbia [12,13], the Baltic Sea [14,15], the waters off Masachusetts [16], the eastern North Sea [17] and the Mediterranean and Black Seas [18]. Variations of the model have been used to assess human impacts on individual benthic habitat types in the Baltic Sea [19] and on marine top predators in the California Current region [20]. While the model has been developed and mostly used by the marine science and conservation community, similar additive human pressure models have been used for freshwater and terrestrial systems [21,22]

SOFTWARE METAPAPER
Open Source Software for Mapping Human Impacts on Marine Ecosystems with an Additive Model coordinate reference systems and spatial resolutions on the same regular grid are rarely described. While many authors using the model publish most of the pre-processed input data they use, often some input data are only available "raw" (if at all) from original sources. This makes it impossible to exactly reproduce the results of model applications. Indeed, as part of the testing process, the software described here was used to reproduce three published human impact maps [11,15,18]. While the resulting maps were very similar to the originally published ones (R 2 >0.9 in all three cases), exact reproduction was not possible. 4. Research teams often have a dedicated contributor to take care of the technical aspects of using the model.
Other members of the research team, as well as external users of model results (e.g. managers making decisions based on an existing human impact map) may lack the access to commercial software and the technical skills to visualize the input data and test alternative modelling decisions, thus missing important opportunities to understand and double-check the model results.
The software presented in this paper, in the following called the EcoImpactMapper, implements Halpern et al.'s model with a simple user interface and helps address these four challenges. It has been used to map the potential for human impacts in Arctic marine waters west and south of Greenland [23].

CsvTable
Handles reading and writing of model inputs, model outputs and project files as commaseparated value tables.
DataGrid Regular floating-point data grid with basic statistical information (e.g. minimum and maximum of cell values).

SpatialDataLayer
Represents a spatial data layer, i.e. a stressor, ecosystem component or spatial index.
Contains an instance of DataGrid with raw data, a list of preprocessing steps, a second instance of DataGrid with preprocessed data, and information about the data source. All spatial model inputs and outputs are instances of this class.
PreProcessor, GeneralProcessor, LogTransformer, Rescaler, IdentityProcessor All preprocessing steps are represented by classes implementing the interface PreProcessor. They can extend the abstract class GeneralProcessor, which contains basic functions like getting the number of the preprocessing step's parameters. As of July 2015, only two preprocessing steps are implemented: log(x+1)-transformation (class: LogTransformer) and rescaling so that a spatial data layer's maximum is 1 (class: Rescaler).
IdentityProcessor returns an identical copy of data passed to it and can be used for input data that do not require preprocessing.

GlobalResources
Contains static constants like a "no data" value and internal codes.

ImageCreator
Contains graphics functions, e.g. for creating images from instances of DataGrid.

MappingGrid
Stores information about the geometry of the project's regular grid, and contains functions like creating a DataGrid from lists of world coordinates and associated grid values. A project's instance of MappingGrid is created when the user loads the first spatial data set. It is the link between the spatial data's coordinate reference system (referring to locations on the Earth's surface) and the two-dimensional arrays used internally to store spatial data.

MappingProject
Abstract class with static variables and methods, representing the current mapping project. It contains lists of input and output data, as well as functions to save and load projects.

ImpactInfo, SensitivityScoreSet
Each instance of ImpactInfo represents a combination of stressor and ecosystem component with its sensitivity weight. A project's sensitivity weights are stored in an instance of SensitivityScoreSet.

MainWindow
The main window. Also manages user interactions like mouse clicks.

Implementation and architecture
The additive model as suggested by Halpern et al. [3] uses three kinds of input data: • D i : Spatial distribution of stressors, such as fishing effort or shipping intensity, as regular grids. Stressor data are log(x+1)-transformed and rescaled so that the maximum is 1. This transformation and rescaling can optionally take place in the EcoImpactMapper. • e j : Spatial distribution of ecosystem components as regular grids, e.g. continental slope soft bottom habitat either as presence (1) and absence (0) or, in some cases [17,20], continuous data like probabilities of presence. • µ i,j : "Sensitivity weights" numerically representing the sensitivity of ecosystem component j to stressor i. These weights are typically derived by expert judgment.
For n stressors and m ecosystem components, the model estimates a human impact index (I Sum ) at location (x,y) as: The EcoImpactMapper (Figure 1) was implemented in Java with NetBeans IDE 7.3. The GUI is based on Swing and was designed with Matisse. Table 1 shows an overview of the software's main classes.
It should be noted that the EcoImpactMapper was designed to simplify a time-consuming and difficult part of producing human impact maps with Halpern et al.'s model. It was not designed to replace general-purpose Geographical Information System (GIS) software, or to support the whole mapping process from raw data acquisition to publication-quality visualization. For example, the EcoImpactMapper can handle only one input data format. All spatial input data must have the same spatial resolution, extent and coordinate reference system. Furthermore, there are only basic visualization functions:  For example, there are no functions to zoom, read values from the data at a given location, or produce publicationquality maps. The EcoImpactMapper is thus not a standalone tool, but must be used in combination with other software for data preparation and for creating high quality maps. Figure 2 shows the general workflow for creating human impact maps with the EcoImpactMapper. All spatial model inputs and outputs are comma-separated value (CSV) files representing regular grids. Each input file must contain at least three columns: X coordinates, Y coordinates, and values for the respective locations (e.g. stressor intensities or presence-absence data for ecosystem components). Also sensitivity weights are loaded from CSV files where rows represent stressors and columns ecosystem components.
The EcoImpactMapper allows users to choose individual pre-processing steps for all stressor and ecosystem component data. Currently, it only supports two optional pre-processing steps (suggested by [3]): Log(X+1)-transformation and rescaling so that the largest value in any data layer is 1. Users can visualize the effects of the selected pre-processing steps by switching between a "raw data" and a "processed data" view in the main window. Additional pre-processing functions will be added to the EcoImpactMapper in the future.
Once all input data are loaded, the EcoImpactMapper can calculate the following spatial outputs:  [23].

Quality control
Calculations were tested using artificial data for three ecosystem components and two stressors in a 4x4 cell regular grid ( Table 2). For this small grid, all outputs were calculated with the EcoImpactMapper and manually with Microsoft Excel. The results were identical.
To test the software's functioning with large realistic data sets, publicly available stressor and ecosystem data from three published human impact assessments [11,15,18] were downloaded and converted to the software's input data format. These assessments contain dozens of stressors and ecosystem components covering large international regions at high spatial resolution. While it was not possible to exactly reproduce these assessments' results (in part because of missing data, in part because the papers did not provide all details of data pre-processing), the EcoImpactMapper, running on an off-the-shelf 2012 MacBook Pro with 16GB RAM, worked with these large data sets without problems.
Lastly, correct functioning on different operating systems was tested by running the EcoImpactMapper on Mac OS X 10.3.3, Windows 7 and Ubuntu 14.04.

Operating system
Platform-independent; requires Java Runtime Environment.
Programming language Java 1.7.0

Additional system requirements
None, but working with large regions and high spatial resolution (e.g. the data from [11] and [18]) requires at least 16GB RAM.

(3) Reuse potential
The EcoImpactMapper makes it easier to create human impact maps than it has been with generic software. It helps to address the four challenges listed in the Introduction. First, once input data are transformed to the software's format, further data processing is automated. While data preparation, exploration of modeling results and creation of high-quality maps for publication requires use of GIS software, users can share their EcoImpactMapper files with other team members, who then can easily visualize and check the input data and model outputs. Second, data and model updates are possible with a few mouse clicks by simply updating input files and re-calculating model outputs. Third, mapping projects can be saved with all input data and processing steps. They can thus be easily shared and exactly reproduced. Fourth, the user interface allows research team members that may have important biological knowledge but no GIS skills, and external users of model results, to visualize the input data and model outputs without the need for special technical skills or commercial software. The EcoImpactMapper's reuse potential is increased by the availability of a tutorial and example data. To give a practical example, the EcoImpactMapper has been used to produce a diversity map and a pressure map (Eqs. 2,3) for the ocean south and west of Greenland [23]. Shortly after all analyses were completed, better input data became available for some human stressors. Because the EcoImpactMapper automatizes the calculation of model outputs, the updated stressor data could be easily incorporated at this late project stage. Furthermore, the quality of some input data used in that study was discussed between researchers based on screenshots from the EcoImpactMapper. If problems with the input data had been detected late in the project, model outputs could easily have been updated after correcting the inputs.
Because the EcoImpactMapper's source code is freely available and includes general functions for data loading, data management, preprocessing and visualization, it can be easily extended to support alternative models and data transformation steps, and serve as an environment to test and compare them (e.g. the effects of log-transformation).
While the EcoImpactMapper makes it easier to use Halpern et al.'s model, considerable technical skills and biological understanding are needed for data preparation. Original stressor and ecosystem component data come in many formats: Presence-absence or continuous; raster data or points, lines and polygons; they may cover the whole study area (e.g. sea surface temperature anomalies) or only exist in small, isolated locations (e.g. offshore oil platforms). Some data sets may have gaps that must be filled. Thus, the EcoImpactMapper does not provide generic data preparation functions.
Furthermore, ecosystem responses to multiple stressors are much more complex than their representation in the model [24,25], and the model's assumptions may make it unsuitable for some applications. Halpern and Fujita [26] give a concise and thoughtful overview of the model's assumptions and limitations. Potential users should carefully consider the model's suitability for their purposes.

Acknowledgements
The presented software draws on the author's experience during the HARMONY project (harmony.dmu.dk; ref. 17), where he first developed (unpublished) human impact mapping software. It also draws on discussions with the HARMONY project team, and during human impact mapping projects and workshops organized by the European Topic Centre for Inland, Coastal and Marine Waters and Aarhus University. Thanks to Fiorenza Micheli for a discussion of technical challenges in human impact mapping, and to Samuli Korpinen and Joni Kaitaranta for providing Baltic Sea spatial data for testing. Two anonymous reviewers and the journal's editor provided constructive feedback.