QGIS offers many common GIS functionalities provided by core features and plugins. A short summary of six general categories of features and plugins is presented below, followed by first insights into the integrated Python console.
You can view and overlay vector and raster data in different formats and projections without conversion to an internal or common format. Supported formats include:
You can compose maps and interactively explore spatial data with a friendly GUI. The many helpful tools available in the GUI include:
You can create, edit, manage and export vector and raster layers in several formats. QGIS offers the following:
You can perform spatial data analysis on spatial databases and other OGR- supported formats. QGIS currently offers vector analysis, sampling, geoprocessing, geometry and database management tools. You can also use the integrated GRASS tools, which include the complete GRASS functionality of more than 400 modules. (See section GRASS GIS Integration.) Or, you can work with the Processing Plugin, which provides a powerful geospatial analysis framework to call native and third-party algorithms from QGIS, such as GDAL, SAGA, GRASS, fTools and more. (See section Introduction.)
QGIS can be used as a WMS, WMTS, WMS-C or WFS and WFS-T client, and as a WMS, WCS or WFS server. (See section Working with OGC Data.) Additionally, you can publish your data on the Internet using a webserver with UMN MapServer or GeoServer installed.
QGIS can be adapted to your special needs with the extensible plugin architecture and libraries that can be used to create plugins. You can even create new applications with C++ or Python!
Core plugins include:
For scripting, it is possible to take advantage of an integrated Python console, which can be opened from menu: Plugins ‣ Python Console. The console opens as a non-modal utility window. For interaction with the QGIS environment, there is the qgis.utils.iface variable, which is an instance of QgsInterface. This interface allows access to the map canvas, menus, toolbars and other parts of the QGIS application. You can create a script, then drag and drop it into the QGIS window and it will be executed automatically.
For further information about working with the Python console and programming QGIS plugins and applications, please refer to PyQGIS Developer Cookbook.
If you are opening a large QGIS project and you are sure that all layers are valid, but some layers are flagged as bad, you are probably faced with this issue. Linux (and other OSs, likewise) has a limit of opened files by process. Resource limits are per-process and inherited. The ulimit command, which is a shell built-in, changes the limits only for the current shell process; the new limit will be inherited by any child processes.
You can see all current ulimit info by typing
user@host:~$ ulimit -aS
You can see the current allowed number of opened files per process with the following command on a console
user@host:~$ ulimit -Sn
To change the limits for an existing session, you may be able to use something like
user@host:~$ ulimit -Sn #number_of_allowed_open_files user@host:~$ ulimit -Sn user@host:~$ qgis
To fix it forever
On most Linux systems, resource limits are set on login by the pam_limits module according to the settings contained in /etc/security/limits.conf or /etc/security/limits.d/*.conf. You should be able to edit those files if you have root privilege (also via sudo), but you will need to log in again before any changes take effect.