“Agile GIS”: Building application-specific spatial analytic software from freely available software tools
Lance A. Waller, Andrew B. BarclayDepartment of Biostatistics
Rollins School of Public HealthEmory University
[email protected] supported by NIEHS Grant 2 R01 ES07750-05A1
Outline
“Lean” and “agile” software tools.Two motivating examples:
Environmental justice.Sea turtle nesting patterns.
Conclusions.
Making methodology applicable:
We want a software tool that a) accesses GIS location/attribute data,b) performs GIS operations, ANDc) calculates/plots statistical quantities.
GIS does a) and b) easily.Statistical packages do c) easily.How do we get both?
“Lean” and “agile” software
Close tie between user and developer.Use “toolbox” of objects and functions to address application (“agile”), but little else (“lean”).End user:
implements method accurately and efficiently, BUTdoesn’t master GIS or statistical
packages.
Illustration of “lean” and “agile”
GIS
Statistical Package
“Lean and agile” alternative
Advantage of “lean and agile”
Shorter learning curve.For example, put user of (software A) “behind the wheel” of (software B)…
Ingredients (GIS component):
Minimal functionality:Location/attribute data queriesLayering and buffering
GIS Toolkits (http://freegis.org/)GRASS (C++), Berkeley GIS Viewer, GISToolkit, OpenMap, Jshape, GeoTools.
Why Java?LightweightObject-orientedBrowser platform
Ingredients (Statistics/plotting):
Tools providing numerical computing power (e.g. simulation)Tools graphical display of resultsTools linking statistical results to geographic displaysComponents (e.g. Java Beans, OmegaHat, R)
Two examples of “lean agility”
Environmental justiceMap census demographicsMap environmental hazardsCompare exposure distributions for different subpopulations
Fishing pier vs. sea turtlesMap sea turtle emergencesMap fishing pierCompare emergence patterns around pier.
Child Welfare in Georgia
Type mix of substantiated incidents of child abuse by county.Locations of foster children.Basic question: What is the geographic distribution of (some statistic of interest)?
Environmental Justice
Environmental Justice: Do subgroups of the population bear a disproportionate impact of environmental hazards?LULU? NIMBY!One question of interest: Assess disparate impact due to different sites.Compare distribution of exposures between subgroups.Question: Who is exposed where?
Basic GIS operations:
Layering
Basic GIS operations:
BufferingFind areas within a user-specified distance of:• points• lines• areas
Buffers around an area
Buffers around a line feature
EJ and GIS
Typical GIS assessment of environmental justice:
Layer census data (population counts in tracts), emission locations (TRI sites).Buffer for some radius (e.g., 1 km), report population proportions inside buffers (“exposed”) and outside buffers (“unexposed”)
Allegheny County, PA
499 census tracts (1990 Census).Compare census reported “black” and “white” subpopulations.200 air emission sites in EPA’s Toxic Release Inventory (TRI) for Allegheny and surrounding counties for 1990.
Allegheny County, PA 1990
86.46%12.23%4km buffer
85.57%13.13%3km buffer
85.16%13.63%2km buffer
86.49%12.56%1km buffer
87.09%12.01%Site in Tract
Tract data
87.56%11.20%Everyone
Allegheny County
Race Category“Black” “White”
“Exposed”
Other options:Waller, Louis, and Carlin (1997,1999) compare the exposure distributions between subgroups.Exposure surrogate: inverse distance from tract centroid to closest TRI site.Plot cumulative distributions of exposure surrogate for each subpopulation.Illustrates whether subpopulations experience different exposure “profiles”.
Example: Environmental Justice
Maps census boundaries.Layers TRI sites and calculates distances.Click on map, CDFs by subgroup plotted. Mouse to find impact on particular tracts.Visually identifies sites by disparate impact with respect to exposure surrogate.http://childwelfare.net/abb/stats/AgileGIS/geotools/scdf1/
Sea Turtle Nesting Patterns
Juno Beach, FLPremier nesting beach for endangered loggerheads.990 ft. fishing pierAssess impact of pier on nesting patterns.8,000-10,000 GPS coordinates per year 1997-2000.Question: Do emergence patterns differ between years?
The life cycle of sea turtles
tofino.ex.ac.uk/euroturtle/ biology/lifec.htm
Juno Beach, Florida
Palm Beach CountyNesting beach for loggerhead and green turtles.Nesting season: May-September.Lighting restrictions in place.990-ft. fishing pier constructed 1997-1999.Permitting requires impact assessment.Palm Beach Co. Environmental Resources Management in charge of assessment.
Traci and Bud at the pier
Our data
Volunteers from the MarinelifeCenter, Juno Beach, Florida patrol beach each morning during nesting season.
How do you find a turtle nest?
Females emerge from ocean, and leave trackways.
Not all emergences result in nests (“non-nesting emergence” or “false crawl”).
Data (continued)
Global Positioning System (GPS) readings of each observed crawl.10,240 GPS’ed emergences in 1998 (12,183 observed).8,786 GPS’ed emergences in 1999.11,614 GPS’ed emergences in 2000.
A day on the beach…
Data (continued)
Differential GPS (referenced to Coast Guard Station): submeteraccuracy.Measured as feet from northern reference point.Attribute data: species, nesting/nonnesting, predation.
Juno Beach GIS data
#
#
###
#
#
#
## #
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
#
##
## #
##
#
#
##
#
#
##
#
##
##
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
##
#
##
#
#
##
###
##
##
##
# #
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
###
#
#
#
#
#
##
#
##
#
##
#
#
#
##
#
###
##
#
#
#
##
##
#
#
##
##
#
#
##
#
#
#
##
#
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
#
#
##
#
##
#
#
#
#
##
#
#
#
#
#
#
##
#
#
#
##
##
##
#
#
#
#
#
#
#
#
#
#
#
##
#
##
## #
####
##
##
#
##
#
#
#
#
##
#
# #
##
#
##
#
##
#
#
#
#
####
#
##
#
##
#
###
#
##
#
#
#
#
##
#
##
###
###
#
#
#
#
#
#
##
##
#
#
#
#
##
#
#
#
#
#
#
##
#
#
##
#
###
#
####
##
##
#
#
#
#
# #
#
#
#
#
#
##
#
#
##
#
#
#
#
#
##
####
#
#
##
#
##
###
##
##
#
#
#
#
###
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
##
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
##
###
##
#
##
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
##
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
####
##
##
#
##
#
###
#
#
#
#
#
##
##
#
#
##
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
###
#
###
##
#
##
###
#
##
#
###
#
####
#
#
##
#
##
#
#
#
##
##
#
#
#
#
##
#
###
#
#
#
#
#
#
## ###
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
####
#
#
##
#
# #
#
#
#
#
##
#
#
#
###
#
#
#
#
#
##
#
#
###
#
#
#
#
#
#
#
##
##
######
#
#
#
#
##
#
#
##
#
#
#
#
#
###
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
# #
##
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
###
##
#
#
#
##
#
#
###
#
#
#
#
#
###
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
###
#
##
#
##
#
##
#
#
#
##
####
###
#
#
#
#
#
#
#
###
#
#
#
#
#
#
##
#
##
#
#
##
#
#
##
#
#
#
##
##
#
#
#
#
#
#
#
#
#
##
####
#
#
##
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
##
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
##
##
#
#
#
#
#
#
#
#
##
##
###
#
#
#
###
##
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
#
###
#
##
##
##
##
##
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
## #
##
#
#
#
#
##
#
#
#
#
##
###
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
##
##
#
#
#
#
##
##
###
#
#
#
#
# ##
#
#
#
#
#
##
#
#
#
#
##
#
#
###
##
#
#
##
#
##
#
# ##
#
###
#
#
##
###
##
##
#
#
#
#
#
#
#
#
##
##
#
#
#
###
##
#
#
#
##
###
#
##
#
##
#
##
#
#
#
#
#
##
##
##
#
##
#
#
#
#
###
#
###
##
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
##
##
#
#
#
#
#
##
###
##
#
#
##
#
#
###
#
##
#
#
#
#
#
# #
#
#
##
#
##
#
#
#
#
#
#
##
#
#
#
##
#
##
#
#
##
#
#
#
#
#
# #
#
###
#
##
#
#
#
#
#
#
####
# #
#
#
#
##
#
#
#
##
#
#
#
##
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
##
#
#
#
# ##
#
#
#
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
###
###
#
#
#
#
##
##
##
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
###
#
##
#
##
#
#
#
#
##
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
##
###
#
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
##
#
###
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
##
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
# #
##
#
#
##
#
#
##
#
#
#
#
#
#
# #
#
#
#
#
#
##
#
##
##
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
## #
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
####
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
# #
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
# #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
####
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#Y
#Y
#Y
######################################################################################################################################################################################################
####
#
################################
#
###################################################################################################################################################################################################
#########
######################
#
######################################################################################################################################################################################################################################################################################################
#############################
################################################
#
###########
##########################
############################################################################################################################################################################################################
################################################################
#########################
########
#
######################################################
#
##########################################################################################################################################################################################
#
##########
#############################################################################################################################################################################################
####################################################
#
######
################################################################
###########################################################
####################
#######################################################################################
##############################################################################################
###############################################################################################################################################################
####################
###
######
#
########################################################
#
####################################
#
##
#######
#################
####
############
####
#######
########
###########
##############
#
##
#
#####
####################
########
########
#####
####
#
###
####
##
##
###
##
####
###
#
#####
########################################
#####################
##############################################
########
#####################
######
#########
#########################################
######################
#######
#########################
#####################
###########
###############################################
##########
##############################################
#
####
#########
#####################################################
########################################################################################################################################################################################################################
##################################################################################################################################################
#########################################################################################
#
######################
#
###########################################################################################################################################################
#
##########################################################################
#
################################
###############
##############################################################################################################
#################################################
#
##########################################################
###############################################################################################################
#########################################################
#
#############
#################
###############
#
#############################################
################################################
#
####################################
#
##########################################################################
####################################################################
#############################################
######################################################################################################################################
#
##
####################
##
###############################################################################################################################
#
#################################################
###################################################
###########################################################################################################################################
#
###################################################
#
####################################################
############
#
###################################################################################################################################################################
#############################################################################
###########################################################################################################################################################
#
###################################################################################
#
#
###############################################################################
########################################################################################################
##
#
######################
#
############################################
#
##############################################################################################################
##################################
#
############################
###############################################################################################################################################################################################
#
######
####################################################################
#############################################################################################################
##
###################################################################
###################################################################################################################################################
##############################################################################
#
##########################################################################################################################################################################################################
####################################################################################################################################################################################
########
##
#########################################################################################
#####################################################################################################################
###########################################################################################################################################
#
########################################################
#
###############################
#
#############################################################
#################################################################################################
################################################################################################################################################
#
############################################################################################################################################
#####################################################################################################################################################
#####
########################################################################################################################################################################################
#
######
#
##
#
########
##
##
##
#######
#
#
####
#
#
##
######
###
##
######
####
###
###
######
########
######
###
#
#
###
#
#
###
#
######
##
##
##
##
#########
#
#
######
##
#########
########
#
#
####
#
#
###
##################
##
#
####
###
##
##
##
#########
###
#
#####
##
####
#
#######
####################
#
#
#
##
###
###
######
#
#
##
##
##
##
###
#
##
###
####
#
#
#
#
####
##
#######
##
#
############
#
##
###############
#
#
#
#
#
##
#
##
#
#######
##
##
#######
##
#
########
#############
#########
####
#
#
#
#
####
#
#
#
##
#
######
#
######################
##
#
#########
##
##
##
#
#
#
##
#####
###
###
#
##
####
############
###
#
##
####
#####
#####
#
##
#####################
##
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
####
#
#
##
#
#
#
#
###
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
##
#
#
##
##
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#####
#
##
#
#
#
#
####
##
#
##
#
#
#
#
#
#
##
#
#
#
####
#
#
#
#
#
####
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
###
###
###
##
##
#
#
##
###
#
##
#
#
###
#
##
######
#
##
##
#
#
###
##
#
#
#
##
#
#
##
#
#
#
#
#
#
##
##
#
#
#
#
##
#
#
##
#
#
#
###
##
##
#
###
#
#
###
####
#
######
####
##
##
##
##
#
#
##
#######
#
######
######
##
#####
#
##
###
####
#
##
######
###
###
#
#
##
#
###
##
##
###
###
###
########
###
#
#####
#
#
#########
##
######
#
##
#
#
##
#
#
#
#
#
#
##
##
#
###
##
#######
#########
#
####
#
##
###
##
#
#
##
##
#
###
###
#
#
###
##
#
#
########
#####
#####
#########
####
######
####
###
#
#
####
###
#
#
#
#####
##
##
#
##
#
##
#############
##
#
#
##
#
###
##
#
######
###
#####
####
#####
##
##
##
#
#
#
#
###
##
#
#
#
#
#
#
###
####
##
##
##
#
##
#########
##
##
########
#####
#
###
##
##
##
#
#
#
#
#
#####
#
##
##
###
###
#
#
##
##
##
###
#
##
#
##
#########
##
#####
#################
#
##
##
##
###
#
###
#
#
###
##
##
#
##
###
##
####
###
#
######
####
#####
#
##
#######
##
#
##
###
##
#
####
##
######
##
#####
#
#
#
#
#######
###########
###########
##
###
##
#
##
##
#
######
#########
################
#
#
#
#
##
####
#
#
#
###
#######
##
###
######
#
#
#
#
#####
#
#####
###
#
######
#
##########
#######
#####
##########
#
###
#
#####
#
#
#############
#######
#####
####
###
##
#
#
##
#
####
#
#
##
##
#
####
##########
#######
####
#
###
###
######
########
#####
#
#
##
#######
###
####
###################
#####
#
###
####
#
####
###
#
###
#
#####
#
####
#
##
#
##
#
###
########
#
#
###
###
##
#
#
###
########
#
#
#
#
####
##
#
#
##
#
###
#
#
#
#
#
#
###
#
#
###
####
#################
######
##
##
#####
#
#
#
#########
#
##########
#
####
#
##
#
###
#####
###################################
####
#####
#
########################
########
####
###############################
##########
##
###########
#######
########
####
####################
##########
#######
######################
######
#
##########
#
#
#
####
#
###############
####
#
#######
##########
#
###
#
######
###
#
##
#######
##
#######
######
#
##
##########
##
##
##
#
#
###
####
##
#
#######
#
###################
################################
##
####
#
#######
#
#
####
##
###
#######
####
######
##
######
##
#
#######
#
#
######
##
#####
#############
##
######################
#########
######
########
#####
####
###########
#########
########
#
####
##########
######
#
##
##
##
#
###
#
####
#########
######
#####
#
#######
###############
#
#########
#######
#
#######
#####
############
####
##
#
#####
###
#
######
#
##
##
#
##
#
######
#
##
##########
#
########
#####################
#######
###########
#
##
########
###
############
###
###
#
#
###############
#####################
#
###
##########################
###
###
################
#######
#
####
###################
##########
#####
#####
#
###
###
##
#
###
#
#
#
######
##
#####
###
######
#
######################################
##################
######
##
###############
#
#######
##
###################
###############
###
###########
####################
################
#######
#
#
##
###
#############
#
#######
#
########
###############################################################################
#############
#
##############################
#####
##
#
#
######
#
#
#####
##
####
#
###
#####
#
##
############
#
#
###
#########
######
#
###
##
###
##
######
##
####################
#
##
####
##
##############
##
###
##########
#######
#############
#############
######
####
#
#
#
#
#
##
###
#
###
#
##
###
##
##
#####
#
#########
##
#
#
####################
#####
#####
#
##########
########
#
###
#####
##
##
############
######
######
##
####
##
###
#
#
##########
############################
#
####
####
#############################
###############
###########
##############
########
#######
##################################
#####
##
#########################################
########
#######
#####
##########
#####
####
##############
###########################################
################
#####
#
#############
###########
###
#############
########
###
#
########
#######
#
##############
###########
#########
##
###
#
###
#
##
######
#####
##
####
#
#
####
##############
#
#####
#####
#
#
####
#
##
####
#
#
###
##################
##
##########
####
#####
##
#
###
#
######
#
#######
##
##
#
#########
#######
###
##
#####
##
############################
#####
###
####
#########
############################
##############
#######
#####################
####################
#
############################
##
#################
############
##########################
##
##############
#################################
#############
######
#########
##
##########
#####################
####################
################
#
############
##########################################
####################################
#############################################################################
#####
##############################################################
#
###############################################
##############
#####
##################################################################
######
#####
#############
############################
#########
######################################################
#######################
###
####################################
#####
########
#########
#
#
######################################################################
##
##########
#
##
###
#####################
#
########
##
#######
#
##############
########
############
##
#############################
##
######
###
########
###############
###
###############
################
#####
####
##################
########
####
###
#
#########
#########################
#####
#################
##
###
###############################
#################
####
############
######
##############
###
#########################
###########
####
#####################
####
#############################
###########
###
########
##
#####
################
#####
#######################
####
#######
##
###
############
#######
#
###########################################
######
###########
####
##
#####
#####
######
####
################
#######
########################
#
###
##
####
##############
########################
#
#############################################
###
###############################
########################
##########
#
#
#
########
#######
##
#############################################
##########
##
#
#####
######
######
##
#####
##############
#######
#
#########
#####
#####
###############
##################
#####
##################
##
##########
############
#########################
##
########################################
###############
#######
######
#
#
####
#############
###########
#####
#
######
###
#####
####
###########
####
##############
#####
##########################
###
####
##
###########
#
################################################################
#
###########
##
###
#
#########
####
#######################
#######################################
###########
###
#
##
#####################
##
##############
######################
#################
#########################
#
#
#######
#########
###########
#######
##################
####
#######
#################################
##
####
#######
###############################################################
######################
#####
##
##
####
##
###
########
####
#
###
####
###
##
#
###
##############################
########
##
####
##########
#
####
############
##################
####
#
#######
#####
#######
#
#
#
##
###
#
###
###
#
########
#################
#########
#############
##
##
#
#
#########
#########
#
##########
###########
########
#######
######
###
######
####
###
#######
#
##
##
##
#####################################
#
#############################
#
#
############
##
###
##
######
##
###
#
###
#
###
####
#
#
###
##
######
##########
#######
#
#
####
######
######
#####
###
#
#
####
#######
##
#
######
########
######
#######
######
#
#
##
#
######
##
#
####
###
##############
#######
###############################
###########################
###############
##
#######
###################################
######
##
############
#####
###
##
#
######################
######
###
#
######
##
###
#############
######
####################
#########################################
####################
############
##
####
####
###
######
#########
#
#####
#####
##
###############
###
#
#####
#
#
####
###
####################################
###############
######
######
##
##
########
###########
###############
################
#
##
#
#
#########
##
######
##
#
###
####
##
#
#
##
#
##
##
#
########
########
#########
#############
###
#
###
#
###########
#########
####
###
##
#
###
##########
#
#
##########
#
#
#
##
####
#####
####
###
###
########
###########
##
#
#########
###
#
#
###
####
#######################
########
##########
#######
##
#######
#####
#
###########
###############
###
#########
############
#
#########
######
###
############################
########
#####
#
##
#####
###
####
######
#
#
#
#
#
####
#######
#
#
##
#
####
##
###
#
####
#
#
##
######
#
#
##
#####
##
#
###
#
####
####
#
##
###########
###
########
##
#
#
#
#
#
#######
#####
###########
####
#
#
#
##
##
#
#
#
##
#
#
#########
#
#
#
#######
#
####
####
#
#######
#
#
#########
##
##
###
#######
##
#######
#####
#########
#
##
##
#
#
##
###
###
#
##
#
#
#
####
#
#
#
###
##
######
##
###
####
##
#
##
###
###
#
##
#
####
#
#####################
##
#
###
###
###
##
#####
#
#
######
#####
#
################################
###
###
##
#
#
#
##
#################
###########
###
##
#
#######
#######
#####
######
#
#
########
##
########
#############
############
###
#
########
#
#
##
##
#############
#######
##
#
#
###
#
#
#####
##########
###
#######
#
###
##
######
###
######
####
#########
###########
##
#
##
##
################
#################
####
#
#######
##
#
##
#######
#
#######
##
#
##
#
#######
####
######
####
#
#########
#
###
##
##
###
#
#
##
##
#
#
#
#
##########
####
##
##
#
#
#
##
#####
########
#####################
##########
##
##
##################################
#####
###
##################
######
##########
#
#
#####
###
#####
#
####################
#####
###
#
##
###
##
##
#####
##
##
##
##############
#####
#######
#
#
####
#####
########
###
##
##
##
######
###
####
#########
##########
#
###
###
###########
###
###########
#######
##
#########
#
########
#####
####
#
######
#
###
##
########
##
#
#
##
#
#
#
##
###
#
#
##
######
#
###########
#
#
######
##
####
#
#
#
###
######
####
#######
#
#
############
##
####
#########
#####
######
####
##
##
##
#####
#
###
#
#####
#
#
######
##
#
#####
##
#
#
###
######
###
#
####
#######
######
##
#
#############
######################
#
###########
#######
####
###
#
#
##
##
##
#
#
##
##
########
#
#
#
##
##
####################
######
##
#
#########
#
#
##
#
#
##
##
#
#
###
######
#####
#
#
###
###
####
###
#
#
#
#
#####
##
#
##
###
#
##
#
#####
#
##
##
#
####
#
#
#
#####
###
#
#
##
#
#
##
#
##
#####
#
###
#
#
###
######
##
#
#
##
#
###
#
##
#
#
#
#
#
#
#
#
#
#
#######
#
#
##
#
####
##
###
#
#
#
#
###
##
##
#
#
#
###
####
##
##
#
##
####
#
####
#
#
#
#
###
#
#
#
##
#
###
#
#
#
######
##########
#
#
#
##
##
###
##
###########
#
#
################
####
#
#####
##
#
######
#
##
##
##
#
#
#
#
#
#
##
###
##
#
###
#
##
#
#
###
#
##
#
#
###
#
##
#
#
####
#
#
#
#
#
###
##
#
####
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
###
#
##
#
#
#
##
##
#
####
####
##
#
#
###
#
##
##
###
##
#
####
#####
#
#
#####
#
###
#
###
##
####
###########
###
#
#
#
##
#
##
#
#
#
###
##
#
#
#
#
##
#
##
#
####
#
#
##
#
#
#
##
#
##
#
#
###
###
#
#
#
##
###
##
#
####
#
##
##
#
#
#
##
##
#
##
##
#
###
#
##
##
###
#
####
##
####
###
#
#
#
#
#
#
#
##
#
##
#
##
##
##
##
##
##
#
#
#
#
#
#
#
#
#
###
#
##
###
##
#
#
#
#
##
#####
####
#######
#
#######
###
###
#
##
###
###
#
#
##
###
#
##
##
#
#
##
#
##
#
#
###
#
#
#
##
#
#########
##
#
###
##
##
#
#
#
#
#
#
##
#
#
##
####
#
#
#
#
##
#
#
#
#
#
#
#
#
###
###
#
#
#
#
#
#
#
#
##
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
##
#
##
##
#
#
#
#
##
###
#
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
###
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
##
#
#
#
###
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#######
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
######
#
##
#
#
#
#
##
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
###
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
##
#
##
##
#
#
###
###
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
#
#
###
#
#####
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
##
###
##
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
#
##
########
##
###
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
##
#
#
#
#
#
#
###
####
###
##
#
###
###
#####
#
#
##
#
##
###
#
#
#
#
#
#
#
##
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
##
#
#
##
#
#
##
#
###
#
#
###
#
##
##
#
#
#
##
##
#
#
##
#
##
#
#
#
#
#
#
#
##
#
#
#
#
####
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#####
#
#
#####
####
##
#
#
#
###
####
###
####
####
####
#
#
#
##
###
##
#
#
##
#####
#
###
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
#
###
##########
#
##
##
#
##
#
###
##
#
#
#
#
#
#
#
#
#####
##
#
#
#####
###
##
##
###
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
##
#
#
#
#
###
##
#
##
#
##
#
#
#####
###
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#####
#
#
##
#######
###
#
###
#
##
#
###
#
###
##
###
##
##
#
##
#
#
###
##
#
#
#
##
#
#
#
#
#
#
##
#
#
#####
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
##
##
#
#
##
##
#
#
###
##
#
#
#
###
##
#
#
#####
#
#
##
#
#
#
#
##
#
#
###
#
#
#
#
##
#
####
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#####
#
#
#
#
##
#
#
#
##
#
#
#
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
####
#
####
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#####
#
#
#####
#
#
#####
####
##
##
#
##
#
###
#
#
###
###
#
##
#####
#
##
#
#
#
##
#
#
#
#
#
#
##
##
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
###
###
##
#
##
##
#
#
#
##
#
#
###
#
#
#
#
#
##
####
#
##
#
#
#
#
#
###
#
##
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
##
##
##
##
##
#
#
##
#
######
##
#
#
#####
#
#
#
#
#
#
#
######
#####
#
#
#
#
#
##
#
#
#
#
##
##
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
####
#
###
#
#
#
#
##
#
#
#
##
##
#
#
##
#
##
##
#
#
##
#
#
#
#
#
###
##
#
#
###
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
##
#
#
#
##
#
#
#
###
###
##
#
#
###
##
##
#
##
#
#
#
#
#
#
####
#
###
#
#
##
#
#
##
#
##
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
##
###
##
#
###
#
#
#
##
#
#
####
##
#####
#
#
#
###
#
#
##
##
#
###
###
#
##
##
#
#
#
#
##
#
#####
#
#
#
#
#
#
##
#
##
##
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#####
#
#
#
#
#
##
#
##
#
#
#
#
#
##
#
##
##
#
##
#
#
##
#
#
##
#
##
#
#
###
######
###
#
##
###
##
#
#
###
#
#
#
#
####
#
##
##
##
##
#
#
#
##
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
###
#
#
#
#
#
#
#
#
#
##
#
#
##
#
#
######
#
#
###
###########
##
#
#####
##
#
#######
#
#
#
##
#
#
###
##
#
#
#####
#####
###
#
###########
####
##
##
######
#
##
##
############
##
###
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
##
#
#
#
#
#
#
##
##
##
###
#
#
#
#
#
###
#
##
#
#
#
###
#
##
#
##
#
###
#
##########
##
#############
####
###
##
##
#
##
#
#
#
#
#
#
#####
####
##
#
#####
#
##
###
####
############
######
##
######
#
################
##########
####
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
#
##
##
#
##
####
#
###
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
###
#
#
##
##
##
#
#
#
##
##
#
###
#
####
##
#
#
########
###
######
#
##
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
##
#
#
##
##
##
#
###
#
###
#
###
##
#
#
#########
#
#
#
##
#####
##
#
#
##
#
###
####
######
#
#
#
#
#
##
#
#
#####
#
#
##
#
#
##
#
#
###
##
###
##
#
#
###
##
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
#
###
#
#
###
####
####
##
#
########
##
##
#
#
##
####
#######
####
###
##
#
####
##
####
#
#
#
#
#
#
#
##
##
#
#
##
#
#
#
####
##
###
#
###
#
#
#
#
#
#
#
##
#
###
#
#
#
#
#
#
#
#
#
#
#
#
##
#
####
#
#
#
#
#
#
#
#
##
#####
##
##
#
#
####
#
#
##
#
#
######
######
##
###
#######
#
#
##
#
##
##
#
####
##
##
#####
#######
####
#########
#
##
###
#
###
#######
###
########
##
#################
############################################
#########
##
###
##
##############
###########################
######
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
###
##
#
#
##
##
#
##
#
#
#
#
#
#
#
###
##
#
#
#
####
###
##
#
#
####
#
#
##
#
#
##
#
########
#
###
#
##
#
######
#########
#
#
##
#####
#
#
##
####
#
##
#
###
#
##
##
##
###
####
#
####
####
####
#######
##
##
##
##
##
##########
##########
##############
##################
##
#
#
#
#
#
#
#
##
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
###
#
##
#
#
#
#
###
#
###
#
#
#
#
#
##
###
#
#
#
####
#
#######
#
###
####
#########
#
###
#
#
#
#
#
###
#####
#
#
#
##
###
##
#
#
#
#
#
####
##########
#
##
#############
#####
#
##
#####
###
######
#
###############
###
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
##
##
#
#
#
#
#
###
#
##
##
###
#
#
#
##########
##
###
#
###
#
#
#####
###
#
#####
###
###
#
##
#
#
#
#
##
###
###
#
##
#
##
#
##
#####
##
####
#
###
##
########################
#
###
###
######
###
#
####
####
#######
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
##
#
##
#
#
####
###
#########
#
##
##
#
###
###
################
#####
#
####
######
###
######
#####
#
#
#
#
####
#
#################
###
#
#
##
##
####
#
##
##
######
#
###
#
#########
#
#
#
#
#
#
#
##
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
###
#
###
####
##############
#
#
#
####
#
###
###########
###########
####
#################
##
###
#
####
##
##
##
#
##
#
#
##
#
##
###
#
#
##
#
##
#
##
##
##
####
#
##
##
###
####
#
####
##########
#######
##
#######
#
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
##
#
##
############
#
##
#####
####
#
##
##
#
###
###
#
##
##
#
##########
##
##
##
#
#
#
#
#
#
##
#
##
#
#
#
#
######
#####
######
##
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
##
#
#
#
#
#
##
#
##
#
#
########
#
#
##
#
#
#
###########
#
#
######
#
#
#
######
##
#
##
####
#
#
#
##
#
###
#
#
###
######
#
#
##
##
#
###
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#######
########
###
#######
##
#
##
###
###
#
#
###
####
#########
#
#
##
####
##########
###
#
###
####
###
#
##
###
#
#
#
#
###
###
####
#
#
#####
#
#
#
#
###
#
#
##
#
####
#
#
###
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
##
#
#
##
##
##
###
#
##
#
#
#
####
#
##
#
#
#
#
##
#
#
#####
##
##
#
#
#
##
##
#########
##
#
##
##
#
#####
#
####
#
##
####
#
##
#
#
#
#
#
###
####
#
#
##
####
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
##
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
###
##
####
##
#
#####
#
####
#
#
#####
#
##
#
##
##
#
#
###
##
#
##
##
#
#
#
#
#
####
#
##
#
##
#
#
####
#
#
#
#
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
##
#
#
#
#
##
#
#
###
#
#
#
#
###
#
#
#
#
#
#
#
#
#
####
#
#######
######
##
#####
###
#######
#
##
##
#
#
#
#####
#
#
#
#
##
#####
###
#
#
#
#
#
#
##
#
##
###
##
#
#
####
##
##
##
#
##
###
###
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
####
#
#
#
#####
#
##
####
##
#
#####
####
####
#
###
##
#
##
#
##
#
###
###
#
##
##
####
###
#
##
###
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
####
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
##
##
#
#
#
##
##
#
#
#
####
##
####
#######
##
#
####
#
###
#
##
#
##
##
##
#
#
#
##
#####
#
####
###
##
#
#
#
#
##
#
##
##
#
#
#
#
##
#
###
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
##
#
#
####
##
#
#
#
#
##
#
#
##
##
#
#
####
#
#
#
#
#
#
#
#
#
#
#
##
#
#
####
##
##
###
##
##
###
#
##
##
####
###
#
#####
###
##
#
#
#
#
#
###
#
##
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
##
#
#
##
#
##
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
###
##
#####
#
####
###
#
##
##
#
##
##
###
##
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
##
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
##
##
##
#
###
#
#
#
##
#
####
##
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
####
##
#
#####
#
#
##
#
##
##
#
##
#
#
####
#
##
##
#
###
#
##
#
#
#
#
#
#
###
###
#
#
#
#
##
##
#
#
#
#
#
#
#
###
#
#
#
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
#
#
#
#
##
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
##
#
####
#
#
#
#
#
#
#
##
#
###
#
#
#
#
#
##
##
##
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
##
##
##
#
##
#
#
#
#
#
##
#
#
###
#
#
#
#
#
#
##
###
#
#
#
#
####
#
#
##
#
#
###
#####
##
#
#
#
#
#
#
#
#
##
###
#
##
##
##
#
#
#
#
#
##
###
#
#
#
##
####
#
#
#
#
#
#######
#####
######
#
#
#####
#
#
#
##
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
##
#
#
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
###
##
#
####
#######
#
#
##
#
##
#
###
#
#
###
#
#
#
#
######
##
###
#
#
#
#
#
#
#
#
####
#######
#
##
#
#
##
#
#
#
####
###
###
#
#####
#
########
##
####
###
#
#
###
##
#############
########
###
##
###
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
###
##
######
#
#
#
####
###
#
#
##
#
#
#
###
#
#
#
#
#
##
##
#
#
#####
#
#####
#
#
#
###
####
##########
##
#
###
####
#
#
###
###
##
##
#
#
#
##
##
#####
##
#####
###
#
###
#########
#############
#
#########
####
###
#
#
##
###
#
#
#
########
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
##
###
##
#
##
#####
#
#####
#
#
#
######
##
##
#
#
#
#
#
#
#
#
####
#
##
#
###
#
###
#####
#
#
#
###
###
#####
#
#
####
####
#
#
#
#
####
#
#
##
#
#####
#
#
#
#
#
#
##
#
#
#
#
##
#
###
#
#
#
##
#
#
##
##########
##
##
##
#
#
#
#
##
###
###
#
##
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
########
#
#
#
#
#
#
###
##
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
#
#########
#
##
####
#
#
###
####
##
#
###
####
##
###
#
###########
#
###
#
####
########
#
#
###
#
#######
##
##
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
##
#
#
##
#####
#
#
####
####
#
##
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
####
#
###
##
##
##
#
#
######
##
##
###
####
##########
#
##
###
#
#
#
#
##
##
#
#
#
####
##
#
#
#
##
#
#
#
####
##
###
######
#####
##
###
##
#####
##
##
#
#
###
#
#
#
##
###
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
#
#
###
##
#
#
#
#
#
##
#
#
#
#
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
###
##
###
###
########
#
####
####
##
###
#
#
###
#
###
###
#
#
#
#
#
##
########
######
#
#
#
#
#
##
#
#
#
####
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
####
#
#
#
#
##
#
#
#
##
#
#
#
#####
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
##
#
#
#
#
#
#
##
###
#
##
##
#
###
##
##
#
#
####
#
####
####
##
###
##
###
##
#
#
##
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
##
#
#
##
#
#
##
##
##
#
#
#
#
#
##
##
#
#
#
#
#
#
###
#
###
#
#
#
##
#
####
########
###
####
##
##
#
#
##
#######
#
######
##
##
####
#
#####
###
###
#
#
##
#
#
#
#
#
#####
#
#####
##
##
###
##
#
#####
####
####
####
#
##
##
#
############
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
#
#
#
#
#
#
##
######
###
####
#
##
#
#
####
######
#####
#
####
###
#####
#
####
########
###
#
#
#
#
#
##
####
####
#
#
#
####
#
#
#
#
#
###
#
##
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
####
#
#
#
#
#
#
#
#
#
#
#
#
#
#####
#
#
#
###
###
#
#
##
#
##
#
##
#
##
###
#
###
#
###
#
#
######
#
#
##
####
#
#
#
###
##
#
##
###
#
##
####
#
#
#
#
#
#
#
#
##
#
###
#
##
#
#
#
#
#
###
####
#
#
#
#
#
#
#
#
#
#
##
#
##
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
##
##
##
#
##
#
#
#
#
###
###
#
#
#
#
##
#
#
##
##
#
#
#
#
#
#
###
####
#
##
##
#
##
##
#
#
#
##
#
#
#
#
#
#
###
##
#
##
###
#
####
#
##
###########
#
#
#
#
#
#
##
#
#
#
#
#
#
#
####
#
####
###
#
##
#
#####
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
#
#
#
#
###
##
##
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
######
#####
##
#
#
##
##
#
#
#
##
#
#
#
#
##
###
#
####
##
#
###
#
###
#############
###
###
##
##
#
##
#
#
#
#
#
#
##
##
#
###
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
##
#
####
#
#
#
#
#
#
#
###
###
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
###
##
#
##
#
#
#
#
#
##
#
#
#
#
#
######
#
#
##
#
#
#
#
#
##
#
####
#
#
#
##
###
#
##
##
###
##
#
###
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
###
#
#
##
#
#
#
##
#
#
#
#
#
#
#
##
#
##
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#######
#
#
#
#
#
#
##
#
##
##
###
#
#
#
#
#####
#
#
#
##
#
#
#
#
#
##
#
##
#
#
####
##
##
##
#
#
#
#
##
##
#
#
#
#
##
#
#
#
#
#
#
###
###
#
#
###
#
#
#
#
#
#
##
#
#
#
#
##
##
#
#
#
#
#
#
#
#
#
##
#
#
###
#
##
#
#
#
#
#
#
#
###
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
##
###
#
#
##
####
##
###
#
#
#
####
##
####
##
##
##
#
##
###
#
#
###
#
#
#
#
#
#
####
##
#
#
##
#
##
##
####
###
########
##
###
#########
#
###
#
#
##
##
####
#
#
#
#
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#####
#######
#
##
##
#
#
#
###
###
#####
##
##
#########
########
##
##
#
#######
#####
##
#
##
#
##
#
####
#
#
###
#
#
#
#
##
#
#
###
###
#
##
###
###
###
##
##
#
#
##
#
#
####
######
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#####
##
##
#
#
#
###
#
#
#
#
#
##
#
####
######
##
####
##########
###
#######
#
####
#
#
######
##
###
#
##
#
#
#
##
####
#
#
####
##
####
#
#
##
#
#
#
#
##
###
#
#
#
##
#
#
##
#
##
#
#
##
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#####
###
#
#
#
###
##
#######
#
#
##
###
#
####
##
#
##
#
#
##
#
##
#
######
#
#
######
##############
#
#
###
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
##
#
#
#
#
#
#
##
#
#
##
#######
#
##
#
#
##
##
##
##
#
####
##
#
###
#
#
#
##
##
###
###
##
#
#
#
#
#
##
#
#
###
#
#
##
#
#
#
##
#
#
##
##
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
##
###
#
#
#
#
##
##
#
#
#
##
#
#
#
#
#
#
#
###
#
#
#
#
#
##
#
##
#
#
####
#####
##
###
##
###
#
###
##
######
###
##
######
#
#
#
#
#
#
##
#
#
#
##
###
#
#
##
###
##
##
###
###
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
###
#
##
#
#
#
##
####
#
#
#
#
#
###
###
##
##
##
######
##
#
#
#
##
#
#
##
###
##
#
#
##
#
##
#
#
#
#
#
##
#
#
#
#
##
#
#
###
#
#
##
#
#
#
#
#
#
##
#
#
#
#
#
##
#
#
#
#
#
###
#
##
#
#
#
###
###
#
##
#
#
##
#
#
###
#
##
##
##
#
#
######
##
#
####
#
#
#
#
#
#
#
#
##
##
#
#
##
###
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
##
#
##
#
#
#
##
##
#
#
##
#
###
##
#
#
#
#
#
##
#
###
#
#
#
#
#
##
#
#
#
#
#
##
#
###
###########
###
#
##
#
##
#
#
#
#
#
#
#
#
#
#
######
###
#
##
##
#
###
##
##
#
#
#
#
##
####
##
##
#
##
#
#
#
#
#
####
#
#
#
#
####
#
###
#
##
######
###
##
#
#
#
#####
#
##
#
###
####
#
####
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
##
#
#
#
#
#
#
####
#
#
#
#
##
#
#
#
##
##
#
##
######
####
#
#
#
#
##
#
##
####
####
######
#
####
##
####
#
#
#
###
#
#
##
##
###
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
##
#
#
#
#
#
###
#
#
##
#
#
#
##
#
##
##
#
####
##
##
###
#
#
#
##
##
##
###
#
#
#
#
#
#
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
###
#
#
#
#
######
####
#
#
##
#
#####
#
##
#
###
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
####
#
########
##
##
##
#
#
##
######
#
###
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
#
#
###
###
#
#
#
#
#
#####
#
##
##
#
##
#
#
#
###
#############
#
####
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
##
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
####
####
##
#
###
#
##
#
##
#
###
#
#
##
##
#
##
##
#
#
##
#
#
#
#
#
#
##############
####
########
##
##
#
##
#
#
#
##
##
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
#
####
#
##
#
#
#
#
##
####
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#####
###
#
##
#
##
#
#
#
#
#
####
#
#
#
#
#
###
#
#
#
#
#
#
#
########
##
#
###
###
####
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
##
##
###
####
#
##
##
##
###
################
#
##
#
#
#
#
###
#
#
####
##
##########
#####
#
#
##
####
#
#
#
##
#
#
#####
#
#
#
#
#
#
##
####
##
#
###
#
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
##
#
#
###
#
#
#
#
#
#
#
#
#
##
###
#
#
#
#
#######
#
#
#
#########
#
#
##
##
###
#
##
##
########
######
#
###
#
#
#
###
##
#
#
#
#
##
#
##
##
##
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
###
#
##
#
##
#
####
#
#
####
###
#
#
#
##
####
###
#
###
##
#
##
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
####
##
####
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
#
#
#
###
#
###
###
##
#
#
#
###
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
###
#
#
##
#
#
#
#
#
#
#
#
##
#
##
#
####
##
##
#
#
#
#
#
###
###
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
##
#
#
#
#
#
##
#
#
#
###
#
###
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
###
#
#
#
#
#
#
#
##
#
#####
####
#
#
#####
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
##
#
#
#
##
#
#
#
#
#
####
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
###
#
##
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
##
#
#
#
###
#
#
##
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
##
#
#
#
#
#
#
#
#
###
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
##
#
#
#
#
#
#
#
#
#
#
###
##
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#Y#Y
#Y
#Y
Juno Beach Turtle Nesting Data 1998-2000Layers: PhotographsGPS EmergencesINB Zones
Statistics
Consider emergence locations along a line.Want “intensity” function (number of emergences per unit area).Estimate intensity for each year via kernel estimators.H0: Intensities the same for each year.H0: ratio = 1 everywhere along beach.
Significance
Monte Carlo envelopes.“Random labelling”.Keep emergence locations, randomly assign year to each location.Calculate ratio of intensities to assess amount of “wiggle” under H0.
Intensities
Log(ratio of intensities)
Software
Software:Input: .dbf file for a particular year.Processing: R + splancs (spatial point process add on library)
• scan for location and species information in .dbf file
• calculate intensities, ratios, and Monte Carlo confidence bands.
Output: Bitmap figures that can be layered into ArcView GIS with aerial photographs, and GPS locations.
Extract species, location“Linearize” beach (loess)
Project points to curveKernel estimationRatio calculation
Random labelling simulationsCreate .bmp figure
GPS data to .dbf file
Extract species,location
.bmp to ArcView for display
http://cran.r-project.org/
Proof of concept: Bud applies softwaredeveloped for Juno Beach to assessimpact of beach renourishment projecton different stretch ofbeach.
Conclusion: Turtles move south of impactedarea.
Bud’s graphic >>>>>>
Pros to agile GIS
Provides targeted (lean) software for user.Particularly useful for repeated tasks.Built from components rather than forcing large package to do something it wasn’t designed to do.Each user uses majority of functionality of software.Free and open-source software (http://sourceforge.net/).
Cons to agile GIS
Constantly under development.Multiple tasks?Lower level programming for developers.Free software.
Conclusions
Result: Agile GIS tools for environmental justice/wildlife monitoring.Developing idea.Brings methodology directly to end user.Attractive alternative to mastering two domains.
www.sph.emory.edu/~lwaller