Design and development of GIS software applications
Object oriented model, software engineering, Python programming
The course aims at introducing architecture and OO (Object Oriented) programming in Python, provided a comprehensive review of key principles of OO and COM (COMponents-based) software development models. The course will specifically address design and implementation of geographical applications and geoprocessing automation tasks, in the context of proprietary GIS platform ArcGIS™ 9.x e 10.
ArcGIS can be programmed in standard and advanced languages such as Visual C++™ and Java™, providing full access to native platform functionalities through the components library ArcObjects™. On the other hand, Python, is now fully integrated in the ArcGIS 10 release. ArcPy, is a simple, effective and cross-platform option for rapid prototyping and scripts development, addressing geographical management and analysis tasks. Spatial tools in Model Builder can be easily integrated in Python applications, also from outside of ArcGIS, while Model Builder spatial data models can be exported to Python as well and integrated in the framework of more complex geographical applications.
The course is part of a wider GIScience learning project, addressing both introductory and advanced topics in design and implementation of Geographical Information Systems, addressing requirements of such different fields as environmental sciences, urban planning, land use, IT, just to recall few of them.
In this framework, Python is a valuable resource for both ArcGIS scripting and complex geographical applications development.
The course, adopting a theoretical/practical approach, will cover the following topics:
- Object Oriented (OO) programming paradigm: from functional decomposition and related problems of modularity, cohesion and coupling in traditional programming models, to OO model.
- Introduction to key OO concepts and their implementation: class, polymorphism, constructors and destructors, state and behaviour (properties and functions), object (class instantiation), collections and interaction among objects.
- Hands-on sessions focused on investigation of OO concepts, through implementation of simple programs.
- Software design for OO applications: software engineering and UML (Unified Modeling Language), principles, key diagrams (Use Case, Class, State e Activity) and techniques for classes and relationships identification (CRC, Class-Responsibility-Collaborator).
- Hands-on sessions focused on software engineering and its role in designing OO applications.
- Introduction to Python: IDLE editor, and language fundamentals, including variables, mathematical operators and priorities, comments, indentation, conditional - if, elif, else - and iterative - while, for - constructs, functions, parameters and return values, tuples, lists and dictionaries, classes (creation, objects instantiation, inheritance), modules, file input/output, errors and exceptions handling, execution and debugging (print, try..except)
- Hands-on sessions focused on foundations of Python programming language and development of OO applications
- Geoprocessing in ArcGIS. Definitions, geographical models and scripting in the context of geoprocessing, architecture, Model Builder, scripts implementation. The programming model, the geoprocessor object and its history.
- How to use Python in ArcGIS: ArcPy, environmental settings, geoprocessing tools and toolboxes, performing basic tasks (interacting with layers, maps building and exporting, reference systems setting). GIS data lists, use of cursors to select, edit and add new records to both feature and object classes, creation of custom tools to integrate in ArcToolbox.
- Hands-on sessions focused on design and development of Python applications for geographic data management and geoprocessing in ArcGIS.
The course is part of a wider learning project in GIScience and GIS, applications and geographic mashup development, environmental applications. Supported by high-level professional and academic profiles, the project includes following courses:
- Introduction to GIScience: principle and techniques for application development, visualisation and spatial analysis
- Design and development of GIS software applications: object oriented model, software engineering, Python programmingand its role in geoprocessing in ArcGIS
- Design and development ofWebmapping applications: a course on theory and practice in GeoWeb 2.0 mashups design and development, integrating Google Maps and OpenLayer web services and spatio-temporal PostgreSQL/PostGIS database
- Design and development of GIS software applications: software engineering, OO and components models, programming in VBA/ArcObjects for ArcGIS 8.x/9
- Object Oriented JAVA programming for GIS applications development: a Open Source perspective to stand-alone and Web solutions
- A hands-on introduction to databases and geodatabases: A two-modules foundation course with examples in MySql, PostgreSQL/PostGIS, Oracle XE and ArcGIS/MsAccess for the design and development of Relational (I) and Spatial Databases (II)
- Business Geographics & Geodemographics
- Google Maps Mashups
- Environmental project management
- Applied groundwater flow and tran sport modeling: groundwater management at regional scale for water supply policies assessment and at local scale for environmental remediation of contamined sites
Python, QuantumGIS, ESRI ArcGIS
Who is it for?
The course is targeted to professional working in the public sector and young researchers that are interested in customising ArcGIS tasks using Python.
Location & dates
The course will take place at the Environmental Education Centre Casa Archilei , located in Fano (PU) and easily accessible from major transport links. The course will have a duration of 48 hours, with 8 hours lessons, on 8-9-29-30 may and 12-13 june 2015
RegistrationCourse fees are 1350 € + VAT (22%), to be paid in a unique instalment before starting date. Fees are reduced to 1250 € + VAT (22%) for participants with their own notebook. Further fees reduction is applicable, based on conditions stated below.
Registration before March 31th, 2015
Students regularly enrolled in degree, post-degree and Phd courses at italian or foreign universities at the moment of registration
Education Institutions, public and private companies enrolling more than one person
At the end of the course, participants attending at least 70% of the lessons will be awarded a Completion certificate.
Partecipants will be provided with full documentation about relevant course issues.
The course adopts the following textbook: Downey A.B., 2008. Think Python: How to Think Like a Computer Scientist. 3rd Ed., Green Tea Press, MA, USA. Downlodable as free-book.
Barnes D.J., 2006. Objects First with Java: A practical introduction using BlueJ. 3rd Ed. Pearson, Prentice Hall, Harlow, UK
Britton C. e Doake J., 2005. A student guide to object-oriented development. Elsevier Butterworth-Heinemann, Oxford, UK
Downey A.B., 2008. Think Python: How to Think Like a Computer Scientist. 3rd Ed., Green Tea Press, MA, USA. Downlodable as free-book
Downey A.B., 2009. Python for Software Design: How to Think Like a Computer Scientist. Cambridge University Press, Cambridge, UK
ESRI, 2004. ArcGIS 9: Writing Geoprocessing Scripts With ArcGIS. ESRI, Redlands, CA, USA
ESRI, 2006. ArcGIS 9: Geoprocessing Commando Quick Reference Guide. ESRI, Redlands, CA, USA
ESRI, 2008. Geoprocessor Programming Model: 9.3-version Geoprocessor. Scaricabile da: http://webhelp.esri.com/arcgisdesktop/9.3/pdf/Geoprocessor_93.pdf