![]() |
![]() |
|
|||||
Application Development
ArcGIS
Python
Image Processing Application Development (in progress)
ArcGIS Applications
I have written a number of tools and applications for various tasks at work,for my programming class, and as a consultant. I will have screen captures and possibly sample code or compiled routines for use. Check back for updates. If you use these samples, please give me and others credit. nate@jenningsplanet.com
This application solicits a Solid Waste service type and loads the respective routes into a listbox. The user then chooses one, many, or all of the routes to automatically generate 4 sets of maps that make up the map books for the selected routes. PDFs are created based on a pre-defined template. Approximatey 500 PDFs were automatically generated in 20 minutes.
Implemented
This application provides a userform to dynamically generate a map of some common map sizes and add common elements such as title, legend, north arrow, title block for text elements, and date. Makes the page set up much easier by using a single interface. Developed for my GIS programming class.
Elements Used
This program generates an Error Matrix to compute the statistical accuracy assessment elements for a land cover classification. The final output is in a DBF which can easily be brought into Excel and reformatted, if needed. Originally developed for my Remote Sensing Class, I also use this program in my GIS programming class to discuss table creation, joining, and the use of Search, Insert, and Update Cursors. (I also have a Python version of this program as well).
Elements Used
Accuracy Assessment Statistical Elements
This custom tool allows a user to select a neighborhood from a drop down list. The map layout will zoom to the extent of the appropriate neighborhood and perform a series of spatial and attribute queries to select residential addresses to inspect to verify the City of Sacramento's Master Address Database. The selected records are automatically output to a properly formatted Excel spreadsheet. This spreadsheet (many pages) is the field form used when field verifying addresses. The maps use a pre-defined template (E size, 33x44) that is also used in the field.
Elements Used
Python
Two Python scripts were developed and linked to two separate custom ArcGIS Tools to process a street master file for an on board mobile emergency routing software. A custom ArcGIS Toolbox was created that stored the two custom tools.
Implemented
This script replicates the functionality of the Accuracy Assessment VBA version. The Python version is used in my GIS Programming class to demonstrate table creation, cursors, joins, and looping structures.
Elements Used
This script is being used to run 3 sets of Kriging operations on Califorina statewide daily precipitation and temperature data collected over a 4 year period that is organized by zip code. A kriging algorithm is used to generate a minimum, mean, and maximum surface of daily precipitation data and temperature data. Several million records of data exists for precipitation and temperature data for each year. The output of each of set of information is used in a spatial model to investigate West Nile virus vectors. This script was developed for UC Davis Medical School, Veterinary and Epidemiology Department research.
Implemented
The Rental Inspection Parcel Build process is a set of 5 Python scripts to process a parcel master file that is usable to a 3rd party, hosted Case Management web application used by the City of Sacramento's Code Enforcement Department. These scripts are run on a monthly basis to update parcel data, flag exempted properties, calculate an estimated number of billed units, flags foreclosed properties, and creates a separate addresses per parcel table.
Script 1 - Update Parcel Related Spatial and Tabular data
GIS Processes: Copy Features, SDE Tables
Script 2 - Create Parcel Master File
Data Used: Parcel Points, Assessor Master file, Assessor Appraisal Table, Assessor Sales Table, Master Address File
GIS Processes: SDE Table Views, Spatial Join, Intersect, Attribute Query, Select by Location, Add Fields, Copy Features
Script 3 - Calculate Fields
Data Used: Parcel Master file created above
GIS Processes: Attribute Query, Calculate Fields, SDE Tables and Table Views, personal geodatabase tables
Script 4 - Create Master Address/Parcel File
Data Used: Parcel Master file, Master Address file
GIS Processes: SDE Table Views, Attribute Query, Joins, Frequency, personal geodatabase tables
Script 5 - Update Parcel and Low Income Housing SDE Table Views for Maps
Data Used: Parcel Master file
GIS Processes: SDE Table Views
This is a series of scripts (PERL, Surfer Grid, DOS .BAT file, and Python) to partition, create a surface, convert from ASCII Raster to ESRI GRID, then mosaic raw LiDAR XYZ ascii text information to generate a 2 ft DEM for the City of Sacramento.
This process took 2 full weeks of 24/7 processing on a Pentium III desktop computer. Over 10 billion LiDAR XYZ values were processed. Data management of various intermediate files was paramount.
PERL Script
Originally created by Berkley graduate students. Modified to accomodate the City's LiDAR XYZ text files.
Surfer Grid Script
Originally created by Berkley graduate students. Modified to generate appropriate surface for City LiDAR data.
DOS .BAT file
ESRI Spatial Analyst Mosaic Tool
Join_Table.py - This code was developed to demonstrate to my students the following (requires ArcGIS 9.1 or later):
The code is heavily documented to show thought process.
ArcIMS
Java Script
09.07.06
I am working on an Accuracy Assessment Program that will function within ArcGIS using polygon "Accuracy Assessment Samples", the Zonal Majority routine in Spatial Analyst, and the classified imagery. Image Processing Application
Opticks is an Open Source Digital Image Processing software developed by Ball Aerospace and encourages outside parties to contribute improvements and add enhanced functionality. The code is written entirely in C++ using Windows OS and Visual C++. The "free" version of Visual C++, v. 2005 can be used to further develop Opticks.
I have started investigating Opticks as a "free" software to supplement my Remote Sensing class so that students can gain more hands on experience with the digital image processing concepts learned in class. I am hoping to develop the following plug-ins to Opticks when time permits:
Edge Detectors Image Filters - High Pass, Low Pass, statistical RADAR Processing - Slant-to-Ground Range correction, Texture Analysis Accuracy Assessment Image Classification Signature Evaluation
The Python Image Processing Application is a research project of mine that I periodically work on that I use to develop new concepts for my GIS programming class and developing Python code for use in other aspects of my professional career.
11.15.2007
I have done a little optimization on my previous code. The same 6 band 400x600 image now runs in ~10 sec v. 5 min. Thanks to Chris Barker at NOAA who provided with numpy arrays and an array method for processing a filter across an image. Be aware that a very large image will take a very long time. 6x3000x4000 took ~ 2 hrs and maxed my page file out--probably has something to do with large arrays.
11.05.2007
Here is a function I wrote that will be part of my Image Processing application. This is my first attempt at writing a "Python" function using gdal for "Python", Numeric (old NumPy/SciPy), and a window kernel. Enjoy. Please submit any comments or suggestions/methods for improvement to nate@deltateck.com
06.12.2007
I have started writing some shell code to run some basic image processing routines. The code is written entirely using the wxPython, NumPy, "Python" Image Library, SciPy, MatPlotLib, modules ("Ptyhon" for GUI apps). In the future I hope to inlcude the open source GDAL libraries under "Python."
Image Processing wxPython_v. 0.0.1_03.18.2007.py (update 03.18.2007) This is very early code written in "Python" using the "wxPython" modules that are part of "wxPython". I hope to continue work on this as time permits for my remote sensing class. This is to be used as a teaching aid to students and myself who cannot afford the commercial software, but want it a little more functional than other freeware. The "(Python) Image Library" is expected to be used.
Currently there are no functional routines, except the Help-->About.
I will include basic image processing functionality as I can get to it or others would like to contribute. Email me code/ideas at: nate@jenningsplanet.com
I would like to include:
KML
This is a new addition to the website based on something I was working on at the City and with the Google Map community. I would like to thank the assistance of Mike Williams for his input and vast knowledge of Google Maps and the API.
What is shown here are boundaries of some areas within the city of Sacramento. A KML File was created using a KML converter found at the ESRI Site (1.18.07), then used within the Google Maps. There is communication between my site and Google Maps to render the map you see here. This version does not render the label points automatically. I will have to program this until other improvements come along. The alternative version of this map that does show the labels and a legend can be found here: KMLonGoogleMaps
|
|||||||