RAINBOWSTATS™ COMMAND REFERENCE

DART

Retrieve daily fish passage counts and river conditions from Columbia River DART for ecological time-series analysis.

DART stands for Data Access in Real Time. Columbia Basin Research at the University of Washington provides access to fish passage and environmental records for the Columbia Basin. RainbowStats converts a selected station and measurement into a daily data series that can be charted, transformed, and used in statistical models.

Syntax

series=DART("station","variable")
ArgumentDescriptionExample
stationDART project or station code, supplied as a quoted string."BON"
variableFish category or environmental measurement, supplied as a quoted string."CHINOOK" or "TEMPERATURE"

Returns: one daily data series, with observation dates and units. The two-argument command requests records from 2000 through the current date, subject to availability for the chosen station and variable. The current year is incomplete.

Use the uppercase station and variable codes shown below.

Station examples

CodeStationRiver
BONBonneville DamColumbia River
MCNMcNary DamColumbia River
LWGLower Granite DamSnake River

These are station examples, not a complete DART station directory. Available fish categories, environmental variables, and historical coverage differ by station.

Fish passage variables

Numeric fish passage series use fish/day. Categories reflect the source report; availability and counting definitions should be checked in DART metadata.

VariableDescription
CHINOOKChinook salmon passage
JACK_CHINOOKJack Chinook passage
STEELHEADSteelhead passage
WILD_STEELHEADWild steelhead passage
SOCKEYESockeye salmon passage
COHOCoho salmon passage
JACK_COHOJack coho passage
SHADAmerican shad passage
CHUMChum salmon passage
PINKPink salmon passage
LAMPREYCombined lamprey count from the source report
LAMPREY_DAYDaytime lamprey count
LAMPREY_NIGHTNighttime lamprey count
LAMPREY_LPSLamprey passage-system count
BULL_TROUTBull trout passage
Interpretation: passage counts measure reported passage at a monitoring location. They are not, by themselves, estimates of basin-wide population, unique fish, or survival. Do not assume that related source categories are mutually exclusive or add them without checking their definitions.

River and dam-operation variables

VariableDescriptionUnits
TEMPERATUREReported water temperatureDegrees Celsius (degC)
OUTFLOWReported project outflowThousand cubic feet per second (kcfs)
SPILLReported spill flowkcfs
SPILL_PERCENTReported spill percentagePercent
INFLOWReported project inflowkcfs
ELEVATIONReported project pool elevationFeet (ft)

1 kcfs = 1,000 cubic feet per second. Consult DART metadata for measurement location, daily aggregation, and the elevation datum. Fish counts, temperature, flow, percentages, and elevation have different units; chart them separately or use an appropriate axis or transformation.

Examples

1. Chart Chinook passage at Bonneville

salmon=DART("BON","CHINOOK")
LINE_CHART(salmon)

2. Chart Bonneville water temperature

temp=DART("BON","TEMPERATURE")
LINE_CHART(temp)

3. Retrieve river-operation measurements

flow=DART("BON","OUTFLOW")
spill=DART("BON","SPILL")
spillpct=DART("BON","SPILL_PERCENT")
inflow=DART("BON","INFLOW")
elevation=DART("BON","ELEVATION")
LINE_CHART(flow,spill)

4. Compare passage at three dams

bon=DART("BON","CHINOOK")
mcn=DART("MCN","CHINOOK")
lwg=DART("LWG","CHINOOK")
LINE_CHART(bon,mcn,lwg)

The three locations have different run composition, migration timing, and geographic coverage. Same-day counts do not necessarily represent the same fish moving between dams.

5. Model passage with monthly seasonal controls

Place the dependent variable first in the list. This example models Chinook passage using temperature, outflow, spill, and monthly dummy variables.

salmon=DART("BON","CHINOOK")
temp=DART("BON","TEMPERATURE")
flow=DART("BON","OUTFLOW")
spill=DART("BON","SPILL")
hydro=LIST(salmon,temp,flow,spill)
hydro=ADD_MONTHLY_DUMMY_SERIES(hydro)
model=REGRESSION(hydro)
acf=EXTRACT(model,autocorrelation)
SLIDESHOW(model,acf)

6. Examine a fixed temperature split

In this list, column 1 is temperature; column 0 is the dependent variable. The model fits separate regressions at or below, and above, the supplied threshold.

salmon=DART("BON","CHINOOK")
temp=DART("BON","TEMPERATURE")
flow=DART("BON","OUTFLOW")
spill=DART("BON","SPILL")
hydro=LIST(salmon,temp,flow,spill)
hydro=ADD_MONTHLY_DUMMY_SERIES(hydro)
threshold=FIXED_THRESHOLD_REGRESSION(hydro,1,20)
summary=EXTRACT(threshold,model)
below=EXTRACT(threshold,below_model)
above=EXTRACT(threshold,above_model)
pooled=EXTRACT(threshold,pooled_model)
SLIDESHOW(summary,below,above,pooled)

The 20°C split is an illustrative modeling choice, not a threshold established by this command. Each regime has its own coefficients, so any improvement in fit applies to the full split model, not solely to the temperature slope.

Data handling and analysis notes

Source and metadata

Data access is provided by Columbia River DART, Columbia Basin Research, University of Washington. Original monitoring agencies and counting programs are identified in the source metadata.

Command documentation checked October 20, 2026. Historical coverage and current-year availability depend on the station, variable, and source updates.