Code & tools
CSV Survey Points
Field observations often arrive as spreadsheet rows, while the questions about them are spatial. I built this tool to turn a CSV of survey IDs, coordinates and species presence into a GIS point layer. It also summarises the recorded presence locations so their geographic spread can be checked alongside the map.
- Input coordinates
- Degrees, minutes and seconds
- Output system
- WGS 84
- Tools
- ArcGIS Pro, ArcPy, Python, CSV
Making the observations mappable
I import the CSV into a temporary table and add decimal latitude and longitude fields. The script reads degrees, minutes, seconds and hemisphere from each coordinate string, converts them to decimal degrees and warns when a coordinate cannot be converted.
The converted fields become an XY event layer, which I export as a WGS 84 point feature class. The output places the survey records in a form that can be displayed, queried and compared with other GIS layers without manually entering each point.
Reading the presence summary
For records marked present, the tool counts observations and reports up to three northernmost, southernmost, easternmost and westernmost locations. These help identify the edges of the recorded observations and give the reader specific survey locations to inspect.
Those extremes describe the supplied records, not the species' full range. Areas without records may not have been surveyed, and a small coordinate error can affect an extreme location. I would review conversion warnings and check the mapped positions before interpreting the summary. The CSV field names and coordinate strings also need to follow the format expected by the script.