Abstract
Describes the implementation of an automated system for producing reports displaying Christmas Bird Count data.
This publication is available in Web form and also as a PDF document.
Please forward any comments to john@nmt.edu.
Table of Contents
pickaregion.cgi: Select a regionpickaregion.cgi: Prologuepickaregion.cgi: Importspickaregion.cgi: Manifest constantspickaregion.cgi: main()buildEmptyPage(): Set up an empty
pagebuildRegionsForm(): Build the table of
region radiobuttonsaddRadios(): Add regional selection
radiobuttonsbuildRow(): Build one row of region
radiobuttonsbuildRegionCell(): Build one cell of the
region radiobuttons tablepickaregion.cgi: Epiloguetopform.py: Form constants for the top-level
pageregx.cgi: Generate a region index pageregx.cgi: Prologueregx.cgi: Importsregx.cgi: main()regx.cgi: buildEmptyPage(): Set up an empty
pageregx.cgi: buildRegionsForm: Build the
regional index formregx.cgi: buildRegionTitles(): Set up
the titles for the selected regionregx.cgi: startForm(): Set up the form
and static controlsregx.cgi: buildIndexSection(): Add the
primary and secondary index entriesregx.cgi: buildEntries(): Build all the
BaseIndex instancesregx.cgi: buildCircle(): Build entries
for one circle centerregx.cgi: addSecondaries(): Generate
secondary index entries for one circleclass RegArgs: The CGI argumentsRegArgs.__init__()regx.cgi: Epilogueregform.py: Form constants for the regional index
pagehist.cgi: Generate a history detail pagehist.cgi: Overall flowhist.cgi: Prologuehist.cgi: Importshist.cgi: Manifest constantshist.cgi: main()fullErrorPage()hist.cgi: findCircles: Pull the circle
records from the databasehist.cgi: findHistory(): Pull the effort and
census recordshist.cgi: buildXhtml()hist.cgi: buildXhtmlBody(): Main report
logichist.cgi: buildHeadings()hist.cgi: findEfforts(): Locate selected
effort recordshist.cgi: buildFilter—Set up
census record filtrationhist.cgi: updateAbbrs()hist.cgi: updateSimpleAbbrs()hist.cgi: updateCompoundAbbrshist.cgi: fixOldAbbr(): Update an
outdated bird codehist.cgi: subspLumper()—Lump
subspecieshist.cgi: lumpCompoundFormhist.cgi: lumpSimpleFormhist.cgi: outputAllRows(): Build the
body of the tablehist.cgi: buildPdf(): Render the report as a
PDF filehist.cgi: foPhase(): Create the PDF
reporthist.cgi: foWrite()hist.cgi: foMasters(): Set up the XSL-FO
page layouthist.cgi: simpleMaster()hist.cgi: foStatic(): Add running headers
and footershist.cgi: foHeader(): Set up a
headerhist.cgi: foContent(): Generate the index
and main tablehist.cgi: foTable(): Format the main
tablehist.cgi: foTableStart(): Build the table
preamblehist.cgi: foTableColumns()hist.cgi: foTableHeader(): Generate the
table's running headshist.cgi: foTableBody()hist.cgi: foColophon(): Add creditshist.cgi: convertToPdfclass HistArgs(): CGI argument
processingHistArgs.__init__()HistArgs._findLatLons(): Check all lat-lon
argumentsHistArgs._allSelected(): Report on
selected circlesHistArgs._checkLatLon(): Check one lat-lon
argumenthist.cgi: Epiloguecbchistlib.py: Prologuecbchistlib.py: Importscbchistlib.py: Manifest constantsclass ScriptError: Our exceptionopenDatabase(): Open the CBC
databasebuildErrorPage()buildErrorSox()addDocLink(): Add a link to the
documentationaddDocLinkSox(): Add a link to the
documentation (sox version)class BaseIndex: Base class for regional
page index entriesclass PriIndex: Primary regional index
entryPriIndex.__init__()PriIndex.effByYear(): Sorting function for
effort recordsPriIndex.html()PriIndex.htmlMain: First line of the
primary index entryPriIndex.soxMain()PriIndex.foMain(): Generate a primary
index as XSL-FOPriIndex.htmlAs(): Generate primary
“As” entriesPriIndex._buildAs(): Build an
“As” linePriIndex._htmlOverlaps(): Generate
primary “Overlaps” index entriesPriIndex._overlapEntry(): Generate one
overlap lineclass SecIndex: Secondary regional index
entryyearBrackets(): Display a bracketed list of
years workedcountValues(): Summarize a list of
yearspeelGroup(): Find the first date group in a
listlatLonFormat(): Present the center
coordinates in standard formatclass CbcHist: The history classCbcHist.nPhysCols(): How many physical
detail columns will this occupy?CbcHist.nCensusRows(): How many census
rows are there?CbcHist.genCensusRows(): Generate the
census rows in selfCbcHist.colLabel(): Retrieve a column
labelCbcHist.findColumn()CbcHist.genColLabels(): Generate the
logical column labelsCbcHist.__init__()CbcHist._buildCensusRows(): Build the
census rowsCbcHist._addOneEffort()CbcHist._addOneCensus()CbcHist._rowKey(): What is the ._rowMap key for this census record?class Row: Abstract class for logical
rowsRow.__init__()Row.nPhysRows(): How many physical rows
will this logical row occupy?Row.nPhysCols(): How many physical
columns?Row.fold(): Fold a logical row into
physical rowsRow._setSuffixCells(): Copy the suffix
cells to physical rowsRow.html(): Render a logical row into
XHTMLRow.fo(): Render as XSL-FOclass KeyRow: The first heading lineclass StatRow: Parent class for rows with
statisticsclass PartyHoursRow: Heading row showing
total effortclass RowLabel: Base class for row
labelsclass CensusRow: Numbers of
individualsclass HeadRowLabel: Row label for a
headingclass CensusRowLabel: Row label for kinds of
birdsCensusRowLabel.__init__()CensusRowLabel.html()CensusRowLabel._htmlSimple()CensusRowLabel._htmlCompound()CensusRowLabel.fo()CensusRowLabel._foSimple(): Render a
simple name as XSL-FOCensusRowLabel.foCompound()CensusRowLabel._foBirdName()CensusRowLabel._foItalicize(): Render in
italicsCensusRowLabel._foRealQuotes()class Cell: Base class for table
cellsclass LabelCell: Column label cellclass SpacerCell: Empty cellclass NumberCell: Base class for numeric
table cellsclass PartyHoursCell: Heading row showing
effortclass CensusCell: Accumulator for counts of
individual birdsclass CensusTotal: Number of individuals in
one categoryclass StatCell: Display a statisticclass PhysRow: One physical rowclass ColumnLayout: Column layout
controllerclass LumpedLayout: Column layout for
lumped yearsclass SplitLayout: Column layout for
split yearsclass EffortKey: A unique key for the effort
tableFOR(): Build a “for=” attributedivCeil(): Discrete rounding
functionanchorName(): Format a page anchorlatLonKey(): Generate the lat-lon key for
a given circleyearCheck(): Validate a year number form
entryaliasFactorynmAlias(): The New Mexico alias setmeanSigma(): Compute statisticsstatNumber(): Display a float without
too much precisioncombineCss(): Combine CSS classes from
different sourcesdiv.pri-divspan.pri-namespan.lat-lonspan.year-listdiv.as-divdiv.sec-divspan.sec-nametable.tbtd.coldiv.hrltd.crlcss-th-ph-cellcss-td-stat-cellcss-td-spacer-celltd.cctd.c1th.c1td.cltd.ctth.clth.ct