120 likes | 126 Views
Learn the differences between programming and packaged software, the various scripting and compiled languages, and their applications in spatial modeling, database design, and more. Discover the best language for data acquisition, preparation, and execution.
E N D
Programming vs. Packaged • Packaged: • Easier if what you need is available • Programming: • Takes longer, can do anything
Related Classes • GSP 470/570: Spatial Modeling • GSP Programming II: Fall 2018 • CS 325 Database Design • W3Schools and other great web sites!
Servers Workstation Sensors Mobile
Types of Languages • Scripted • Each line of code is parsed, then executed • Fast to write, slow to execute • Great for data acquisition and preparation • Compiled • Entire program is compiled, then executed • Slower to write, faster to execute • Best where speed is needed • Large data prep (LiDAR, UAV) • Simulations
Applications w/Scripting • Excel w/VBA • R, SPSS, SAS • ArcGIS, QGIS, BlueSpray… • MatLab • Logo • Stella, GME • Browsers: JavaScript • Others…
Scripting Languages • VBA in Excel • Easiest to prep data in Excel • Python • Most common for GIS • Interfaces to SciPy, R • R • Vector and Matrix based statistics • PHP • Was most popular for server-side-scripting • Python!
Excel VBA • File -> Options -> Customize Ribbon • Under “Customize the Ribbon”, check “Developer” • Developer Tab -> Visual Basic • Right Click on the menu bar and select “Debug” to show debugging tools
Compiled Languages • VB • Windows-only • Visual Studio: powerful but expensive • Visual Studio Code? • Relatively easy to write • Java • Portable • Relatively easy to write • Free • C#: Microsoft’s answer to Java • C++: Too hard to write • Fortran: Going away
Servers Workstation Sensors Mobile
Programming Languages • Servers: • PHP • Python • C++ • C# • Java • Mobile: • Android: Java • Apple: xCode • Sensors: • Python • Workstations: • C++ • Java • Python • SQL (database) • C# • Browsers: • HTML • CSS • JavaScript
Python GIS Libraries • ArcGIS: lots of functions, expensive, slow • QGIS API is really challenging • BlueSpray: fast, limited features, documentation, testing • GeoPandas: Up and coming? • Lots of open source libraries • Only can get it to work with Anaconda? • Not as many features as ArcPy but we can do anything in Python!