Skip to content

Instantly share code, notes, and snippets.

View bixb0012's full-sized avatar

Joshua Bixby bixb0012

View GitHub Profile
@bixb0012
bixb0012 / arcpy_arcmap_list_geodatabases_in_database.py
Last active June 29, 2017 19:53
ArcPy (ArcMap): Get List of Geodatabases in Database
# Adapted from http://stackoverflow.com/questions/18141547/display-all-the-names-of-databases-containing-particular-table
#
# Reference: 1) http://desktop.arcgis.com/en/arcmap/latest/tools/data-management-toolbox/create-database-connection.htm
# 2) http://desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-classes/arcsdesqlexecute.htm
import arcpy
conn_path = # Output folder for database connection file
conn_name = # Output name of database connection file, including .sde extension
@bixb0012
bixb0012 / arcpy_describe_geodatabase_contents.py
Last active February 9, 2021 20:16
ArcPy: Describe Geodatabase Contents
#!python
# Reference: 1) https://pro.arcgis.com/en/pro-app/arcpy/data-access/walk.htm
# 2) https://pro.arcgis.com/en/pro-app/arcpy/functions/describe.htm
# 3) https://docs.python.org/3/library/os.path.html
import arcpy
import os
gdb = # Path to geodatabase
@bixb0012
bixb0012 / arcpy_arcmap_create_curved_geometries.py
Last active June 29, 2017 19:51
ArcPy (ArcMap): Create Curved Geometries
# Adapted from http://gis.stackexchange.com/questions/66551/can-arcpy-10-1-be-used-to-generate-true-curve-elliptical-polygons-in-a-file-geod
#
# Reference: 1) http://desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-functions/asshape.htm
# 2) http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Geometry_Objects/02r3000000n1000000
import arcpy
# Example 1: CIRCULARSTRING(1 5, 6 2, 7 3)
esri_json = {
"curvePaths": [[
@bixb0012
bixb0012 / python_get_file_geodatabase_system_properties.py
Last active May 20, 2017 18:07
Python: Get File Geodatabase System Properties
# Reference: 1) https://docs.python.org/3/library/time.html
# 2) https://docs.python.org/3/library/os.path.html
from time import ctime
from os.path import getmtime, getctime, split
gdb = # Path to file geodatabase
# Example 1: Creation and Modficiation Dates
print "{}\t{}\t{}".format(split(gdb)[1],
@bixb0012
bixb0012 / pyodbc_connect_database.py
Created August 30, 2016 16:43
PyODBC: Connect to Database
# Reference: 1) https://mkleehammer.github.io/pyodbc
# 2) https://docs.python.org/3/library/re.html#regular-expression-objects
import pyodbc
import re
driver_regexes = {
"mssql": ("ODBC Driver.*SQL Server", "SQL Server Native Client.*"),
"oracle": ("Oracle in.*")
}
@bixb0012
bixb0012 / arcpy_add_dataset_property_as_data_attribute.py
Last active July 31, 2019 18:18
ArcPy: Add Dataset Property as Data Attribute
#!python
# Reference: 1) https://pro.arcgis.com/en/pro-app/arcpy/functions/describe.htm
# 2) https://pro.arcgis.com/en/pro-app/tool-reference/data-management/add-field.htm
# 3) https://pro.arcgis.com/en/pro-app/tool-reference/data-management/calculate-field.htm
import arcpy
# Example 1: Adding path attribute for tables and feature classes in workspace (ArcMap and Pro compatible)
workspace = # Workspace containing feature classes
@bixb0012
bixb0012 / python_dictionary_of_wkt_test_geometries.py
Last active July 31, 2019 18:10
Python: Dictionary of WKT Test Geometries
#!python
# Reference: 1) https://www.opengeospatial.org/standards/sfa
geoms = {
'pt': 'POINT(10 10)',
'ept': 'POINT EMPTY',
'mpt': 'MULTIPOINT((15 15), (25 15))',
'empt': 'MULTIPOINT EMPTY',
'ln': 'LINESTRING(20 20, 30 30)',
'eln': 'LINESTRING EMPTY',
@bixb0012
bixb0012 / arcpy_create_latitude_and_longitude_lines.py
Last active July 31, 2019 18:05
ArcPy: Create Latitude and Longitude Lines
#!python
# Reference: 1) https://pro.arcgis.com/en/pro-app/arcpy/classes/spatialreference.htm
# 2) https://pro.arcgis.com/en/pro-app/arcpy/classes/array.htm
# 3) https://pro.arcgis.com/en/pro-app/arcpy/classes/point.htm
# 4) https://pro.arcgis.com/en/pro-app/arcpy/classes/polyline.htm
import arcpy
SR = arcpy.SpatialReference(4326)
interval = 5 # Interval of latitude and longitude lines, multiple of 1 degree
@bixb0012
bixb0012 / arcpy_arcmap_modify_layer_symbology_expanded.py
Last active March 29, 2023 22:14
ArcPy (ArcMap): Modify Layer Symbology, Expanded
#!python2
# Example 1a adapted from https://www.reddit.com/r/gis/comments/4rhvhh/map_automation_arcpymapping_make_lyr/
#
# Reference: 1) http://desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-mapping/layer-class.htm
# 2) https://docs.python.org/2/library/json.html
import arcpy
import json
lyr = # Layer object, typically from arcpy.mapping.ListLayers (arcpy._mapping.Layer)
@bixb0012
bixb0012 / arcpy_remove_holes_in_polygons.py
Last active July 31, 2019 17:55
ArcPy: Remove Holes in Polygons
#!python
# Reference: 1) https://pro.arcgis.com/en/pro-app/arcpy/classes/spatialreference.htm
# 2) https://pro.arcgis.com/en/pro-app/arcpy/classes/array.htm
# 3) https://pro.arcgis.com/en/pro-app/arcpy/classes/polygon.htm
# 4) https://pro.arcgis.com/en/pro-app/arcpy/data-access/updatecursor-class.htm
# 5) https://docs.python.org/3/library/itertools.html
import arcpy
from itertools import takewhile