Introduction to Free, Libre and Open Source Software
for Geospatial Analysis and Modeling
August, 2015
Four freedoms
There are four freedoms that user should have:
the freedom to use the software for any purpose,
the freedom to change the software to suit your needs,
the freedom to share the software,
the freedom to share the changes you make.
Four freedoms
the free software definition
by Richard Stallman and Free Software Foundation
GNU logo, a free operating system by FSF
Gratis versus Libre
for free (at no cost) is not enough
free software is free to run, study, modify and distribute
free is a matter of liberty not price
free as in freedom (as opposed to free as in free beer )
libre as opposed to gratis
also: free software != freeware
More than Open Source Code
having source code is not enough
Stallman's four freedoms require having the source code
but just having the source code doesn't imply the freedoms
open source means also open development, open community, open discussions, …
not only the possibility to see the source code
however, source code is publicly and easily accessible
Free, Libre and Open Source
free software (FS), open source software (OSS), free and open source software (FOSS), free, libre and open source software (FLOSS)
the term open source is often used for simplicity
often used by developers as it refers to a development model
the term FOSS is often used in geospatial community
free refers to user's freedom
open source refers to open development model
FOSS4G (free and open source software for geospatial)
Commercial and FOSS
FOSS can be used commercially
FOSS can be commercial but not proprietary
Famous examples:
Why industry uses open source
vendor neutrality
proprietary software has a single vendor (vendor lock-in)
open source software is independent on particular companies
open source is not influenced by vendor's current business goals
flexibility (use where you want, when you want)
interoperability
open source aims to support standards
proprietary software often uses propriety formats
cost (no license fees, no license management)
low total cost of ownership
(includes cost to upgrade or migrate)
support (many free options available by default)
money not spent on license fees used for support or features
influence in development (direct access to developers)
Types of FOSS licenses
copyleft licenses
GNU GPL
free software licenses (according to four freedoms by FSF)
code cannot be combined with proprietary (and closed) code into one program
examples: Linux, R, GRASS GIS, QGIS
Types of FOSS licenses
permissive licenses
BSD, MIT
source code can be modified, closed and sold as proprietary
more options for the developer
can combine the source code and software more freely
can make the new software proprietary
less freedoms for the user (might not get the source code, thus freedoms)
example: GDAL used in QGIS as well as in ArcGIS
Users and FOSS licenses
licenses are mostly important for the developers
users don't have to worry about the license
as long as they know that the software is under some known license
lists of known licenses:
this is different from proprietary software
user must read and agree to EULA or similar type of agreement
license is used in the meaning license to use
often paid or limited (or both) for proprietary software
applies to paid software, freeware, online services, …
FOSS development
open community of developers and users
may include individuals and companies
flexible, interoperable and portable
extensive supporting software tools for code management, bug tracking, documentation, collaboration
browse the source code on-line
anybody can modify but only selected changes go to the original project
Code sprints
developers and users working together at one place
open participation
self organized through wiki
software development, documentation, data
often associated with conferences
code sprint, community sprint, developer meeting, hackfest, hack day, hackathon, codefest, meetup
Examples:
OSGeo Bolsena 2010 ,
GRASS GIS Prague 2011 ,
OSGeo Vienna 2014 ,
QGIS Copenhagen 2015 ,
GRASS GIS Como 2015
Standardization
Standardization and open source are different but often related.
OSGeo different from OGC - Open Geospatial Consortium
sets standards for interoperability (similar to OpenGL)
both proprietary and open source software follows these
standards where it is good for them
OSGeo and OGC coordinate their activities.
OSGeo
Open Source Geospatial Foundation
By 2005 there was more than 200 FOSS4G projects: need for selection and organization
Founding projects (February 2006):
GDAL/OGR, GeoTools, GRASS, Mapbender, MapBuilder, MapGuide Open Source (Autodesk), MapServer, OSSIM
Mission: To support the development of open source
geospatial software and promote its widespread use.
OSGeo projects
Web Mapping
deegree ,
geomajas ,
GeoServer ,
MapServer ,
OpenLayers ,
PyWPS ,
ZOO-Project
Desktop Applications
GRASS GIS ,
Marble ,
QGIS ,
gvSIG ,
Optics
Geospatial Libraries and Databases
FDO ,
GDAL ,
GEOS ,
GeoTools ,
OSSIM ,
PostGIS ,
Orfeo Toolbox ,
rasdaman
Metadata Catalogs
GeoNetwork ,
pycsw
Some projects are in incubation (code and license cleanup, small community).
FOSS4G Landscape
OSGeo
global organization, local chapters
and related projects like GeoForAll
OpenStreetMap
data, applications, services
FOSS4G Landscape
LocationTech
working group at Eclipse Foundation
FOSS4G conferences
global and local conferences
Individual projects and communities
projects and communities exist on their own
Example Desktop System
GIS
QGIS, GRASS GIS
statistics
R (geostatistics, predictive modeling, …)
database, attribute data
SQLite, PostgreSQL with PostGIS, LibreOffice
graphics
Inkscape, Gimp, ImageMagic
Portability: works on Linux, Mac, Windows
Interoperability: programs designed to work with others
Example WebGIS System
backend
GRASS GIS, R, Python, SAGA GIS, GDAL
front end
OpenLayers, Django
database
PostgreSQL with PostGIS
server
ZOO-Project or PyWPS (OGC WPS, native support for GRASS GIS)
Flexibility: standards and open formats allows to switch different components
Scalability: can be copied to more machines at no cost
GRASS GIS history
1983 started at US Army CERL
as land management support system,
see an old promotional video
evolved into general purpose GIS
1999 GNU GPL, international team of developers
30 years of GRASS GIS development in 2013
check out last change
(probably just few hours ago)
last release Nov 19, 2015 [last checked Jan 2016]
GRASS GIS
portable: different OS, 32/64bit, code in C and Python
web-based infrastructure
Subversion code repository with online source code browser, feature requests, bug reports,
users and programmers manual, wiki, IRC
support
community
commercial
Faunalia, Tekmap Consulting, GDF Hannover, GIS Mentors, … freelancers
sponsors
Municipality of Trento, Fondazione Edmund Mach, Google via OSGeo, … individuals
GRASS GIS spatial data types
2D raster (imagery, DEMs, …)
2D/3D topological vector
3D raster (voxels, volumes, soil properties, …)
time series (of anything above)
GRASS GIS functionality
current version 7
almost 500 modules
more modules in GRASS GIS Addons repository
wide range of functions
raster and 3D raster
map algebra, DEM, interpolation, flow, neighborhood, solar, cost surfaces
imagery
rectification, multispectral, classification, segmentation, FFT
vector and database
buffers, overlays, conversions, networks, attribute management, SQL
spatio-temporal
temporal topology, algebra, sampling, statistics, aggregation
visualization
2D display, 3D visualization, temporal visualization, PS and PDF maps
interoperability
WMS support, export to different formats
GRASS GIS Basics
database structure
based on cartographic projections and user's need to organize data
example
north_carolina_state_plane_meters (location)
new_highway_project (mapset)
elevation (raster)
streets (vector)
wake_county (mapset)
usa_latlon (location)
interfaces
Graphical User Interface (now wxGUI, other GUIs in the past)
Command Line Interface (examples in manual)
Application Programming Interface (C for hard work, Python for scripting)
designed for easy transition between the interfaces
computational region
extent and resolution for raster computations
GRASS GIS Learning Resources
Summary
FOSS, FOSS4G, open source
software that is free to run, study, modify and distribute
solutions that are not depended on a particular company
open development, code sprints, GSoC, …
driven by user needs, not vendor needs
OSGeo
different combinations of software can be used
GRASS GIS
most established general purpose open source GIS
large portfolio of functions