{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 28 Parsing QGIS Style Files to GemGIS\n", "\n", "The following will present how to load QGIS style files (QML files) into `GemGIS`, how to set the colors for [GeoPandas](https://geopandas.org/) plots and how to automatically set the surface colors for a [GemPy](https://github.com/cgre-aachen/gempy) model. \n", "\n", "QML is an XML format for storing layer styling. A QML file contains all the information QGIS can handle for the rendering of feature geometries including symbol definitions, sizes and rotations, labelling, opacity and blend mode and more.\n", "\n", "\n", "\n", "Sources: https://docs.qgis.org/3.4/en/docs/user_manual/appendices/qgis_file_formats.html#qml-the-qgis-style-file-format" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set File Paths and download Tutorial Data\n", "\n", "If you downloaded the latest `GemGIS` version from the Github repository, append the path so that the package can be imported successfully. Otherwise, it is recommended to install `GemGIS` via `pip install gemgis` and import `GemGIS` using `import gemgis as gg`. In addition, the file path to the folder where the data is being stored is set. The tutorial data is downloaded using Pooch (https://www.fatiando.org/pooch/latest/index.html) and stored in the specified folder. Use `pip install pooch` if Pooch is not installed on your system yet." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-03-17T11:24:00.292523Z", "start_time": "2021-03-17T11:23:58.137423Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`\n", "C:\\Users\\ale93371\\Anaconda3\\envs\\test_gempy\\lib\\site-packages\\theano\\configdefaults.py:560: UserWarning: DeprecationWarning: there is no c++ compiler.This is deprecated and with Theano 0.11 a c++ compiler will be mandatory\n", " warnings.warn(\"DeprecationWarning: there is no c++ compiler.\"\n", "WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.\n", "WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.\n" ] } ], "source": [ "import gemgis as gg\n", "file_path ='data/28_parsing_QGIS_style_files/'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-03-17T11:24:00.588008Z", "start_time": "2021-03-17T11:24:00.324315Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading file '28_parsing_QGIS_style_files.zip' from 'https://rwth-aachen.sciebo.de/s/AfXRsZywYDbUF34/download?path=%2F28_parsing_QGIS_style_files.zip' to 'C:\\Users\\ale93371\\Documents\\gemgis\\docs\\getting_started\\tutorial\\data\\28_parsing_QGIS_style_files'.\n" ] } ], "source": [ "gg.download_gemgis_data.download_tutorial_data(filename=\"28_parsing_QGIS_style_files.zip\", dirpath=file_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load Files\n", "\n", "A shape file containing Polygons is loaded for demonstration." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-01-03T09:07:26.591726Z", "start_time": "2021-01-03T09:07:23.719677Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`\n", "C:\\Users\\ale93371\\Anaconda3\\envs\\test_gempy\\lib\\site-packages\\theano\\configdefaults.py:560: UserWarning: DeprecationWarning: there is no c++ compiler.This is deprecated and with Theano 0.11 a c++ compiler will be mandatory\n", " warnings.warn(\"DeprecationWarning: there is no c++ compiler.\"\n", "WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.\n", "WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idformationgeometry
0NoneSand1POLYGON ((0.256 264.862, 10.593 276.734, 17.13...
1NoneTonPOLYGON ((0.256 264.862, 0.188 495.787, 8.841 ...
2NoneSand2POLYGON ((0.188 495.787, 0.249 1068.760, 278.5...
3NoneSand2POLYGON ((511.675 1068.852, 971.698 1068.800, ...
\n", "
" ], "text/plain": [ " id formation geometry\n", "0 None Sand1 POLYGON ((0.256 264.862, 10.593 276.734, 17.13...\n", "1 None Ton POLYGON ((0.256 264.862, 0.188 495.787, 8.841 ...\n", "2 None Sand2 POLYGON ((0.188 495.787, 0.249 1068.760, 278.5...\n", "3 None Sand2 POLYGON ((511.675 1068.852, 971.698 1068.800, ..." ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import gemgis as gg\n", "import geopandas as gpd\n", "\n", "polygons = gpd.read_file(file_path + 'interfaces_polygons.shp')\n", "polygons" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting the data with default colors" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2021-01-03T09:07:26.766517Z", "start_time": "2021-01-03T09:07:26.593729Z" } }, "outputs": [ { "data": { "image/png": "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S0uDzWaD2+32LfN4PJg4cWJU7YfGxsZbzk40Gg1yc3Ojaj/cKJBjws3rWltbYbVab7mNcYtg3KAKBw6HQ5w5c6a4adMmX++1srIysbu7W+7Sgq6lpUUsKysTX3/99VvWPfnkk+JTTz0l9vT0+HqqHDt2TBRFUdy0aZO4cOFCsbGxUWxpaREfeOAB8Y033pC6/JC53pFAFKNrP9hsNnHWrFnir371K9HlcolHjhwRCwoKxKNHj0bVfqiqqhJzc3PF9957T/R6veKBAwfEwsJCsaKiIqr2w9dff92r99pgP3tlZaVYVFQkHjp0SLTb7eIzzzwjPv744/22HzWhI4rXuvj97d/+rVhQUCAuWbJEPHr0qNwlhcRrr70mjh8/XiwoKOj138svvyy2tbWJK1euFEtKSsQ5c+b06pnidrvFl19+WZwxY4ZYWloqrl27tlePp3B3Y+hE2344f/68+KMf/UgsKSkR77rrLvG9994TRTH69sNf/vIXcfHixWJhYaH43e9+V9y1a5coitG1H24OnUA++4cffijee++9YmFhofj444/323NNFEWR8+kQEZFkouaeDhERyY+hQ0REkmHoEBGRZBg6REQkGYYOERFJhqFDRESSYegQEZFkGDpERCQZhg4REUnm/wM1CvnDVtQhMQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "polygons.plot(column='formation', aspect='equal', legend=True)\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading the QML File" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Loading a QML style file. The GeoDataFrame of the plotted polygons have to be provided to create a list of colors. These colors are equal to the `unique()` formations the geological map contains. The surface colors can be loaded with ``load_surface_colors(..)`` by providing the path to the style file and the corresponding GeoDataFrame." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2021-01-03T09:07:26.797533Z", "start_time": "2021-01-03T09:07:26.768520Z" } }, "outputs": [ { "data": { "text/plain": [ "['#b35a2a', '#b35a2a', '#525252']" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cols = gg.utils.load_surface_colors(path=file_path + 'style.qml', \n", " gdf=polygons)\n", "cols" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2021-01-03T09:07:26.812544Z", "start_time": "2021-01-03T09:07:26.799547Z" } }, "outputs": [ { "data": { "text/plain": [ "array(['Sand1', 'Ton', 'Sand2'], dtype=object)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "polygons['formation'].unique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting the data with loaded colors\n", "\n", "The Polygons can now be plotted using ``matplotlib`` ListedColormap feature." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2021-01-03T09:07:26.972584Z", "start_time": "2021-01-03T09:07:26.814536Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from matplotlib.colors import ListedColormap\n", "\n", "polygons.plot(column='formation', aspect='equal', legend=True, cmap=ListedColormap(cols))\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating surface color dictionary from Style File\n", "\n", "A surface color dict can be created to change the colors of a GemPy Model by using ``create_surface_color_dict(..)``." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2021-01-03T09:07:26.988569Z", "start_time": "2021-01-03T09:07:26.977570Z" } }, "outputs": [ { "data": { "text/plain": [ "{'Sand1': '#b35a2a', 'Sand2': '#b35a2a', 'Ton': '#525252'}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "surface_color_dict = gg.utils.create_surface_color_dict(path=file_path + 'style.qml')\n", "surface_color_dict" ] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.8" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }