To use this program, follow these steps:
* Package ID: knb-lter-vcr.2.3;
* Cataloging System:VCR;
* Data set title: A study of water quality conditions in the tidal creeks of Northampton County, Vs;
* Data set creator: Luis Lagera - ;
* Metadata Provider: - Virginia Coast Reserve Long-Term Ecological Research Project ;
* Contact: Dr Luis Lagera - - ;
* Contact: - Information manager - Virginia Coast Reserve Long-Term Ecological Research Project - jporter@lternet.edu;
Title1 ' A study of water quality conditions in the tidal creeks of Northampton County, Vs' ;
/* You should replace 'PUT-LOCAL-PATH-TO-DATA-FILE-HERE' (below) with the appropriate path;
to your data file (e.g., c:\mydata\datafile.txt). If you want to create a permanent SAS dataset, replace the WORK. specification
in the DATA statement (and SET statement in section for range checking) with a valid SAS Library reference. */
DATA WORK.data1;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile 'PUT-LOCAL-PATH-TO-DATA-FILE-HERE'
TRUNCOVER;
input
@1 SITEID $ 3.
@6 DAY 2.
@8 MONTH 2.
@10 YEAR 2.
@19 TIME 4.
@24 JUCDAY 3.
@25 BATVOL
@32 PANTEMP
@39 THCOTEM
@46 HYDTEMP
@53 HYDPH
@60 HYDCOND
@66 HYDSAL
@71 HYDSAT
@78 HYDDO ;
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */
IF (PANTEMP EQ 99) THEN PANTEMP= . ;
IF (THCOTEM EQ 99) THEN THCOTEM= . ;
IF (HYDTEMP EQ 99) THEN HYDTEMP= . ;
IF (HYDPH EQ 99) THEN HYDPH= . ;
IF (HYDCOND EQ 99) THEN HYDCOND= . ;
IF (HYDSAL EQ 999) THEN HYDSAL= . ;
IF (HYDSAT EQ 99) THEN HYDSAT= . ;
IF (HYDDO EQ 99) THEN HYDDO= . ;
LABEL SITEID ='Site Name / Code-' ;
LABEL DAY ='Day-DD' ;
LABEL MONTH ='Month-MM' ;
LABEL YEAR ='Year-YY' ;
LABEL TIME ='Time-none' ;
LABEL JUCDAY ='Julian Day-none' ;
LABEL BATVOL ='Battery Voltage-volts' ;
LABEL PANTEMP ='Panel Temperature-deg C' ;
LABEL THCOTEM ='Thermocouple Temperature (Air / Water)-deg C' ;
LABEL HYDTEMP ='Water Temperature-deg C' ;
LABEL HYDPH ='pH-pH units' ;
LABEL HYDCOND ='Conductivity-uSIEMES/cm' ;
LABEL HYDSAL ='Salinity-%' ;
LABEL HYDSAT ='Dissolved oxygen content as pement saturation-%' ;
LABEL HYDDO ='Dissolved oxygen-mg/l' ;
run;
/* The analyses below are basic descriptions of the variables.
After testing, they should be replaced. */
PROC FREQ;
TABLES SITEID;
PROC MEANS;
VAR DAY ;
PROC MEANS;
VAR MONTH ;
PROC MEANS;
VAR YEAR ;
PROC MEANS;
VAR TIME ;
PROC MEANS;
VAR JUCDAY ;
PROC MEANS;
VAR BATVOL ;
PROC MEANS;
VAR PANTEMP ;
PROC MEANS;
VAR THCOTEM ;
PROC MEANS;
VAR HYDTEMP ;
PROC MEANS;
VAR HYDPH ;
PROC MEANS;
VAR HYDCOND ;
PROC MEANS;
VAR HYDSAL ;
PROC MEANS;
VAR HYDSAT ;
PROC MEANS;
VAR HYDDO ;
RUN;
TITLE2 'Observations with one or more out of range values';
DATA bad1;
SET WORK.data1;
* List cases where data is out of range;
* Note: if no out of range cases are detected, the variable names will be listed, but no actual cases;
LENGTH BADVARS $ 255;
IF ((DAY NE .) AND (DAY LT 01)) THEN BADVARS=CAT(TRIM(BADVARS),' DAY-min');
IF ((DAY NE .) AND (DAY GT 31)) THEN BADVARS=CAT(TRIM(BADVARS),' DAY-max');
IF ((MONTH NE .) AND (MONTH LT 01)) THEN BADVARS=CAT(TRIM(BADVARS),' MONTH-min');
IF ((MONTH NE .) AND (MONTH GT 12)) THEN BADVARS=CAT(TRIM(BADVARS),' MONTH-max');
IF ((YEAR NE .) AND (YEAR LT 00)) THEN BADVARS=CAT(TRIM(BADVARS),' YEAR-min');
IF ((YEAR NE .) AND (YEAR GT 99)) THEN BADVARS=CAT(TRIM(BADVARS),' YEAR-max');
IF ((TIME NE .) AND (TIME LT 0000)) THEN BADVARS=CAT(TRIM(BADVARS),' TIME-min');
IF ((TIME NE .) AND (TIME GT 2400)) THEN BADVARS=CAT(TRIM(BADVARS),' TIME-max');
IF ((JUCDAY NE .) AND (JUCDAY LT 1)) THEN BADVARS=CAT(TRIM(BADVARS),' JUCDAY-min');
IF ((JUCDAY NE .) AND (JUCDAY GT 365)) THEN BADVARS=CAT(TRIM(BADVARS),' JUCDAY-max');
IF ((PANTEMP NE .) AND (PANTEMP LT -5)) THEN BADVARS=CAT(TRIM(BADVARS),' PANTEMP-min');
IF ((PANTEMP NE .) AND (PANTEMP GT 40)) THEN BADVARS=CAT(TRIM(BADVARS),' PANTEMP-max');
IF ((THCOTEM NE .) AND (THCOTEM LT -5)) THEN BADVARS=CAT(TRIM(BADVARS),' THCOTEM-min');
IF ((THCOTEM NE .) AND (THCOTEM GT 40)) THEN BADVARS=CAT(TRIM(BADVARS),' THCOTEM-max');
IF ((HYDTEMP NE .) AND (HYDTEMP LT -5)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDTEMP-min');
IF ((HYDTEMP NE .) AND (HYDTEMP GT 40)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDTEMP-max');
IF ((HYDPH NE .) AND (HYDPH LT 4)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDPH-min');
IF ((HYDPH NE .) AND (HYDPH GT 10)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDPH-max');
IF ((HYDCOND NE .) AND (HYDCOND LT 10)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDCOND-min');
IF ((HYDCOND NE .) AND (HYDCOND GT 100)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDCOND-max');
IF ((HYDSAL NE .) AND (HYDSAL LT 0)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDSAL-min');
IF ((HYDSAL NE .) AND (HYDSAL GT 50)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDSAL-max');
IF ((HYDSAT NE .) AND (HYDSAT LT 0)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDSAT-min');
IF ((HYDSAT NE .) AND (HYDSAT GT 200)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDSAT-max');
IF ((HYDDO NE .) AND (HYDDO LT 0)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDDO-min');
IF ((HYDDO NE .) AND (HYDDO GT 20)) THEN BADVARS=CAT(TRIM(BADVARS),' HYDDO-max');
IF (BADVARS NE '');
PROC PRINT data=bad1;
RUN;