accSelect = accidentsOriginal
.select(
"INCDTNO",
"STATE",
"CNTYCD",
"Latitude",
"Longitud",
"RAILROAD",
"RR2",
"RR3",
"SIGNAL",
"TYPE",
"TONS",
"TRKDMG",
"EQPDMG",
"ACCDMG",
"CAUSE",
"CAUSE2",
"DRUG",
"ALCOHOL",
"TRNDIR",
"TRNSPD",
"TYPSPD",
"TRKCLAS",
"TRKDNSTY",
"CARS",
"CARSDMG",
"CARSHZD",
"EVACUATE",
"POSITON1",
"POSITON2",
"LOADF1",
"LOADF2",
"EMPTYF1",
"EMPTYF2",
"LOADP1", // # of loaded passenger cars
"LOADP2", // # of derailed loaded passenger cars
"EMPTYP1", // # of empty passenger cars
"EMPTYP2", // # of derailted empty passenger cars
"DAY", // day of incident
"MONTH", // month of incident
"YEAR", // year of incident
"TIMEHR", // hour of incident
"TIMEMIN", // minute of incident
"AMPM", // AM or PM
"VISIBLTY", // Daylight period: 1=dawn 2=day 3=dusk 4=dark
"WEATHER" // Weather conditions: 1=clear 2=cloudy 3=rain 4=fog 5=sleet 6=snow
)
.derive({ TRKDMG: (d) => +d.TRKDMG })
.derive({ EQPDMG: (d) => +d.EQPDMG })
.derive({ ACCDMG: (d) => +d.ACCDMG })
//.derive({ Latitude: (d) => +d.Latitude })
//.derive({ Longitud: (d) => +d.Longitud })
.derive({ TONS: (d) => +d.TONS })
.derive({ STCNTY: (d) => d.STATE + d.CNTYCD }, { after: "CNTYCD" })
.derive({ VISIBLTY: aq.escape((d) => vis[+d.VISIBLTY]) })
.derive({ WEATHER: aq.escape((d) => weather[+d.WEATHER]) })
.derive({ TYPE: (d) => d.TYPE })
.derive(
{ TYPEDESC: aq.escape((d) => accidentTypeLookup[d.TYPE]) },
{ after: "TYPE" }
)
.derive({
DATESIMPLE: aq.escape((d) => new Date("20" + d.YEAR))
})
.derive({
DATETIME: aq.escape((d) =>
parseDateTime(
d.MONTH +
" " +
d.DAY +
" " +
d.YEAR +
" " +
d.TIMEHR +
" " +
d.TIMEMIN +
" " +
d.AMPM
)
)
})
.join_full(cntyLookup, ["STCNTY", "uid"])
.reify()