I've recently created a GitHub account! I'm still learning how it all works - so please don't judge! Currently most of my repositories are private and will remain so until I get a little more comfortable with the platform and how it all works. I'm primarily using PyCharm and it's plugins as my interface to create, commit, push and pull code. Feel free to contact me via the email on my GitHub account and I can share more with you!
|
GitHub |
Provincial Geocoding ServiceShown here is the initial bit of code that is used daily (called through a scheduled task) to update the provincial locator services. In total there are 15 functions and one class that are used to simplify this process. Effectively, what's being done here is ensuring that this process cannot be run accidentally. If someone other than I has to run the process, they'll be prompted to update the required variables and ensure they have the proper connections already established.
Functionally, there are currently three services being updated daily.
The overall process involves:
|
Pseudo Nodes (NSRN Topology)Shown to the left is a brief snapshot of one of the many functions that's been developed to help maintain network continuity for the NSRN (Nova Scotia Road Network). With nearly 100,000 addressed roads and countless edits, updates and alterations being made daily you're bound to end up with errors regardless of how robust your database is. This process is designed to help locate and ultimately correct these errors quickly and easily. The overall process contains over 10 tools and one value added process:
|
Table LabelsWhen it comes to labeling features, there are a few areas in which ArcMap falls a little short. For example, once an external attribute table is related to the feature class, there is no 'built-in' way to label using the related attributes. That is where the script I wrote to the right becomes useful. It provides the means to label any features using attributes from an external attribute table.
|
Created as a Python Add-in for ArcMap, Google Earth Extents is a way for the user to quickly and easily view the extents of their ArcMap session in Google Earth. This is achieved by creating a proprietary file (KML) that is then opened. If default applications are enabled in Windows, the KML file will open in Google Earth. From then on, every time the button is pressed in ArcMap, Google Earth will be updated with the new current extents.
I feel that this is a valuable addition to any workflow, so I have included the ESRI addin file below. Feel free to download, use and share it! All I ask is that you don't claim it as your own. |
Google Earth Extents
|
Georeferencing Google
|
The scripts below (a Python Add-in and standalone tool) provide a two step process for virtually automating the collection and georeferencing of Google Earth imagery. Originally designed to allow for the capture of roughly 500 building footprints from an external source (Google Earth) that were not visible in the available provincial aerial imagery, this set of tools could easily be manipulated to serve other similar purposes.
|
Although these tools are slightly complex, I have included a brief synopsis of how these tools function together:
|
Once all the necessary images have been saved, running the standalone tool will:
|
Update ParametersPulled from a Python toolbox, this small snippet of code quickly and easily sorts alphabetically then groups the communities within each county of Nova Scotia. When combined with the rest of the tool, it enables the user to select the desired county from a drop down list and then choose one of the corresponding communities from a second drop down. The tool then builds the selection query from the inputted values and performs the rest of the designated tasks drastically reducing processing time.
|
Lunenburg County Mapbook |
Using ArcPy’s Mapping Module & Data Driven Pages it was possible to develop a script that would append two separate PDF documents (one being the title page and the other being a booklet of maps) together to create the mapbook shown below.
|