Coordinated by the Pacific Salmon Foundation in support of salmon restoration work by Heiltsuk, Kitasoo Xai’xais, Nuxalk, and Wuikinuxv Nations, these scripts adapt fish distribution / abundance models developed for the Haida Gwaii by Gowgaia (2009) to the CCIRA study area using current tools, methods and data.
-
Determine BC Freshwater Atlas watershed groups present within the study area:
ATNA,BELA,KHTZ,KITL,KLIN,KTSU,LDEN,LRDO,NASC,NECL,NIEL,OWIK
-
Reference Pacific Salmon Explorer known spawning streams to BC Freshwater Atlas stream network and load to
bcfishpass
, discarding modelled natural barriers downstream of known habitat -
Perform basic QA checks of observations and barriers present in study area from all sources
-
Download NuSEDS
Conservation_Unit_System_Sites.csv
(linking NuSEDS to FWA streams), discarding all columns other thanpop_id
andfwa_watershed_cde
and saving asdata/nuseds_sites.csv
-
Generate three
bcfishpass
access models using these natural barrier assumptions:- Salmon (CH/CM/CO/PK/SK): falls >5m, subsurface flow, 15% gradient for >= 100m
- Steelhead (ST): falls >5m, subsurface flow, 20% gradient for >= 100m
- Resident (CT/DV/RB): falls >5m, subsurface flow, 25% gradient for >= 100m
-
Extend the
bcfishpass
accessibility model with the Gowgaia stream classifications:KNOWN
fish presence: stream downstream of known observation(s) for given speciesINFERRED
fish presence: stream upstream of known observations and downstream of known/modelled barriersPOTENTIAL
anadromous fish presence: unsurveyed streams from stream mouth to first known/modelled barrier
KNOWN
fish presence: stream downstream of known observation(s) for given speciesINFERRED
fish presence: stream upstream of known observations and downstream of known/modelled barriersPOTENTIAL
resident fish presence: unsurveyed streams from stream mouth to first known/modelled barrier and below the elevation of the highest observation of the species in the study areaPOTENTIAL_BARRIER_DNSTR
all stream upstream of known/modelled barriers, not downstream of observations, and below the elevation of the highest observation of the species in the study area
Elevation maximums:
CT
: 1508mDV
: 1005mRB
: 1831m
-
Extend the above fish accessibility model with an adaptation of the Gowgaia abundance classification:
For all
KNOWN
,INFERRED
,POTENTIAL
streams, classify as follows:FEW_SALMON
: magnitude < 5SOME_SALMON
: magnitude >= 5, < 40MANY_SALMON
: magnitude >= 40MOST_SALMON
: where a stream is noted as a top ten producer (as documented below)
Top 10 producer streams in the CCIRA study area were derived from the New Salmon Escapement Database System (NuSEDS) using the
MAX_ESTIMATE
field (removing zeros) for eachPOP_ID
for the period 1954-2021 (as per Central Coast escapement estimate guidance in English et al. 2016). The geometric mean ofMAX_ESTIMATE
for eachPOP_ID
was then ranked from high to low by seven salmon species/populations (Chinook, Coho, Pink even, Pink odd, Chum, Sockeye lake, Sockeye river). NuSEDS data for steelhead over this period was too sparse to define data-driven estimates of abundance to override stream magnitude-based estimates of steelhead population abundance.For streams modelled as inaccessible to salmon:
RESIDENT_FISH_ONLY
: streams with no known/modelled barrier to resident fish downstreamRESIDENT_FISH_ONLY_BARRIER_DNSTR
: streams with known/modelled barrier to resident fish downstream
Output dataset includes the column
upstream_area_ha
to enable further adjustments to this classification. Note thatupstream_area_ha
includes all watersheds upstream of a stream with a given watershed code, but does not include the area of the watershed(s) having the equivalent watershed code as the stream.
Install the following tools (for the August 2023 deliverable, the noted versions were used:
fwapg
: [v0.5.1]bcfishobs
: [v0.1.3]bcfishpass
: [v0.1.dev5]
Note: Scripts will require minor adjustments if re-running with the latest bcfishpass models.
-
Build the
bcfishpass
database using the CCIRA parameters and generate these access models for the above noted watershed groups (see instructions inbcfishpass
): -
Process NuSEDS, apply the Gowgaia model and generate deliverables:
./ccira.sh
Model output is dumped to /outputs/ccira.gpkg.zip
Streams with abundance upgraded to MOST_SALMON
based on NuSEDs productivity ranking (and their original, magnitude based abundance values) are noted in upgraded_streams.csv
Note that the salmon species codes used by bcfishpass
and PSF/NuSEDs (and in these outputs) do not quite match.
BC fish observations and bcfishpass models do not distinguish between even/odd Pink or lake/river Sockeye.
species | BC/bcfishpass | PSF/NuSEDS |
---|---|---|
Chinook | CH |
CN |
Chum | CM |
CM |
Coho | CO |
CO |
Pink (even) | PK |
PKE |
Pink (odd) | PK |
PKO |
Sockeye (lake) | SK |
SEL |
Sockeye (river) | SK |
SEL |
Column | Type | Description |
---|---|---|
ccira_id | integer | ccira model output unique identifier |
segmented_stream_id | text | bcfishpass unique stream segment id |
linear_feature_id | bigint | FWA stream segment identifier |
blue_line_key | integer | Uniquely identifies a single flow line such that a main channel and a secondary channel with the same watershed code would have different blue line keys (the Fraser River and all side channels have different blue line keys). |
edge_type | integer | A 4 digit numeric code used by the Freshwater Atlas to identify the various types of water network linear features. eg. 1050. |
downstream_route_measure | double precision | The distance, in meters, along the route from the mouth of the route to the feature. This distance is measured from the mouth of the containing route to the downstream end of the feature. |
upstream_route_measure | double precision | The distance, in meters, along the route from the mouth of the route to upstream end of the feature. This distance is measured from the mouth of the containing route to the upstream end of the feature. |
gnis_name | character varying(80) | The BCGNIS (BC Geographical Names Information System) name associated with the GNIS feature id (an English name was used where available, otherwise another language was selected). |
wscode | text | Abbreviated version of source FWA watershed code |
localcode | text | Abbreviated version of source local watershed code |
stream_order | integer | The calculated modified Strahler order. |
stream_magnitude | integer | The calculated magnitude. |
watershed_group_code | text | The watershed group code associated with the stream. |
upstream_area_ha | double precision | Area upstream of the stream(s) with the given local watershed code. NOTE - does not include the area of the watershed(s) in which the streams lie. |
barriers_ch_cm_co_pk_sk_dnstr | text | Natural barriers to salmon downstream |
barriers_dams_dnstr | text | CABD dams noted as barriers downstream |
barriers_ct_dv_rb_dnstr | text | Natural barriers to cutthroat, dolly varden, rainbow downstream |
obsrvtn_species_codes_upstr | text | Species codes of known observations upstream (for species of interest only, within the same watershed group as stream) |
species_codes_dnstr | text | Species codes of known observations downstream (for species of interest only, within the same watershed group as stream) |
model_ch | text | Fish distribution model for Chinoook (see above for method and codes) |
model_cm | text | Fish distribution model for Chum (see above for method and codes) |
model_co | text | Fish distribution model for Coho (see above for method and codes) |
model_pk | text | Fish distribution model for Pink (see above for method and codes) |
model_sk | text | Fish distribution model for Sockeye (see above for method and codes) |
model_st | text | Fish distribution model for Steelhead (see above for method and codes) |
model_ct | text | Fish distribution model for Cutthroat Trout (see above for method and codes) |
model_dv | text | Fish distribution model for Dolly Varden Char (see above for method and codes) |
model_rb | text | Fish distribution model for Rainbow Trout (see above for method and codes) |
nuseds_top10_cm | boolean | Identifies if stream is one of top 10 producers for study area for CM |
nuseds_top10_cn | boolean | Identifies if stream is one of top 10 producers for study area for CN |
nuseds_top10_co | boolean | Identifies if stream is one of top 10 producers for study area for CO |
nuseds_top10_pke | boolean | Identifies if stream is one of top 10 producers for study area for PKE |
nuseds_top10_pko | boolean | Identifies if stream is one of top 10 producers for study area for PKO |
nuseds_top10_sel | boolean | Identifies if stream is one of top 10 producers for study area for SEL |
nuseds_top10_ser | boolean | Identifies if stream is one of top 10 producers for study area for SER |
abundance | text | Abundance/fishyness index - based on distribution model, magnitude, escapement |
geom | geometry(LineStringZM,3005) | Stream segment geometry |
Natural barriers to noted species.
Column | Type | Description |
---|---|---|
barriers__id | text | unique identifier |
barrier_type | text | Natural barrier type (falls, gradient barrier, etc) |
barrier_name | text | Name of barrier, where applicable |
linear_feature_id | integer | See FWA documentation |
blue_line_key | integer | See FWA documentation |
watershed_key | integer | See FWA documentation |
downstream_route_measure | double precision | See FWA documentation |
wscode | ltree | Abbreviated version of source FWA watershed code |
localcode | ltree | Abbreviated version of source local watershed code |
watershed_group_code | character varying(4) | See FWA documentation |
total_network_km | double precision | Total length of stream upstream of barrier, useful for barrier QA |
geom | geometry(Point,3005) | Geometry |
All dams in study area, taken from Canadian Aquatic Barrier Database (CABD), as documented here
Column | Type | Description |
---|---|---|
dam_id | text | Source CABD unique identifier |
barrier_status | text | Derived from CABD passability_status_code |
dam_name | text | CABD dam_name_en |
dam_height | text | CABD dam_height_m |
dam_owner | text | CABD owner |
dam_use | text | CABD dam_use |
dam_operating_status | text | CABD operating_status |
linear_feature_id | integer | See FWA documentation |
blue_line_key | integer | See FWA documentation |
watershed_key | integer | See FWA documentation |
downstream_route_measure | double precision | See FWA documentation |
wscode | text | See FWA documentation |
localcode | text | See FWA documentation |
watershed_group_code | text | See FWA documentation |
gnis_name | text | See FWA documentation |
stream_order | integer | See FWA documentation |
stream_magnitude | integer | See FWA documentation |
geom | geometry(Point,3005) | Geometry |
From Known Fish Observations via bcfishobs
Column | Type | Description |
---|---|---|
fish_observation_point_id | integer | DataBC provided unique ID (does not remain constant over time) |
fish_obsrvtn_event_id | bigint | bcfishpass internal unique id |
linear_feature_id | bigint | See FWA documentation |
blue_line_key | integer | See FWA documentation |
wscode_ltree | ltree | Abbreviated version of source FWA watershed code |
localcode_ltree | ltree | Abbreviated version of source FWA watershed code |
downstream_route_measure | double precision | See FWA documentation |
watershed_group_code | character varying(4) | See FWA documentation |
species_code | text | See observation documentation |
observation_date | date | See observation documentation |
activity_code | character varying(100) | See observation documentation |
activity | character varying(300) | See observation documentation |
life_stage_code | character varying(100) | See observation documentation |
life_stage | character varying(300) | See observation documentation |
acat_report_url | character varying(254) | See observation documentation |
geom | geometry(PointZM,3005) | Geometry |