DEMP scripts executed by the Web user

httpd configuration
cedr and parep2 startup files merrilltest4
sh script test4
CGI script area.cgi
PERL script cgi-lib.pl
PERL script getareas.pl
CGI script pop.cgi
PERL script poplabels.pl
CGI script cases.cgi
CGI script plotcases.cgi
PERL script nocases.pl
PERL script yescases.pl
PERL script roots.pl
PERL script filelocs.pl
PERL script file2locs.pl
CGI script dempcalc.cgi
CGI script dempcalc2.cgi


httpd configuraton

On parep2, the file /h/parepinfo/conf/srm.conf contains
ScriptAlias /cdrom/ h/ngparker/lookup/cgi-bin/parep2

On cedr, the file /h/cedrinfo/www/conf/srm.conf contains
ScriptAlias /cdrom/ h/ngparker/lookup/cgi-bin/cedr


cedr and parep2 startup files merrilltest4

The startup files are /h/ngparker/lookup/cgi-bin/(parep2,cedr)/merrilltest4, which are equivalent (respectively) to http://(parep2,cedr).lbl.gov/cdrom/merrilltest4.

parep2 startup file
cedr startup file

These csh scripts are modified versions of the LOOKUP startup files in the same directories, and contain some code not relevant to DEMP.

These scripts invoke a common sh script /CEDRCD/data1/merrill/cgibin/test4.


sh script test4

This sh script writes to STDOUT a CGI form which prompt the user for his/her e-mail address. The output is analyzed by the CGI script area.cgi.

Output to area.cgi: user.


CGI script area.cgi

Input from test4: user.

This CGI script (in PERL) invokes PERL scripts cgi-lib.pl and getareas.pl to store certain variables. area.cgi writes to STDOUT a CGI form which prompts the user for the geographic area desired. The output is analyzed by the CGI script pop.cgi.

Output to pop.cgi: area; and hidden variable user.


PERL script cgi-lib.pl

This is David Brenner's PERL script which obtains values of variables from a submitted form.


PERL script getareas.pl

This PERL script stores the array @areas, containing the names of geographic areas, and several associative arrays containing variables indexed by the value of area.


CGI script pop.cgi

Input from area.cgi: user, area, level, sumlevel.
(should remove level and sumlevel from the input list)

This CGI script (in PERL) invokes PERL scripts cgi-lib.pl and poplabels.pl to store certain variables including level and sumlevel. pop.cgi writes to STDOUT a CGI form which prompts the user for the name of the density equalizing variable popradio. The output is analyzed by the CGI script cases.cgi.

Output to cases.cgi: popradio; and hidden variables user, area, level, sumlevel.


PERL script poplabels.pl

This PERL script uses the area name ($area) to store several area-specific arrays containing names of population variables (@popnames), population labels (@poplabels) etc.


CGI script cases.cgi

Input from pop.cgi: user, area, level, sumlevel, popradio.

This CGI script (in PERL) invokes the PERL script cgi-lib.pl to store input variables. cases.cgi writes to STDOUT a CGI form which asks the user about cases to be plotted on the map. The output is analyzed by the CGI script plotcases.cgi.

Output to plotcases.cgi: cases, number; and hidden variables user, area, level, sumlevel popradio.


CGI script plotcases.cgi

Input from cases.cgi: user, area, level, sumlevel, popradio, cases, number

This CGI script (in PERL) invokes the PERL script cgi-lib.pl to store input variables. It uses the PERL script yescases.pl or nocases.pl depending whether or not cases are to be plotted. plotcases.cgi writes to STDOUT an HTML page which gives the user a menu of files to be viewed or calculated. The output is analyzed by the CGI script dempcalc.cgi.

Output to dempcalc.cgi: whattocalc; and a list of hidden variables which depends on the the value of whattocalc.


PERL script nocases.pl

This PERL script creates an HTML page which gives the user a choice of files and/or maps to be displayed or created. Nocases.pl is used when no cases (real or random) are to be plotted.

Implemented values of whattocalc are:

psorig			calculate PostScript and GIF from FDIME
nickel			calculate NICKEL from FDIME
nickel			calculate simple NICKEL from simple FDIME
rnickel_to_snickel	calculate simple NICKEL from ring NICKEL
fdime			calculate ring FDIME from ring NICKEL
edime_to_fdime		calculate ring FDIME from ring EDIME
polyremove		remove triangles under 1000 sq map units
ptremove		remove pts (20%, 2000 map units) from previous map
edime_to_fdime		calculate simple FDIME from simple EDIME
extfdime		get external boundary, FDIME and NICKEL format
chkorig			check pre-DEMP CL4 map
maketri			calculate pre-DEMP map in TRI format
fdimetri		triangulate simple FDIME map
nickeltri		calculate NICKEL triangles from FDIME triangles
nickelhex		calculate NICKEL hexagons from NICKEL triangles
psdemp			calculate post-DEMP PostScript and GIF from FDIME
psarea			calculate area scatter plots, PostScript and GIF
cl4orig			make pre-DEMP CL4 from CODATA and simple NICKEL
cl4demp			calculate DEMP CL4 from original CL4
chkdemp			check post-DEMP CL4 file
cl4_to_fdime		calculate post-DEMP FDIME file
extfdime		get post-DEMP boundary, FDIME and NICKEL
tridemp			calculate post-DEMP TRI file


PERL script yescases.pl

This PERL script creates an HTML page which gives the user a choice of files and/or maps to be displayed or created. yescases.pl is used when some cases (real or random) are to be plotted.

Implemented values of whattocalc are:

bigcasegeo		get random cases by geocode
bigcasetri		calculate cases by triangle
bigcasexy		calculate original and DEMP case locations
bigorig			plot original map, Postscript and GIF
bigdemp			plot DEMP map, Postscript and GIF
realcasegeo		create real cases by geocode
fourcasegeo		get random and real cases by geocode
fourcasetri		create cases by triangle, real and random
fourcasexy		calculate original and DEMP case locations
fourdemp		plot DEMP map, Postscript and GIF
outerbox		get outer box and grid points, k=10
fournn			do NN analysis, four samples, k=10
contour			make contour maps, k=10, PostScript and GIF
outerbox		get outer box and grid points, k=20
fournn			do NN analysis, four samples, k=20
contour			make contour maps, k=20, PostScript and GIF
m20twotri		cases by triangle and demp xy, real and rando
m20nn			kth NN contour maps, real and random
m20nn			kth NN contour maps, real and random


PERL script roots.pl

This PERL script provides the site-specific http root $mpubloc and NFS root $mpubnfs of the cgibin directory. The cgibin directory $mpubloc/cgibin or $mpubnfs/cgibin contains the PERL and CGI scripts executed by the Web user; $mpubloc/cgibin/batch or $mpubnfs/cgibin/batch contains the scripts executed in the background. Roots.pl is used by filelocs.pl and file2locs.pl.

Scalar quantities:

		parep2.lbl.gov		imap.chesapeake.net		merrill.wwh.net
$mpubloc	/mpub/			/~merrill/			/
$mpubnfs	/CEDRCD/data1/merrill/	/home/merrill/public_html/	/home/merrill/www/


PERL script filelocs.pl

This PERL script provides http and NFS file locations of files which do not include individual cases.

Implemented locations include the following. These are the URL locations. Corresponding NFS locations are in $docnfs, $readmenfs, etc.

Scalar quantities:

$docloc		older documentation
$readmeloc	description of processing steps
$beateloc	map file in Beate Herrchen format
$file1loc	file document
$file2loc	file with polygon populations
$file3loc	file with polygon descriptions
$file4loc	file with polygon boundaries
$codloc		population codata file
$nickel1loc	first previous version of file, NICKEL format
$fdime1loc	first previous version of file, FDIME format
$fdimetri1loc	first previous version of file, FDIME tri format
$nickel2loc	second previous version of file, NICKEL format
$fdime2loc	second previous version of file, FDIME format
$rnickelloc	map file in ring NICKEL format - no causeways
$snickelloc	map file in simple NICKEL format - no holes
$nickelloc	map file in NICKEL format
$dimeloc	map file in DIME format
$edimeloc	map file in EDIME format
$redimeloc	map file in ring EDIME format
$sedimeloc	map file in simple EDIME format
$rfdimeloc	map file in ring FDIME format
$sfdimeloc	map file in simple FDIME format
$fdimeloc	map file in FDIME format
$extfdimeloc	external boundary, FDIME format
$extnickelloc	external boundary, NICKEL format
$psloc		original map, Postscript format
$gifloc		original map, GIF format
$chkorigloc	original map, CHK format
$fdimetriloc	triangle map, FDIME format
$nickeltriloc	triangle map, NICKEL format
$nickelhexloc	hexagon map, NICKEL format
$triorigloc	pre-DEMP map, TRI format

Arrays with one value for each choice of popradio:

@cl3origlocs	original maps, CL3 format
@cl3demplocs	DEMP maps, CL3 format
@cl4origlocs	original maps, CL4 format
@cl4demplocs	DEMP maps, CL4 format
@cl4goodlocs	last good step, CL4 format
@cl4badlocs	first bad step, CL4 format
@hsumlocs	DEMP history
@chkdemplocs	DEMP maps, CHK format
@chkgoodlocs	last good step, CHK format
@chkbadlocs	first bad step, CHK format
@tridemplocs	post-DEMP map, TRI format
@mappoplocs	pop and areas, map total
@geopoplocs	pop and areas, by geocode
@polypoplocs	pop and areas, by polygon
@fdimelocs	DEMP maps, FDIME format
@extfdimelocs	external boundary, DEMP map, FDIME format
@extnickellocs	external boundary, DEMP map, NICKEL format
@trfdimelocs	tract boundaries, DEMP map, FDIME format
@trnickellocs	tract boundaries, DEMP map, NICKEL format
@pslocs		DEMP maps, Postscript
@giflocs	DEMP maps, GIF
@ps2locs	geoarea scatter plots, Postscript
@gif2locs	geoarea scatter plots, GIF
@ps3locs	polygon area scatter plots, Postscript
@gif3locs	polygon area scatter plots, GIF


PERL script file2locs.pl

This PERL script provides http and NFS file locations of files which include individual cases.

Implemented locations include the following. These are the URL locations. Corresponding NFS locations are in $docnfs, $readmenfs, etc.

Scalar quantities:

$bigcasegeoloc = URL of cases by geocode, big random sample
$bigcasetriloc = URL of cases by triangle, big random sample
$bigorigxyloc = URL  of xy of cases, orig map, big random sample
$bigdempxyloc = URL  of xy of cases, demp map, big random sample
$bigorigpsloc = URL of Postscript file, orig map, big random sample
$bigdemppsloc = URL of Postscript file, demp map, big random sample
$bigoriggifloc = URL of GIF file, orig map, big random sample
$bigdempgifloc = URL of GIF file, demp map, big random sample
$realcaseloc = URL of real cases
$realcasegeoloc = URL of real cases by geocode
@fourcasegeolocs = URL of cases by geocode, four small samples
@fourcasetrilocs = URL of cases by triangle, four small samples
@fourorigxylocs = URL  of xy of cases, orig map, four small samples
@fourdempxylocs = URL  of xy of cases, demp map, four small samples
@fourorigpslocs = URL of Postscript file, orig map, four small samples
@fourdemppslocs = URL of Postscript file, demp map, four small samples
@fouroriggiflocs = URL of GIF file, orig map, four small samples
@fourdempgiflocs = URL of GIF file, demp map, four small samples
@m20twotrilocs = URL of cases by triangle, two samples, m=20
@m20twoxylocs = URL  of xy of cases, demp map, two samples, m=20
(m=20, real cases, k=10)
@nnm20realk10locs = URL of NN analysis, real cases, k=10
@contourm20realk10pslocs = URL of PS, contour map, real cases, k=10
@contourm20realk10giflocs = URL of GIF, contour map, real cases, k=10
(m=20, random cases, k=10)
@nnm20randk10locs = URL of NN analysis, rand cases, k=10
@contourm20randk10pslocs = URL of PS, contour map, random cases, k=10
@contourm20randk10giflocs = URL of GIF, contour map, random cases, k=10
(m=20, real cases, k=20)
@nnm20realk20locs = URL of NN analysis, real cases, k=20
@contourm20realk20pslocs = URL of PS, contour map, real cases, k=20
@contourm20realk20giflocs = URL of GIF, contour map, real cases, k=20
(m=20, random cases, k=20)
@nnm20randk20locs = URL of NN analysis, rand cases, k=20
@contourm20randk20pslocs = URL of PS, contour map, random cases, k=20
@contourm20randk20giflocs = URL of GIF, contour map, random cases, k=20
(k=10)
@outerbox10locs = URL of outer box coords, k=10
@grid10locs = URL of grid coords, k=10
@gridx10locs = URL of x grid coords, k=10
@gridy10locs = URL of y grid coords, k=10
@fournn10locs = URL of NN analysis, four samples, k=10
@contour10pslocs = URL of contour maps, k=10, PostScript
@contour10giflocs = URL of contour maps, k=10, GIF
(k=20)
@outerbox20loc = URL of outer box coords, k=20 (used for total only)
@grid20loc = URL of grid coords, k=20 (used for total only)
@gridx20locs = URL of x grid coords, k=20
@gridy20locs = URL of y grid coords, k=20
@fournn20locs = URL of NN analysis, four samples, k=20
@fournn10pslocs = URL of NN, four samples, k=10, PostScript
@fournn10giflocs = URL of NN, four samples, k=10, GIF
@contour20pslocs = URL of contour maps, k=20, PostScript
@contour20giflocs = URL of contour maps, k=20, GIF

Arrays with one value for each choice of popradio:


CGI script dempcalc.cgi

dempcalc.cgi is called from nocases.pl.

Input from plotcases.cgi: user, area, level, sumlevel, popradio, poplabel, whattocalc; and a list of NFS locations that depends upon whattocalc. The number of iterations taken (stop and step) are input for some values of whattocalc.

This CGI script (in PERL) invokes the PERL script cgi-lib.pl to store input variables. It initiates the calculation of new files.

Input directives are stored in /tmp/merrill on either parep2 or cedr. Then an e-mail message is sent to user merrill requesting that he type "dempdemon" on the appropriate machine.


CGI script dempcalc2.cgi

dempcalc2.cgi is called from yescases.pl.

Input from plotcases.cgi: user, area, level, sumlevel, popradio, poplabel, whattocalc; and a list of NFS locations that depends upon whattocalc. The number of iterations taken (stop and step) are input for some values of whattocalc.

This CGI script (in PERL) invokes the PERL script cgi-lib.pl to store input variables. It initiates the calculation of new files.

Input directives are stored in /tmp/merrill on either parep2 or cedr. Then an e-mail message is sent to user merrill requesting that he type "dempdemon" on the appropriate machine.


back to Web interface to DEMP (Density Equalizing Map Projections)


webusers.html 11/30/99 2320 EST in:

http://parep2.lbl.gov/mpub/cgibin/
parep2.lbl.gov:/CEDRCD/data1/merrill/cgibin/

http://imap.chesapeake.net/~merrill/cgibin/
imap.chesapeake.net:/~merrill/public_html/cgibin/

http://merrill.wwh.net/cgibin/
merrill.wwh.net:/~merrill/www/cgibin/


http://merrill.wwh.net/dwmerrill.html
merrill@crocker.com