This series of environmental monitoring examples explores ways that IDL can help you characterize environmental conditions, perform analyses, and create visualizations.

For this example we examine conditions around a simulated nuclear waste disposal site. At varying times, tritium, a waste product of nuclear reactors, was deposited in underground storage tanks and wells in proximity to a major river. The storage tanks and wells subsequently developed leaks and now a plume of tritium-contaminated water is making its way through the sediments and toward the river.

To start off, create some basic maps and surface plots to characterize the study area. Note that the study area is 10 km x 10 km.

Assume each storage tank and well was filled with liquid waste that included tritium. Official records indicate that no additional deposits of nuclear waste were made after the "Year Filled."

Storage Tank Number

Year Filled

Tritium Initial Concentration

(pCi/L x 106)

A-401

1995

7

A-402

1983

9

A-403

1984

0*

A-404

1996

5

A-405

1995

4

*No tritium reported.

Read In and Grid the Terrain Data


Start by reading in the base data to use throughout the rest of the examples. The data resides in the file TankDataTerrain.csv in the \examples\data directory of your IDL installation. This file contains the surface terrain data of our site, in X, Y, Z coordinates (all in meters). The fourth column of data in this file contains the elevation of the surface of the underlying aquifer.

In this example, we create a template with ASCII_TEMPLATE, then read in the data using READ_ASCII.

; Create the base template and assign X, Y, Z, 
; and AQ as the variable names.
; Make sure to start the data at row 2 
; (row 1 contains column headers).
myTemplate = ASCII_TEMPLATE()
site = READ_ASCII('TankDataTerrain.csv', $
   TEMPLATE=myTemplate)

 

; Grid the data using the Kriging method 
; (set DIMENSION to 1000 
; to align with the size of the study area). 
;  Choose another gridding method if you wish.
grid = GRIDDATA(site.X, site.Y, site.Z, $
   DIMENSION=1000, METHOD="Kriging")

Create the Base Contour Map with Well Locations


Create some basic visual output to characterize the study area - start by building the base terrain contour plot. We will also use SCATTERPLOT and BUBBLEPLOT to overplot the well locations and initial tritium concentrations once the contouring is complete.

 

; Create a variable for a refactored color table. Use the REVERSE
; keyword of the COLORTABLE function on colortable #74 
; to flip the colors so that the darker colors are 
; in the lower areas of the terrain.
myCT = COLORTABLE(74, /REVERSE)
 
; Set up an index variable to hold the contour levels.
; Create the contour  plot from the gridded data. 
index = [420,430,440,450,460,470,480,490,500,510, $
   520,530,540,550,560,570,580]
myContour = CONTOUR(grid, RGB_TABLE=myCT, $
   C_VALUE=index, ASPECT_RATIO=.75, /FILL, $
   TITLE="Study Area Terrain with Tank Locations", $
   XTITLE="Meters (x10)", YTITLE="Meters (x10)")
myContour2 = Contour(grid, COLOR='black', $
   C_VALUE=index, ASPECT_RATIO=.75, /OVERPLOT)
 
; Change the font size of the title.
myContour.TITLE.FONT_SIZE = 14
 
; Set up the variables for the locations of the wells. 
; Well locations are given in the same coordinate 
; system as the (x, y) coordinates of our initial terrain.
xLoc = [66,276,566,471,484]
yLoc = [210,221,146,483,313]
zLoc = [490,483,470,480,475]
i_tritium = [7, 9, 0, 5, 4]
labels = ['A-401','A-402','A-403','A-404','A-405']

 

; Plot the relative, initial concentrations of tritium in 
; pCi/L x 10e6 using the BUBBLEPLOT function.
tritium = BUBBLEPLOT(xLoc, yLoc, MAGNITUDE=i_tritium, 
   EXPONENT=0.75, /OVERPLOT, LABELS=labels, 
   LABEL_FONT_SIZE=8, LABEL_ALIGNMENT=0.0, $
   COLOR='chocolate', LABEL_POSITION='right')

 

; Plot the centerpoints of each bubble using SCATTERPLOT.
myPlot = SCATTERPLOT(xLoc, yLoc, /OVERPLOT, SYMBOL='*', $
   SYM_SIZE=1, SYM_FILLED=1, SYM_THICK=2, SYM_FILL_COLOR='black')
 
; Add an annotation in the lower left of the plot 
; using data coordinates.
areaText = TEXT(50, 50, TARGET=myPlot, $
   '*Bubble areas proportional to initial tritium concentration.', $
   /DATA, COLOR='black', FONT_SIZE=8, FONT_STYLE='italic')

 

At this point in the process your output should look something like the following, assuming you chose to use the parameters in the examples. The initial plot displays the filled terrain contours with well locations plotted and labeled, and a visual representation of the magnitude of the initial concentrations of tritium found in each well at time T0.

Other Topics in this Series


See Also


ASCII_TEMPLATE, COLORTABLE, CONTOUR, Formatting IDL Graphics Symbols and Lines, GRIDDATA, READ_ASCII, READ_CSV, SCATTERPLOT, TEXT