(1) Overview


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].

Thus, Halpern et al.’s model is well established, but potential model users face technical challenges:

  1. The model is often implemented using off-the-shelf Geographical Information System (GIS) software or a spreadsheet calculator like Microsoft Excel. This process is labour intensive, prone to making mistakes, requires a high level of technical skill, and in some cases relies on expensive commercial software.
  2. The model requires spatial data for all important stressors and ecosystems in the study area. While more and more relevant data become available, most studies using the model report that key data were missing or of inadequate quality. Once better data become available, the complicated implementation with general-purpose software makes it difficult and time-consuming to update the model outputs.
  3. Using the model requires many small data processing decisions that may influence results, but are often undocumented. For example, resampling methods used to represent input data with different 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 (R2>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].

Implementation and architecture

The additive model as suggested by Halpern et al. [3] uses three kinds of input data:

  • Di: 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.
  • ej: 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 (ISum) at location (x, y) as:

(Eq. 1)

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.

Figure 1 

The EcoImpactMapper’s main window, here showing a reproduction of Micheli et al.’s [18] human impact map for the Mediterranean and Black Seas. The window contains a list of stressors, a list of ecosystem components, a list of model outputs, and a graphics panel displaying the spatial data (model inputs or outputs) selected by the user.

Class Description

CsvTable Handles reading and writing of model inputs, model outputs and project files as comma-separated 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.
ImpactIndex, DiversityIndex, StressorIndex, WeightedStressorIndex These classes represent the respective model outputs and extend SpatialDataLayer.
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.

Table 1

The EcoImpactMapper’s most important 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 publication-quality maps. The EcoImpactMapper is thus not a stand-alone 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.

Figure 2 

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:

  • Impact index ISum: see Eq. 1
  • Ecological diversity index:
    (Eq. 2)
  • Unweighted stressor index:
    (Eq. 3)
  • Stressor index weighted with the mean of the sensitivity weights of all ecosystem components to the stressor:
    (Eq. 4)
  • Mean impact (as opposed to the sum) over all ecosystem components present in location (x,y):
    (Eq. 5)

Furthermore, the EcoImpactMapper can calculate the following non-spatial outputs:

  • Each Di’s contribution to ISum or IMean in all grid cells in the study area. This allows ranking stressors based on their contribution to modeled impacts, a commonly reported result in studies using Halpern et al.’s model.
  • % of each stressor occurring in the x% of the study area with the highest EDiv. For example, this function has been used to calculate that in western Greenland, about 54% of trawling (an important stressor) occurred in the 20% of the study area with the highest ecological diversity index [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.

File Description

testdata.xslx Artificial spatial data in 4x4 grid and Excel calculations
testdata_table.csv Artificial spatial data in 4x4 grid ready for loading into EcoImpactMapper
sensitivityweights_test.csv Sensitivity weights ready for loading into EcoImpactMapper

Table 2

Artificial data for testing, available for download with the software.

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.

(2) Availability

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.



Software location


Name: Figshare

Persistent identifier: http://dx.doi.org/10.6084/m9.figshare.1519342

Licence: MIT License

Publisher: Andy Stock

Date published: 09/01/15

Code repository

Name: GitHub


Licence: MIT License

Date published: 08/19/15



(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.