# 
# RiskScape™ Copyright New Zealand Institute for Earth Science Limited
# (Earth Sciences New Zealand) is distributed for research purposes only
# under the terms of AGPLv3.
# 
# RiskScape™ Copyright 2025 New Zealand Institute for Earth Science
# Limited (Earth Sciences New Zealand). All rights reserved. Source code
# available under the AGPLv3.
# 
# This program is free software: you can redistribute it and/or modify it under
#  the terms of the GNU Affero General Public License as published by the Free
#  Software Foundation, either version 3 of the License, or (at your option) any
#  later version.
# 
# This program is distributed for RESEARCH PURPOSES ONLY, in the hope that it will
# be useful for research and education initiatives.
# 
# If you are not a researcher, or you are a researcher who wishes to use this
# program on terms other than AGPLv3 (including those who wish to restrict the
# distribution of any source code created using this program), please contact:
# https://riskscape.org.nz
# 
# This program is distributed WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Affero General Public License for more details.  You should have received a copy
# of the GNU Affero General Public License along with this program.  If not, see
# <http://www.gnu.org/licenses/>.
# 
# By way of summary only, under the AGPLv3:
#     • Permissions of this strongest copyleft license are conditioned
#       on making available complete source code of licensed works and
#       modifications, which include larger works using a licensed work,
#       under the same license.
#     • Copyright and license notices must be preserved.
#     • Contributors provide an express grant of patent rights.
#     • When a modified version is used to provide a service over a
#       network, the complete source code of the modified version must be made
#       available.
# 
survey.description = \
  This wizard will guide you through the questions required to build a risk model. \
  The following sets of questions will be covered:\n \
  - input-data: Specify the input data sources for your risk model\n \
  - geoprocess: Optionally modify each vector layer before it gets used by the model\n \
  - sample: Specify how to spatially match up each element at risk against the hazard-layer\n \
  - analysis: How to determine the consequences that the hazard has on the exposure layer\n \
  - event-impact-report: Change how the final event impact results are presented and saved to file\n \
  - reports: Add another output file to your model\n \
  Use `ctrl-c` to see a help menu at any time\n


question.wizard.question-choice.title = Choose a set of questions to answer next

phase.InputData.name = Input
phase.Sample.name = Sample
phase.Analysis.name = Analysis
phase.Report.name = Report

#
# Input Data
#
set.input.title = Choose and configure {0} layer

set.input.title.hazards_1 = Choose and configure first hazard layer (Multi-Hazard)
set.input.title.hazards_2 = Choose and configure second hazard layer (Multi-Hazard)
set.input.title.hazards_3 = Choose and configure third hazard layer (Multi-Hazard)

set.input-combine-hazards.title = Finish adding hazard layers (Multi-Hazard)

question.input.dataset.hazards_1 = your first hazard
question.input.dataset.hazards_2 = your second hazard
question.input.dataset.hazards_3 = your third hazard

question.input.geoprocess.summary = Geoprocessing
question.input.geoprocess.title = \
  Do you want to modify this input data at all before it gets used by your model?

question.input.geoprocess.description = \
  Geo-processing lets you filter out rows of data, enlarge geometry (such as points or lines), or cut large geometry into smaller segments. \
  Do you want to geoprocess your {0}-layer at all?

question.input.layer.summary.exposures = Exposure layer
question.input.layer.title.exposures = Choose an exposure layer. This contains the elements at risk (e.g. buildings, roads) that will be exposed to the hazard layer(s).

question.input.layer.summary.areas = Area layer
question.input.layer.title.areas = Choose an area layer. This is an optional layer to join to your exposure-layer. It may include geographic boundaries, such as regions or suburbs.

question.input.layer.summary.resources = Resource layer
question.input.layer.title.resources = Choose a resource layer. This may include supplementary information that is neither part of the exposure nor the hazard, e.g. soil type.

question.input.layer.summary.hazards = Hazard layer
question.input.layer.title.hazards = Choose a hazard layer. This contains spatial data about the intensity of the hazard.
question.input.layer.title.hazards_1 = Choose the first hazard layer. This contains spatial data about the intensity of one particular aspect of the hazard.
question.input.layer.summary.hazards_1 = First hazard layer
question.input.layer.title.hazards_2 = Choose the second hazard layer. This contains spatial data about the intensity of a different aspect of the same hazard.
question.input.layer.summary.hazards_2 = Second hazard layer
question.input.layer.title.hazards_3 = Choose the third hazard layer. This contains spatial data about the intensity of a different aspect of the same hazard.
question.input.layer.summary.hazards_3 = Third hazard layer

question.input.hazard-attribute.summary = Hazard attribute
question.input.hazard-attribute.title = Enter a brief name to refer to this hazard-layer.
question.input.hazard-attribute.description = This name will be used later when the hazard intensity measure is passed to your consequence function. \
    Pick a name that suitably reflects the value that this hazard-layer contains, e.g. ashfall, velocity, inundation. \
    Enter an attribute name:

question.input-combine-hazards.grid-resolution.summary = Hazard grid resolution
question.input-combine-hazards.grid-resolution.title = \
    Enter a grid resolution (in metres) to use for when sampling the combined hazard layers.

question.input-combine-hazards.grid-resolution.description = \
    The grid-resolution is used for spatial matching. \
    For coverage (i.e. raster) layers, this should ideally be the smallest grid-size out of all your hazard-layers. \
    However, there can be somewhat of a trade-off between accuracy and performance. Using a small grid-resolution will result in \
    more accurate spatial matching, but is more computationally expensive and so your model will run slower. \
    Enter a grid resolution in metres:

#
# Geoprocessing

question.input.cut.summary = Cut geometry
question.input.cut.title = Cut the input geometry into smaller pieces.
question.input.cut.description = How do you want to cut up your input geometry?

question.input.cut-by-layer.summary = Cut-layer
question.input.cut-by-layer.title = Pick a 'cut' layer that contains the features to cut against.
question.input.cut-by-layer.description = \
    This will cut up the lines/polygons in your input data by where they intersect with features in the 'cut' layer. \
    For example, if a large feature such as a road straddles a regional boundary, \
    it will be cut into two segments, one for each region.

question.input.cut-by-layer-attributes.summary = Cut-layer attributes
question.input.cut-by-layer-attributes.title = \
    Optionally merge attributes from the 'cut' layer into your input data, e.g. region_name.

question.input.cut-by-layer-include.summary = Cut-layer include
question.input.cut-by-layer-include.title = Specify what to do with input geometry that falls outside the cut layer.
question.input.cut-by-layer-include.description = \
    If input layer geometry falls outside the 'cut' layer completely \
    (i.e. it doesn't intersect with a feature in the cut layer at all), what do you want to do with it?

question.input.cut-distance.summary = Cut distance
question.input.cut-distance.title = Enter the distance to cut by.
question.input.cut-distance.description = \
    Lines will be cut into pieces that are no longer than the given distance. \
    Polygons are cut using a grid - each grid cell is a square, where each side is the given distance in length. \
    E.g. cutting a polygon by 100m will result in grid cells that are 100m x 100m (10000m²) squares. \
    The resulting pieces will be no bigger than the grid cells, however, they could be significantly smaller in terms of area. \
    E.g. cutting a 10001m² polygon by 100m could result in four 2500.25m² pieces. \
    Enter the distance in metres to cut by:

question.input.enlarge.summary = Enlarge geometry
question.input.enlarge.title = Enlarge the input geometry, i.e. buffer polygons, or turn lines/points into polygons.
question.input.enlarge.description = Do you want to enlarge the input geometry?

question.input.enlarge-by.distance.summary = Enlarge by distance
question.input.enlarge-by.distance.title = Specify the distance to enlarge by.
question.input.enlarge-by.distance.description = \
    Specify the distance (in metres) to enlarge the geometry in this layer by. \
    Points and polygons are enlarged in all directions by the given distance. \
    For lines, please specify the desired total width you want the resulting polygon \
    to have (technically this is enlarging by half the specified distance in each direction).

question.input.enlarge-by.mode.summary = Enlarge shape
question.input.enlarge-by.mode.title = What shape do you want corners and line endings to have?
question.input.enlarge-by.mode.description = \
    You can customize what the resulting polygon will look like, in particular whether it should have \
    round corners or sharp corners, and whether line endings should be extended or not. \
    For enlarging road centre lines `mitred-flat` is recommended - this will retain the same shape \
    and same length as the input line. If you're unsure, try using `round`. \
    Do not pick a `flat` option for point data.

question.input.enlarge-by.remove-overlaps.summary = Remove overlaps?
question.input.enlarge-by.remove-overlaps.title = Do you want to remove any overlaps from the enlarged geometries?
question.input.enlarge-by.remove-overlaps.description = \
    Enlarging the geometry may mean that some polygons now overlap. For example, if you are enlarging \
    road centre lines, there will now be some overlapping geometry at road intersections. \
    RiskScape can optionally remove overlaps from the enlarged geometries, on a best effort basis, \
    to avoid double-counting exposed geometry. Do you want to remove overlaps?

question.input.filter.summary = Filter type
question.input.filter.title = Filter (i.e. selectively remove) some of the input data. This can help to speed up running your model.
question.input.filter.description = How do you want to filter the data in this layer?

question.input.filter-bounds.summary = Filter bounds layer
question.input.filter-bounds.title = Pick a 'filter' layer to use.
question.input.filter-bounds.description = \
    Any features (i.e. rows of data) in the current layer that fall within the bounds of the selected filter layer will be retained. \
    Any features that fall completely outside these bounds will be discarded from your model.

question.input.filter-expression.summary = Filter expression
question.input.filter-expression.title = Filter the input data so that only certain features are included.

question.input.filter-expression.title = \
    The wizard will now help you to build a conditional filter expression. \
    Only the features from this layer that satisfy this condition will be included. \
    Pick the attribute that you are interested in, and then the value it should have. \
    E.g. exposure.construction = 'steel', or exposure.storeys > 3

question.input.filter-expression.lhs.title = \
    Choose an attribute in the layer to filter by, e.g. construction_type

question.input.filter-expression.comparator.title = \
    Choose the comparison operator, i.e. how to find matching data.

question.input.filter-expression.rhs.title = Enter the value to compare against:

question.input.filter-layer.summary = Filter layer
question.input.filter-layer.title = Pick a layer to filter against.
question.input.filter-layer.description = \
    This layer should contain the feature(s) you want to filter against, i.e. a regional boundary of interest.

question.input.filter-layer-condition.summary = Filter layer condition
question.input.filter-layer-condition.title = Specify a filter expression.
question.input.filter-layer-condition.description = \
    The wizard will now help you to build an expression that will find the feature(s) you are interested in. \
    Pick an attribute and value(s) from this layer that will match the feature(s) you want to filter against.

question.input.recompute.summary = Recompute values
question.input.recompute.title = Recompute attribute values after cutting. E.g. area, length.
question.input.recompute.attribute.title = Recompute attribute values after cutting. E.g. area, length.
question.input.recompute.attribute.description = Select which attribute you want to recompute a value for.

question.input.recompute.expression.summary = Recompute expression
question.input.recompute.expression.title = Recompute the new value for this attribute.
question.input.recompute.expression.description = Enter an expression to recompute a new value, e.g. measure(exposure.the_geom)

question.input.scale-attributes.summary = Scale attributes
question.input.scale-attributes.title = Scale attributes after cutting to reflect their reduction in size.
question.input.scale-attributes.description = \
    Enter an attribute to scale. RiskScape will automatically scale the attribute by the ratio it has reduced in size \
    (i.e. size of the new geometry divided by the size of the old geometry).

question.input.save-raw-results.summary = Save modified layer
question.input.save-raw-results.title = Save the modified layer after the geoprocessing has taken effect.
question.input.save-raw-results.description = \
    Do you want to save a copy of the modified input data before it is run through your model?

#
# Sampling
#
set.sample.title = Sampling Phase
set.sample.description = Specify how to spatially match each exposure-layer element against the other layer(s)

question.sample.by.summary = Sample by
question.sample.by.title = How do you want to spatially match each exposure-layer element against your {0}-layer?
question.sample.by.description = How you detect spatial matches between the exposure-layer and the {0}-layer \
    may depend somewhat on what you are modelling. Pick the option that best suits your input data.

question.sample.buffer.summary = Sampling buffer
question.sample.buffer.title = Specify a buffer (i.e. margin of error) when matching exposure-layer elements against the {0}-layer
question.sample.buffer.description = \
    This essentially buffers each exposure-layer element by the given distance in metres before \
    spatial matching against the {0}-layer. This can be helpful when an element-at-risk''s geometry does not quite intersect \
    with a feature in the {0}-layer, but for practical purposes it should still count as a geospatial match. \
    Buffering can also result in better spatial matching when your exposure-layer contains point- or line-based geometry. \
    Specify the buffer distance in metres:

#
# Analysis
#
set.analysis.title = Analysis Phase
set.analysis.description = How to determine the consequences that the hazard has on the exposure-layer

question.analysis.map-hazard.summary = Hazard attribute
question.analysis.map-hazard.title = \
  Is there one particular attribute in the hazard-layer that represents the hazard intensity?
question.analysis.map-hazard.description = \
  Your hazard-layer is vector data so it may contain additional attributes, like `OBJECTID`, \
  that are irrelevant to your model. Is there one particular attribute in this layer that \
  you will use to measure the hazard intensity?

question.analysis.map-hazard-intensity.summary = Hazard attribute
question.analysis.map-hazard-intensity.title = \
  Pick the attribute from the hazard-layer that best reflects the hazard intensity measure.

question.analysis.aggregate-hazards.summary = Aggregate hazard
question.analysis.aggregate-hazards.title = \
    Do you want to aggregate the hazard intensity measures? i.e. Take the max, mean, etc.
question.analysis.aggregate-hazards.description = \
    There may be multiple different hazard intensity measures matched against each exposure-layer element. \
    Do you want to aggregate the hazard intensity measures to get a single value?

question.analysis.aggregate-hazards-function.summary = Aggregate function
question.analysis.aggregate-hazards-function.title = \
    Pick the function you want to use to aggregate the hazard intensity measures.

question.analysis.function.summary = Consequence function
question.analysis.function.title =  Select a function to determine the consequence the hazard has on each exposure-layer element.
question.analysis.function.description = Please specify a function to evaluate each element-at-risk and \
    hazard-intensity-measure and produce a consequence.

question.analysis.save-raw-results.summary = Save analysis
question.analysis.save-raw-results.title = Save the raw results, i.e. show each hazard intersection separately.
question.analysis.save-raw-results.description = \
    When your model runs, this will save a separate shapefile that lets you see exactly which elements-at-risk were impacted by the hazard. \
    Only the geospatial intersections between the exposure and hazard layers will be saved, along with the consequence value(s) that were computed. \
    This can be helpful to see how the consequence values in the final results were produced for each element-at-risk. \
    Would you like to save the raw analysis results?

question.analysis.scale-losses.summary = Scale losses
question.analysis.scale-losses.title = \
    Do you want to scale the losses by the amount they were exposed to the hazard?
question.analysis.scale-losses.description = \
    RiskScape can calculate the proportion of the element-at-risk's total area/length that was exposed to the hazard \
    (i.e. the `exposed_ratio`) and then use this ratio to automatically scale the resulting consequence. \
    For example, if 10% of a road segment was inundated by flooding, RiskScape would multiply the loss produced by 0.1. \
    This can be useful when the exposure-layer contains large continuous features (e.g. roads), \
    your consequence function is calculating a loss for the entire feature, and there is a linear relationship between \
    the `exposed_ratio` and the resulting loss. \
    Do you want to scale the consequence by the `exposed_ratio`?

question.analysis.aggregate-consequences.summary = Aggregate consequences
question.analysis.aggregate-consequences.title = There may be multiple consequences produced for each exposure-layer element. \
    Do you want to aggregate these consequences?
question.analysis.aggregate-consequences.description = \
    There may be multiple different hazard intensity measures matched against each exposure-layer element. \
    This means that your consequence function may evaluate each element-at-risk multiple times. \
    Do you want to aggregate the consequence computed for each exposure-layer element? \
    i.e. take the mean or max loss, or sum the damage together into a single outcome.

question.analysis.aggregate-consequences-function.summary = Aggregate function
question.analysis.aggregate-consequences-function.title = \
    Pick the function you want to use to aggregate the consequences.

#
# Report Phase
#
set.report.title = Change how the final ''{0}'' results are presented and saved to file
set.reports.title = Save the model's results in a different way, i.e. add a second output file.

question.reports.name.summary = Filename
question.reports.name.title = Specify filename(s) for the new outputs
question.reports.name.description = Specify the base filename for the new output (without the file extension)

question.report.filter.summary = Filter output
question.report.filter.title = Filter the output so that only certain results are included
question.report.filter.description = \
    The wizard will now help you to build a conditional filter expression. \
    Only the results that satisfy this condition will be included. \
    Pick the attribute you are interested in, and then the value it should have. \
    E.g. exposure.construction = 'steel', or consequence.loss > 0

question.report.filter.lhs.title = Choose an attribute in the layer to filter by, e.g. construction_type
question.report.filter.comparator.title = Choose the comparison operator, i.e. how to find matching data.
question.report.filter.rhs.title = Enter the value to compare against:

nz.org.riskscape.wizard.model2.input.FilterByAttribute.Comparator.EQUAL = = (find an exact match)
nz.org.riskscape.wizard.model2.input.FilterByAttribute.Comparator.NOT_EQUAL = != (match everything except for a \
  specific value)
nz.org.riskscape.wizard.model2.input.FilterByAttribute.Comparator.GREATER_THAN = > (greater than)
nz.org.riskscape.wizard.model2.input.FilterByAttribute.Comparator.GREATER_THAN_EQUAL = >= (greater than or equal to)
nz.org.riskscape.wizard.model2.input.FilterByAttribute.Comparator.LESS_THAN = < (less than)
nz.org.riskscape.wizard.model2.input.FilterByAttribute.Comparator.LESS_THAN_EQUAL = <= (less than or equal to)


question.report.group-by.summary = Group by attributes
question.report.group-by.title = Aggregate the results, e.g. take the sum, count, mean, etc
question.report.group-by.description = Specify the attribute(s) that the aggregated results should be grouped by. \
    This is how you want the results categorized, e.g. by area.name or exposure.construction.

question.report.aggregate.summary = Aggregate attributes
question.report.aggregate.title = Simple aggregation, e.g. take the sum, count, mean, etc
question.report.aggregate.attribute.title = Now specify which attribute values from the raw results you want to aggregate.
question.report.aggregate.attribute.description = This is the attribute you want to see the total/max/average values for, e.g. consequence.loss, hazard.

question.report.aggregate.function.summary = Aggregate function
question.report.aggregate.function.title = Specify how you want to aggregate this value.
question.report.aggregate.function.description = Pick the aggregate function that will produce the result you're interested in.

question.report.aggregate.result-name.summary = Attribute name
question.report.aggregate.result-name.title = Specify a new name for the aggregated result.
question.report.aggregate.result-name.description = This is the name that will be used for this value in the output results file.

question.report.bucket-by.summary = Aggregate by buckets
question.report.bucket-by.title = Aggregate by buckets (bucket content by the range it falls into, then aggregate values \
  in each bucket).
question.report.bucket-by.description = Pick the attribute you would like to use to divide the results into buckets.

question.report.bucket-range.summary = Range
question.report.bucket-range.title = Define the boundaries for your buckets.
question.report.bucket-range.description = Each answer defines a boundary for a bucket. For example, answering "1", and then "2" would \
  yield the following buckets: `range_<_1`, `range_1_2` and `range_2_+`.

question.report.bucket-name.summary = Bucket result name
question.report.bucket-name.title = Specify a name for the aggregated result.
question.report.bucket-name.description = This is the name that will be used for this value in the output results file.

question.report.bucket-aggregation.summary = Aggregate attributes
question.report.bucket-aggregation.attribute.title = Specify what attribute, within each bucket, to aggregate
question.report.bucket-aggregation.attribute.description = This is the attribute you want to see the total/max/average values for, e.g. consequence.loss, hazard.

question.report.bucket-aggregation.function.summary = Aggregate function
question.report.bucket-aggregation.function.title = Specify how you want to aggregate this value.
question.report.bucket-aggregation.function.description = Pick the aggregate function that will produce the result you're interested in.

question.report.bucket-aggregation.result-name.summary = Attribute name
question.report.bucket-aggregation.result-name.title = Specify a name for the aggregated result.
question.report.bucket-aggregation.result-name.description = This is the name that will be used for this value in the output results file.

question.report.select.summary = Output columns
question.report.select.title = Select and adjust the columns/attributes included in the output
question.report.select.description = Select which attributes (columns) out of the results to include in the final output. \
    E.g. exposure.construction as "Construction type"

question.report.sort-by.summary = Sort
question.report.sort-by.title = Sort output by particular attribute(s)
question.report.sort-by.attribute.title = Specify which attribute (i.e. column) you want to sort the results by.
question.report.sort-by.direction.title = Which direction do you want the results sorted in?

question.report.format.summary = Output format
question.report.format.title = Specify the output file format (csv, shapefile, etc)
question.report.format.description = What file format would you like the results saved in?
