diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 000000000..c05913577 Binary files /dev/null and b/.DS_Store differ diff --git a/.buildinfo b/.buildinfo old mode 100755 new mode 100644 index 9a048953d..f47bea69f --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 99854c420b8d017fa44eca8acbb61167 -tags: 645f666f9bcd5a90fca523b33c5a78b7 +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: ca756399638dffe0199e4ddf0ba29b17 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/README.html b/README.html old mode 100755 new mode 100644 index 7333f43a4..cfe87e802 --- a/README.html +++ b/README.html @@ -1,605 +1,606 @@ - - - - - - - - - - - - Repo for the 📚 GIS Training Resource Center [TRC] — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Repo for the 📚 GIS Training Resource Center [TRC]

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Repo for the 📚 GIS Training Resource Center [TRC]#

-

:warning: -:construction: Under Construction :construction:

-

https://giscience.github.io/gis-training-resource-center/content/intro.html

-

We use markdown documents with rich media hosted elsewhere that serve as comprehensive guides, tutorials and reference materials. -The markdown files are built to a static webpage via jupyter-book.

-
-

:tractor: Dev setup#

-
    -
  • clone the repo: git clone https://github.com/GIScience/gis-training-resource-center

  • -
  • cd gis-training-resource-center

  • -
  • set up a python environment, e.g. python3 -m venv venv

  • -
  • activate the environment: source venv/bin/activate

  • -
  • install dependencies: pip install -r requirements.txt

  • -
  • do your changes to the book in contents

  • -
  • build it locally jupyter-book build .

  • -
  • verify changes cd _build/html/ && python3 -m http.server 8080

  • -
  • push source files via git to main

    -
      -
    • git pull

    • -
    • git commit -m "yourmessage"

    • -
    • git push

    • -
    • conflict: git config pull.rebase false

    • -
    -
  • -
  • push rendered html files to branch gh-pages via the command ghp-import -n -p -f _build/html. This will automatically delete the branch and recreate it to avoid a bloated history.

  • -
-
-
-

CI / CD#

-
    -
  • to be considered in the future

  • -
-
-
- - - - -
- - - - -
- -
- -
-
-
- -
- -
- -
- - - -
- - -
- - - -
-
-
- - - - - - - + + + + + + + + + + + + Repo for the 📚 GIS Training Resource Center [TRC] — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Repo for the 📚 GIS Training Resource Center [TRC]

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Repo for the 📚 GIS Training Resource Center [TRC]#

+

:warning: +:construction: Under Construction :construction:

+

https://giscience.github.io/gis-training-resource-center/content/intro.html

+

We use markdown documents with rich media hosted elsewhere that serve as comprehensive guides, tutorials and reference materials. +The markdown files are built to a static webpage via jupyter-book.

+
+

:tractor: Dev setup#

+
    +
  • clone the repo: git clone https://github.com/GIScience/gis-training-resource-center

  • +
  • cd gis-training-resource-center

  • +
  • set up a python environment, e.g. python3 -m venv venv

  • +
  • activate the environment: source venv/bin/activate

  • +
  • install dependencies: pip install -r requirements.txt

  • +
  • do your changes to the book in contents

  • +
  • build it locally jupyter-book build .

  • +
  • verify changes cd _build/html/ && python3 -m http.server 8080

  • +
  • push source files via git to main

    +
      +
    • git pull

    • +
    • git commit -m "yourmessage"

    • +
    • git push

    • +
    • conflict: git config pull.rebase false

    • +
    +
  • +
  • push rendered html files to branch gh-pages via the command ghp-import -n -p -f _build/html. This will automatically delete the branch and recreate it to avoid a bloated history.

  • +
+
+
+

CI / CD#

+
    +
  • to be considered in the future

  • +
+
+
+ + + + +
+ + + + +
+ +
+ +
+
+
+ +
+ +
+ +
+ + + +
+ + +
+ + + +
+
+
+ + + + + + + \ No newline at end of file diff --git a/_downloads/54547c7e6d6f20d020245b033bbce8f1/en_QGIS_User_Interface.png b/_downloads/54547c7e6d6f20d020245b033bbce8f1/en_QGIS_User_Interface.png old mode 100755 new mode 100644 diff --git a/_images/Activate_digitizing_toolbox.png b/_images/Activate_digitizing_toolbox.png old mode 100755 new mode 100644 diff --git a/_images/Categorized_district_map_SierraLeone.png b/_images/Categorized_district_map_SierraLeone.png old mode 100755 new mode 100644 diff --git a/_images/Change_feature_color.png b/_images/Change_feature_color.png old mode 100755 new mode 100644 diff --git a/_images/Creation_of_line_data.png b/_images/Creation_of_line_data.png old mode 100755 new mode 100644 diff --git a/_images/Digitization_Errors.PNG b/_images/Digitization_Errors.PNG old mode 100755 new mode 100644 diff --git a/_images/EPSG_Code.png b/_images/EPSG_Code.png old mode 100755 new mode 100644 diff --git a/_images/Export_selected_features.png b/_images/Export_selected_features.png old mode 100755 new mode 100644 diff --git a/_images/Geschlossene_Toolbox_01.png b/_images/Geschlossene_Toolbox_01.png old mode 100755 new mode 100644 diff --git a/_images/Input_newfield_and_to_save_editing.png b/_images/Input_newfield_and_to_save_editing.png old mode 100755 new mode 100644 diff --git a/_images/Layer_concept.png b/_images/Layer_concept.png old mode 100755 new mode 100644 diff --git a/_images/Layer_properties.png b/_images/Layer_properties.png old mode 100755 new mode 100644 diff --git a/_images/Manual_select_by_attribute_table.png b/_images/Manual_select_by_attribute_table.png old mode 100755 new mode 100644 diff --git a/_images/Naming_of_point_created.png b/_images/Naming_of_point_created.png old mode 100755 new mode 100644 diff --git a/_images/New_fieldcolumn_creation_in_attribute_table.png b/_images/New_fieldcolumn_creation_in_attribute_table.png old mode 100755 new mode 100644 diff --git a/_images/New_point_creation_data.png b/_images/New_point_creation_data.png old mode 100755 new mode 100644 diff --git a/_images/New_shapefile_layer_creation.png b/_images/New_shapefile_layer_creation.png old mode 100755 new mode 100644 diff --git a/_images/New_shapefile_layer_naming.png b/_images/New_shapefile_layer_naming.png old mode 100755 new mode 100644 diff --git a/_images/New_spatialite_layer.png b/_images/New_spatialite_layer.png old mode 100755 new mode 100644 diff --git a/_images/Opening_Select_by_Expression.png b/_images/Opening_Select_by_Expression.png old mode 100755 new mode 100644 diff --git a/_images/Opening_attribute_table.png b/_images/Opening_attribute_table.png old mode 100755 new mode 100644 diff --git a/_images/Save_selected_features_by_export.png b/_images/Save_selected_features_by_export.png old mode 100755 new mode 100644 diff --git a/_images/Save_selected_features_by_export_a.png b/_images/Save_selected_features_by_export_a.png old mode 100755 new mode 100644 diff --git a/_images/Select_Feature(s)_tool.png b/_images/Select_Feature(s)_tool.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_Expression_AND.png b/_images/Select_by_Expression_AND.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_Expression_greater_a.png b/_images/Select_by_Expression_greater_a.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_Expression_greater_b.png b/_images/Select_by_Expression_greater_b.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_Expression_like.png b/_images/Select_by_Expression_like.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_Expression_placeholder.png b/_images/Select_by_Expression_placeholder.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_click.png b/_images/Select_by_click.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_location_disjoint.png b/_images/Select_by_location_disjoint.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_location_intersect.png b/_images/Select_by_location_intersect.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_location_intersect_output.png b/_images/Select_by_location_intersect_output.png old mode 100755 new mode 100644 diff --git a/_images/Select_by_polygon.png b/_images/Select_by_polygon.png old mode 100755 new mode 100644 diff --git a/_images/SierraLeone_shapefile_in_layer_pannel.png b/_images/SierraLeone_shapefile_in_layer_pannel.png old mode 100755 new mode 100644 diff --git a/_images/Standard_project_folder_structure.drawio.svg b/_images/Standard_project_folder_structure.drawio.svg old mode 100755 new mode 100644 index 87a1d1fdf..326be9e04 --- a/_images/Standard_project_folder_structure.drawio.svg +++ b/_images/Standard_project_folder_structure.drawio.svg @@ -1,4 +1,4 @@ - - - + + +
QGIS Project
QGIS Project
documentation
Your written notes
documentation...
project
QGIS Project and Scripts
project...
styles
Styling files
styles...
data
data
input
Original Data
input...
temp
Temporal results
temp...
output
Final result data
output...
results
Final Maps & Reports
results...

Standard Folder Structure

Standard Folder Structure

Folder containing all other folders below. Give the project a suitable name without spaces.

Folder containing all other folders...

Folder containing documentation inform of .docx or.md files. A common way is to use Readme.md file.

Folder containing documentation info...

This folder contains the actual QGIS Project as .qgz file. Additionally, any .model3 files of QGIS models and  R or Python scripts

This folder contains the actual QGIS...

The styles folder contains .qml styling files. 

The styles folder contains .qml styl...

The data folder only contains the three folders below

The data folder only contains the th...

The input folder contains the original datasets of any data used in the projet.
These datasets are not to be manipulated. They serve as a backup as well.

The input folder contains the origin...

The temp folder contains all files resulting from intermediate steps

The temp folder contains all files r...

The output folder contains all files which are in their final form and will not be changed anymore

The output folder contains all files...

This folder contains the final maps as .pdf or .png files

This folder contains the final maps...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/_images/Style_selection.png b/_images/Style_selection.png old mode 100755 new mode 100644 diff --git a/_images/Switch_to_edit_mode_of_attribute_table.png b/_images/Switch_to_edit_mode_of_attribute_table.png old mode 100755 new mode 100644 diff --git a/_images/TRC_RC_Logos.svg b/_images/TRC_RC_Logos.svg old mode 100755 new mode 100644 index 73c1b4ff1..5aff2a639 --- a/_images/TRC_RC_Logos.svg +++ b/_images/TRC_RC_Logos.svg @@ -1,4 +1,4 @@ - - - + + + \ No newline at end of file diff --git a/_images/Toggle_editingbox.png b/_images/Toggle_editingbox.png old mode 100755 new mode 100644 diff --git a/_images/Toolbox.png b/_images/Toolbox.png old mode 100755 new mode 100644 diff --git a/_images/Value_and_Symbol_selection.png b/_images/Value_and_Symbol_selection.png old mode 100755 new mode 100644 diff --git a/_images/View_of_properties_from_layer_pannel.png b/_images/View_of_properties_from_layer_pannel.png old mode 100755 new mode 100644 diff --git a/_images/add_delete_data_in_attribute_table.png b/_images/add_delete_data_in_attribute_table.png old mode 100755 new mode 100644 diff --git a/_images/attribute_table.png b/_images/attribute_table.png old mode 100755 new mode 100644 diff --git a/_images/dock.png b/_images/dock.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_adding_a_map.png b/_images/en_30.30.2_adding_a_map.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_adding_rule-based_labels_expression_builder.png b/_images/en_30.30.2_adding_rule-based_labels_expression_builder.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_changing_layer_style_1.png b/_images/en_30.30.2_changing_layer_style_1.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_changing_layer_style_2.png b/_images/en_30.30.2_changing_layer_style_2.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_changing_layer_style_3.png b/_images/en_30.30.2_changing_layer_style_3.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_create_print_layout.png b/_images/en_30.30.2_create_print_layout.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_graphic_semiology_signs.png b/_images/en_30.30.2_graphic_semiology_signs.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_print_layout_add_legend.png b/_images/en_30.30.2_print_layout_add_legend.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_print_layout_add_map_extent_overview_map.png b/_images/en_30.30.2_print_layout_add_map_extent_overview_map.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_print_layout_add_overview_map.png b/_images/en_30.30.2_print_layout_add_overview_map.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_print_layout_add_scale_bar.png b/_images/en_30.30.2_print_layout_add_scale_bar.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_print_layout_add_text.png b/_images/en_30.30.2_print_layout_add_text.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_print_layout_overview_map_preparations.png b/_images/en_30.30.2_print_layout_overview_map_preparations.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_print_layout_scale.png b/_images/en_30.30.2_print_layout_scale.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_styling_panel.png b/_images/en_30.30.2_styling_panel.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_symbology_variable_ranges_1.png b/_images/en_30.30.2_symbology_variable_ranges_1.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_symbology_variable_ranges_2.png b/_images/en_30.30.2_symbology_variable_ranges_2.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_thematic_maps_examples.png b/_images/en_30.30.2_thematic_maps_examples.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_topographic_map_examples.png b/_images/en_30.30.2_topographic_map_examples.png old mode 100755 new mode 100644 diff --git a/_images/en_30.30.2_understanding_the_print_layout_composer.png b/_images/en_30.30.2_understanding_the_print_layout_composer.png old mode 100755 new mode 100644 diff --git a/_images/en_Add_a_vector_file_a.png b/_images/en_Add_a_vector_file_a.png old mode 100755 new mode 100644 diff --git a/_images/en_Add_basemaps-1.png b/_images/en_Add_basemaps-1.png deleted file mode 100755 index 3f9934a36..000000000 Binary files a/_images/en_Add_basemaps-1.png and /dev/null differ diff --git a/_images/en_Add_basemaps.png b/_images/en_Add_basemaps.png old mode 100755 new mode 100644 diff --git a/_images/en_Aerial_measuring_results.jpg b/_images/en_Aerial_measuring_results.jpg old mode 100755 new mode 100644 diff --git a/_images/en_Analysis_Map_Yemen-2.png b/_images/en_Analysis_Map_Yemen-2.png deleted file mode 100755 index 0ba35b19a..000000000 Binary files a/_images/en_Analysis_Map_Yemen-2.png and /dev/null differ diff --git a/_images/en_Analysis_Map_Yemen.png b/_images/en_Analysis_Map_Yemen.png old mode 100755 new mode 100644 diff --git a/_images/en_Attribute_table-3.png b/_images/en_Attribute_table-3.png deleted file mode 100755 index e772d39da..000000000 Binary files a/_images/en_Attribute_table-3.png and /dev/null differ diff --git a/_images/en_Attribute_table.png b/_images/en_Attribute_table.png old mode 100755 new mode 100644 diff --git a/_images/en_Colour_Gradients_6.png b/_images/en_Colour_Gradients_6.png old mode 100755 new mode 100644 diff --git a/_images/en_Data_behind_the_Map_CartONG02.png b/_images/en_Data_behind_the_Map_CartONG02.png old mode 100755 new mode 100644 diff --git a/_images/en_Excel_Data_a.png b/_images/en_Excel_Data_a.png old mode 100755 new mode 100644 diff --git a/_images/en_Excel_Data_b.png b/_images/en_Excel_Data_b.png old mode 100755 new mode 100644 diff --git a/_images/en_Excel_Data_c.png b/_images/en_Excel_Data_c.png old mode 100755 new mode 100644 diff --git a/_images/en_Excel_Data_d.png b/_images/en_Excel_Data_d.png old mode 100755 new mode 100644 diff --git a/_images/en_Excel_Data_e.png b/_images/en_Excel_Data_e.png old mode 100755 new mode 100644 diff --git a/_images/en_Excercise_0_a.png b/_images/en_Excercise_0_a.png old mode 100755 new mode 100644 diff --git a/_images/en_Excercise_0_b.png b/_images/en_Excercise_0_b.png old mode 100755 new mode 100644 diff --git a/_images/en_Excercise_1_a.png b/_images/en_Excercise_1_a.png old mode 100755 new mode 100644 diff --git a/_images/en_Excercise_1_b.png b/_images/en_Excercise_1_b.png old mode 100755 new mode 100644 diff --git a/_images/en_GIS_CartONG01.png b/_images/en_GIS_CartONG01.png old mode 100755 new mode 100644 diff --git a/_images/en_GIS_vs_Cartography.png b/_images/en_GIS_vs_Cartography.png old mode 100755 new mode 100644 diff --git a/_images/en_Graphic_information_CartONG04.png b/_images/en_Graphic_information_CartONG04.png old mode 100755 new mode 100644 diff --git a/_images/en_Infrastructure_Map_Nigeria-1.png b/_images/en_Infrastructure_Map_Nigeria-1.png deleted file mode 100755 index 629baccbe..000000000 Binary files a/_images/en_Infrastructure_Map_Nigeria-1.png and /dev/null differ diff --git a/_images/en_Infrastructure_Map_Nigeria.png b/_images/en_Infrastructure_Map_Nigeria.png old mode 100755 new mode 100644 diff --git a/_images/en_Interface_01.png b/_images/en_Interface_01.png old mode 100755 new mode 100644 diff --git a/_images/en_Interface_02.png b/_images/en_Interface_02.png old mode 100755 new mode 100644 diff --git a/_images/en_John_Snows_Map.png b/_images/en_John_Snows_Map.png old mode 100755 new mode 100644 diff --git a/_images/en_Nepal_earthquake.png b/_images/en_Nepal_earthquake.png old mode 100755 new mode 100644 diff --git a/_images/en_QGIS_GUI.png b/_images/en_QGIS_GUI.png old mode 100755 new mode 100644 diff --git a/_images/en_QGIS_User_Interface-1.png b/_images/en_QGIS_User_Interface-1.png deleted file mode 100755 index d3f3c7bf9..000000000 Binary files a/_images/en_QGIS_User_Interface-1.png and /dev/null differ diff --git a/_images/en_QGIS_User_Interface.png b/_images/en_QGIS_User_Interface.png old mode 100755 new mode 100644 diff --git a/_images/en_Reference_Map_Iraq-1.png b/_images/en_Reference_Map_Iraq-1.png deleted file mode 100755 index 4c5ac7861..000000000 Binary files a/_images/en_Reference_Map_Iraq-1.png and /dev/null differ diff --git a/_images/en_Reference_Map_Iraq.png b/_images/en_Reference_Map_Iraq.png old mode 100755 new mode 100644 diff --git a/_images/en_Situation_Map_Tilkaif_Mosul-1.png b/_images/en_Situation_Map_Tilkaif_Mosul-1.png deleted file mode 100755 index 33befc403..000000000 Binary files a/_images/en_Situation_Map_Tilkaif_Mosul-1.png and /dev/null differ diff --git a/_images/en_Situation_Map_Tilkaif_Mosul.png b/_images/en_Situation_Map_Tilkaif_Mosul.png old mode 100755 new mode 100644 diff --git a/_images/en_Spreadsheet_CartONG03.png b/_images/en_Spreadsheet_CartONG03.png old mode 100755 new mode 100644 diff --git a/_images/en_Taal_Volcano.png b/_images/en_Taal_Volcano.png old mode 100755 new mode 100644 diff --git a/_images/en_Thematic_Map_Africa.png b/_images/en_Thematic_Map_Africa.png old mode 100755 new mode 100644 diff --git a/_images/en_add_vector_join-1.png b/_images/en_add_vector_join-1.png deleted file mode 100755 index c238e9285..000000000 Binary files a/_images/en_add_vector_join-1.png and /dev/null differ diff --git a/_images/en_add_vector_join.png b/_images/en_add_vector_join.png old mode 100755 new mode 100644 diff --git a/_images/en_attribute_table_large.png b/_images/en_attribute_table_large.png old mode 100755 new mode 100644 diff --git a/_images/en_buffer.png b/_images/en_buffer.png old mode 100755 new mode 100644 diff --git a/_images/en_clip.png b/_images/en_clip.png old mode 100755 new mode 100644 diff --git a/_images/en_data_formats.png b/_images/en_data_formats.png old mode 100755 new mode 100644 diff --git a/_images/en_datasourcemanager_qgis.png b/_images/en_datasourcemanager_qgis.png old mode 100755 new mode 100644 diff --git a/_images/en_delete_table_fields-1.png b/_images/en_delete_table_fields-1.png deleted file mode 100755 index e70e2f38f..000000000 Binary files a/_images/en_delete_table_fields-1.png and /dev/null differ diff --git a/_images/en_delete_table_fields.png b/_images/en_delete_table_fields.png old mode 100755 new mode 100644 diff --git a/_images/en_delete_table_fields01-1.png b/_images/en_delete_table_fields01-1.png deleted file mode 100755 index 66ee4668f..000000000 Binary files a/_images/en_delete_table_fields01-1.png and /dev/null differ diff --git a/_images/en_delete_table_fields01.png b/_images/en_delete_table_fields01.png old mode 100755 new mode 100644 diff --git a/_images/en_different_crs.gif b/_images/en_different_crs.gif old mode 100755 new mode 100644 diff --git a/_images/en_dissolve_results.png b/_images/en_dissolve_results.png old mode 100755 new mode 100644 diff --git a/_images/en_examples_projections.png b/_images/en_examples_projections.png old mode 100755 new mode 100644 diff --git a/_images/en_exercise_map_design_example_Nigeria.png b/_images/en_exercise_map_design_example_Nigeria.png old mode 100755 new mode 100644 diff --git a/_images/en_field_calculator-1.png b/_images/en_field_calculator-1.png deleted file mode 100755 index 606898e4f..000000000 Binary files a/_images/en_field_calculator-1.png and /dev/null differ diff --git a/_images/en_field_calculator.png b/_images/en_field_calculator.png old mode 100755 new mode 100644 diff --git a/_images/en_field_calculator01-1.png b/_images/en_field_calculator01-1.png deleted file mode 100755 index 2503bf989..000000000 Binary files a/_images/en_field_calculator01-1.png and /dev/null differ diff --git a/_images/en_field_calculator01.png b/_images/en_field_calculator01.png old mode 100755 new mode 100644 diff --git a/_images/en_field_calculator02-1.png b/_images/en_field_calculator02-1.png deleted file mode 100755 index 5f0617a5a..000000000 Binary files a/_images/en_field_calculator02-1.png and /dev/null differ diff --git a/_images/en_field_calculator02.png b/_images/en_field_calculator02.png old mode 100755 new mode 100644 diff --git a/_images/en_geoprocessing_icons-1.png b/_images/en_geoprocessing_icons-1.png deleted file mode 100755 index 8dfbcc493..000000000 Binary files a/_images/en_geoprocessing_icons-1.png and /dev/null differ diff --git a/_images/en_geoprocessing_icons.png b/_images/en_geoprocessing_icons.png old mode 100755 new mode 100644 diff --git a/_images/en_geoprocessing_tools-1.png b/_images/en_geoprocessing_tools-1.png deleted file mode 100755 index ef4694435..000000000 Binary files a/_images/en_geoprocessing_tools-1.png and /dev/null differ diff --git a/_images/en_geoprocessing_tools.png b/_images/en_geoprocessing_tools.png old mode 100755 new mode 100644 diff --git a/_images/en_greenland_africa.png b/_images/en_greenland_africa.png old mode 100755 new mode 100644 diff --git a/_images/en_import_raster.png b/_images/en_import_raster.png old mode 100755 new mode 100644 diff --git a/_images/en_import_vector.png b/_images/en_import_vector.png old mode 100755 new mode 100644 diff --git a/_images/en_join_attributes_by_field_value-1.png b/_images/en_join_attributes_by_field_value-1.png deleted file mode 100755 index 28fd24007..000000000 Binary files a/_images/en_join_attributes_by_field_value-1.png and /dev/null differ diff --git a/_images/en_join_attributes_by_field_value.png b/_images/en_join_attributes_by_field_value.png old mode 100755 new mode 100644 diff --git a/_images/en_join_attributes_by_field_values.png b/_images/en_join_attributes_by_field_values.png old mode 100755 new mode 100644 diff --git a/_images/en_layer.png b/_images/en_layer.png old mode 100755 new mode 100644 diff --git a/_images/en_legend_good_practice.png b/_images/en_legend_good_practice.png old mode 100755 new mode 100644 diff --git a/_images/en_local_crs.png b/_images/en_local_crs.png old mode 100755 new mode 100644 diff --git a/_images/en_logical_operators.png b/_images/en_logical_operators.png old mode 100755 new mode 100644 diff --git a/_images/en_project_template_BRC-1.png b/_images/en_project_template_BRC-1.png deleted file mode 100755 index d8882dbfc..000000000 Binary files a/_images/en_project_template_BRC-1.png and /dev/null differ diff --git a/_images/en_project_template_BRC.png b/_images/en_project_template_BRC.png old mode 100755 new mode 100644 diff --git a/_images/en_quality_raster.png b/_images/en_quality_raster.png old mode 100755 new mode 100644 diff --git a/_images/en_query_builder.png b/_images/en_query_builder.png old mode 100755 new mode 100644 diff --git a/_images/en_query_builder_location.png b/_images/en_query_builder_location.png old mode 100755 new mode 100644 diff --git a/_images/en_region_indication.png b/_images/en_region_indication.png old mode 100755 new mode 100644 diff --git a/_images/en_research_tools-1.png b/_images/en_research_tools-1.png deleted file mode 100755 index 180572084..000000000 Binary files a/_images/en_research_tools-1.png and /dev/null differ diff --git a/_images/en_research_tools.png b/_images/en_research_tools.png old mode 100755 new mode 100644 diff --git a/_images/en_same_location_raster.png b/_images/en_same_location_raster.png old mode 100755 new mode 100644 diff --git a/_images/en_same_location_vector.png b/_images/en_same_location_vector.png old mode 100755 new mode 100644 diff --git a/_images/en_save_vector_layer-1.png b/_images/en_save_vector_layer-1.png deleted file mode 100755 index 15a433e6a..000000000 Binary files a/_images/en_save_vector_layer-1.png and /dev/null differ diff --git a/_images/en_save_vector_layer.png b/_images/en_save_vector_layer.png old mode 100755 new mode 100644 diff --git a/_images/en_select_by_expression.png b/_images/en_select_by_expression.png old mode 100755 new mode 100644 diff --git a/_images/en_select_by_location-1.png b/_images/en_select_by_location-1.png deleted file mode 100755 index 3ffe16dae..000000000 Binary files a/_images/en_select_by_location-1.png and /dev/null differ diff --git a/_images/en_select_by_location.png b/_images/en_select_by_location.png old mode 100755 new mode 100644 diff --git a/_images/en_select_feature-1.png b/_images/en_select_feature-1.png deleted file mode 100755 index 5caa9f362..000000000 Binary files a/_images/en_select_feature-1.png and /dev/null differ diff --git a/_images/en_select_feature.png b/_images/en_select_feature.png old mode 100755 new mode 100644 diff --git a/_images/en_select_features_expression-1.png b/_images/en_select_features_expression-1.png deleted file mode 100755 index 92f9de26f..000000000 Binary files a/_images/en_select_features_expression-1.png and /dev/null differ diff --git a/_images/en_select_features_expression.png b/_images/en_select_features_expression.png old mode 100755 new mode 100644 diff --git a/_images/en_select_unique_value.png b/_images/en_select_unique_value.png old mode 100755 new mode 100644 diff --git a/_images/en_selection_attribute_table.png b/_images/en_selection_attribute_table.png old mode 100755 new mode 100644 diff --git a/_images/en_spatial_joins.png b/_images/en_spatial_joins.png old mode 100755 new mode 100644 diff --git a/_images/en_table_fields-1.png b/_images/en_table_fields-1.png deleted file mode 100755 index 3160dcdf3..000000000 Binary files a/_images/en_table_fields-1.png and /dev/null differ diff --git a/_images/en_table_fields.png b/_images/en_table_fields.png old mode 100755 new mode 100644 diff --git a/_images/en_vector_geometry.png b/_images/en_vector_geometry.png old mode 100755 new mode 100644 diff --git a/_images/en_vector_raster.png b/_images/en_vector_raster.png old mode 100755 new mode 100644 diff --git a/_images/en_visual_variables.png b/_images/en_visual_variables.png old mode 100755 new mode 100644 diff --git a/_images/en_without_dissolve_results.png b/_images/en_without_dissolve_results.png old mode 100755 new mode 100644 diff --git a/_images/gui_numbered.png b/_images/gui_numbered.png old mode 100755 new mode 100644 diff --git a/_images/image_QGIS_3.28_download.png b/_images/image_QGIS_3.28_download.png deleted file mode 100755 index 674977489..000000000 Binary files a/_images/image_QGIS_3.28_download.png and /dev/null differ diff --git a/_images/mAction.png b/_images/mAction.png old mode 100755 new mode 100644 diff --git a/_images/mActionCalculateField.png b/_images/mActionCalculateField.png old mode 100755 new mode 100644 diff --git a/_images/mActionConditionalFormatting.png b/_images/mActionConditionalFormatting.png old mode 100755 new mode 100644 diff --git a/_images/mActionCopySelected.png b/_images/mActionCopySelected.png old mode 100755 new mode 100644 diff --git a/_images/mActionDeleteAttribute.png b/_images/mActionDeleteAttribute.png old mode 100755 new mode 100644 diff --git a/_images/mActionDeleteSelectedFeatures.png b/_images/mActionDeleteSelectedFeatures.png old mode 100755 new mode 100644 diff --git a/_images/mActionDeselectActiveLayer.png b/_images/mActionDeselectActiveLayer.png old mode 100755 new mode 100644 diff --git a/_images/mActionEditCut.png b/_images/mActionEditCut.png old mode 100755 new mode 100644 diff --git a/_images/mActionEditPaste.png b/_images/mActionEditPaste.png old mode 100755 new mode 100644 diff --git a/_images/mActionEditTable.png b/_images/mActionEditTable.png old mode 100755 new mode 100644 diff --git a/_images/mActionFilterMap.png b/_images/mActionFilterMap.png old mode 100755 new mode 100644 diff --git a/_images/mActionInvertSelection.png b/_images/mActionInvertSelection.png old mode 100755 new mode 100644 diff --git a/_images/mActionMultiEdit.png b/_images/mActionMultiEdit.png old mode 100755 new mode 100644 diff --git a/_images/mActionNewAttribute.png b/_images/mActionNewAttribute.png old mode 100755 new mode 100644 diff --git a/_images/mActionNewTableRow.png b/_images/mActionNewTableRow.png old mode 100755 new mode 100644 diff --git a/_images/mActionPanToSelected.png b/_images/mActionPanToSelected.png old mode 100755 new mode 100644 diff --git a/_images/mActionRefresh.png b/_images/mActionRefresh.png old mode 100755 new mode 100644 diff --git a/_images/mActionSaveEdits.png b/_images/mActionSaveEdits.png old mode 100755 new mode 100644 diff --git a/_images/mActionSelectAll.png b/_images/mActionSelectAll.png old mode 100755 new mode 100644 diff --git a/_images/mActionSelectedToTop.png b/_images/mActionSelectedToTop.png old mode 100755 new mode 100644 diff --git a/_images/mActionToggleEditing.png b/_images/mActionToggleEditing.png old mode 100755 new mode 100644 diff --git a/_images/mActionZoomToSelected.png b/_images/mActionZoomToSelected.png old mode 100755 new mode 100644 diff --git a/_images/mIconExpressionSelect.png b/_images/mIconExpressionSelect.png old mode 100755 new mode 100644 diff --git a/_images/polygon_data_creation.png b/_images/polygon_data_creation.png old mode 100755 new mode 100644 diff --git a/_images/qgis_import_NetCDF_raster.mp4 b/_images/qgis_import_NetCDF_raster.mp4 deleted file mode 100755 index 57e7339d4..000000000 Binary files a/_images/qgis_import_NetCDF_raster.mp4 and /dev/null differ diff --git a/_images/qgis_import_raster_d_d.mp4 b/_images/qgis_import_raster_d_d.mp4 deleted file mode 100755 index d95f5615e..000000000 Binary files a/_images/qgis_import_raster_d_d.mp4 and /dev/null differ diff --git a/_images/qgis_import_vector_d_d.mp4 b/_images/qgis_import_vector_d_d.mp4 deleted file mode 100755 index d28de6326..000000000 Binary files a/_images/qgis_import_vector_d_d.mp4 and /dev/null differ diff --git a/_images/qgis_move_symbol.png b/_images/qgis_move_symbol.png old mode 100755 new mode 100644 diff --git a/_images/qgis_open_raster.mp4 b/_images/qgis_open_raster.mp4 deleted file mode 100755 index fc74ca2c6..000000000 Binary files a/_images/qgis_open_raster.mp4 and /dev/null differ diff --git a/_images/qgis_open_textfile.mp4 b/_images/qgis_open_textfile.mp4 deleted file mode 100755 index ed2609029..000000000 Binary files a/_images/qgis_open_textfile.mp4 and /dev/null differ diff --git a/_images/qgis_open_vector.mp4 b/_images/qgis_open_vector.mp4 deleted file mode 100755 index 6da4d3ed7..000000000 Binary files a/_images/qgis_open_vector.mp4 and /dev/null differ diff --git a/_images/qgis_open_xlsx.mp4 b/_images/qgis_open_xlsx.mp4 deleted file mode 100755 index bdadb16fb..000000000 Binary files a/_images/qgis_open_xlsx.mp4 and /dev/null differ diff --git a/_images/qgis_zoom_symbol.png b/_images/qgis_zoom_symbol.png old mode 100755 new mode 100644 diff --git a/_images/screenshot_video_every_world_map_is_wrong.png b/_images/screenshot_video_every_world_map_is_wrong.png new file mode 100644 index 000000000..987e99bfe Binary files /dev/null and b/_images/screenshot_video_every_world_map_is_wrong.png differ diff --git a/_sources/README.md b/_sources/README.md old mode 100755 new mode 100644 index e7b2accda..1c938d578 --- a/_sources/README.md +++ b/_sources/README.md @@ -1,34 +1,34 @@ -# Repo for the 📚 GIS Training Resource Center [TRC] - -:warning: -:construction: Under Construction :construction: - - -https://giscience.github.io/gis-training-resource-center/content/intro.html - -We use markdown documents with rich media hosted elsewhere that serve as comprehensive guides, tutorials and reference materials. -The markdown files are built to a static webpage via `jupyter-book`. - -## :tractor: Dev setup - -* clone the repo: `git clone https://github.com/GIScience/gis-training-resource-center` -* `cd gis-training-resource-center` -* set up a python environment, e.g. `python3 -m venv venv` -* activate the environment: `source venv/bin/activate` -* install dependencies: `pip install -r requirements.txt` -* do your changes to the book in `contents` -* build it locally `jupyter-book build .` -* verify changes `cd _build/html/ && python3 -m http.server 8080` -* push source files via git to `main` - * `git pull` - * `git commit -m "yourmessage"` - * `git push` - * conflict: `git config pull.rebase false` -* push rendered html files to branch `gh-pages` via the command `ghp-import -n -p -f _build/html`. This will automatically delete the branch and recreate it to avoid a bloated history. - - - - -## CI / CD -* to be considered in the future - +# Repo for the 📚 GIS Training Resource Center [TRC] + +:warning: +:construction: Under Construction :construction: + + +https://giscience.github.io/gis-training-resource-center/content/intro.html + +We use markdown documents with rich media hosted elsewhere that serve as comprehensive guides, tutorials and reference materials. +The markdown files are built to a static webpage via `jupyter-book`. + +## :tractor: Dev setup + +* clone the repo: `git clone https://github.com/GIScience/gis-training-resource-center` +* `cd gis-training-resource-center` +* set up a python environment, e.g. `python3 -m venv venv` +* activate the environment: `source venv/bin/activate` +* install dependencies: `pip install -r requirements.txt` +* do your changes to the book in `contents` +* build it locally `jupyter-book build .` +* verify changes `cd _build/html/ && python3 -m http.server 8080` +* push source files via git to `main` + * `git pull` + * `git commit -m "yourmessage"` + * `git push` + * conflict: `git config pull.rebase false` +* push rendered html files to branch `gh-pages` via the command `ghp-import -n -p -f _build/html`. This will automatically delete the branch and recreate it to avoid a bloated history. + + + + +## CI / CD +* to be considered in the future + diff --git a/_sources/content/About/about_1.md b/_sources/content/About/about_1.md old mode 100755 new mode 100644 index e5edc338d..181ed3c39 --- a/_sources/content/About/about_1.md +++ b/_sources/content/About/about_1.md @@ -1,7 +1,7 @@ -# About :) -This QGIS training is made by people who believe GIS can help humanitarians to serve people in need better. ❤️ -The idea for this training platform originated from a group of people from the German Red Cross, British Red Cross and Netherlands Red Cross. 💡📣 -A group of dedicated student assistants and employees of the Heidelberg Institute for Geoinformation Technology (HeiGIT) are working to put together the materials on this platform. 🔨 - - - +# About :) +This QGIS training is made by people who believe GIS can help humanitarians to serve people in need better. ❤️ +The idea for this training platform originated from a group of people from the German Red Cross, British Red Cross and Netherlands Red Cross. 💡📣 +A group of dedicated student assistants and employees of the Heidelberg Institute for Geoinformation Technology (HeiGIT) are working to put together the materials on this platform. 🔨 + + + diff --git a/_sources/content/Glossary/en_glossary_1.md b/_sources/content/Glossary/en_glossary_1.md old mode 100755 new mode 100644 diff --git a/_sources/content/ModuL_6/en_qgis_data_analysis_theorie.md b/_sources/content/ModuL_6/en_qgis_data_analysis_theorie.md old mode 100755 new mode 100644 index d1fe3b7a3..ef2f9cac1 --- a/_sources/content/ModuL_6/en_qgis_data_analysis_theorie.md +++ b/_sources/content/ModuL_6/en_qgis_data_analysis_theorie.md @@ -1,3 +1,3 @@ -# Data analysis theorie -**Competences:** +# Data analysis theorie +**Competences:** * General understanding of data/spatial analysis \ No newline at end of file diff --git a/_sources/content/Modul_1/en_gis_theorie.md b/_sources/content/Modul_1/en_gis_theorie.md old mode 100755 new mode 100644 index b226ed8d9..a0d89a277 --- a/_sources/content/Modul_1/en_gis_theorie.md +++ b/_sources/content/Modul_1/en_gis_theorie.md @@ -1,316 +1,587 @@ -# What is GIS? (Theory) - -## General Information: - -- A Geographic Information System (GIS) is a __digital system that connects data to maps__. - -- Geoinformatics in general focus on the __visualisation, organisation and processing of spatial data__. - -- Spatial analyses furthermore allow __to reveal circumstances and connections between spatial data features__: - - - by making use of their spatial location, __information layers__ (or features within a layer) can be analyzed in regard to each other to obtain new information. - -## Why are Spatial Analyses important? - -```{Note} -Discuss in groups: -``` - - - Situations in which you benefitted from spatial analyses. - - Situations in which you could may be have benefitted from spatial analyses. - - Main areas where you see potential for spatial analyses in your work. - -## Introduction to GIS: - -### We use GIS for: - - - Creating interactive queries __(Querying)__ - - Analysing spatial information __(Spatial analysis)__ - - Editing and visualizing data in maps __(Editing)__ - - Present the results of all these operations __(Map making)__ - -### GIS in Humanitarian Responses - -GIS has many applications in the __humanitarian field__: - - - Refugee/IDP camp planning - - Mapping remote areas to facilitate access - - Keep track of field operations - - Support security decisions - - Support operations planning - - Identify areas most affected by disasters - -```{Tip} -A few examples: -``` - - - [REACH Initiative](https://www.reachresourcecentre.info/search/) - - [World Food Programme (WFP)](https://hungermap.wfp.org/) - - [Médecins Sans Frontières (MSF)](https://geo.msf.org/catalogue) - - [iMMAP](https://immap.org/products/) - - [MapAction](https://maps.mapaction.org/) - - -## A Galaxy of Tools -GIS comes with a __galaxy of tools__ that are constantly evolving. An increasing number of traditional tools are now capable of supporting geographic information (Excel, Power BI, Adobe Illustrator…) - -### An Overview: - -- __Mobile Data Collection Tools__ - -The latter make it possible to collect data via mobile or tablet, and often to visualize and exchange it with other platforms according to a common format. - -- __Mapping Tools__ - -These tools provide a simple vizualisation of geographic data, and allow for the production of maps. - -- __GIS Tools__ - -As opposed to the previous ones, these more advanced tools are very comprehensive and allow for advanced analyses to be carried out on the geographical components of data. - -- __Webmapping Tools__ - -These tools make it possible to manipulate and create maps online in a very simple way directly in a web browser. - - -## Paper Maps and Cartography - -### What is Spatial Analysis? - -- Spatial analysis __studies entities and events__ using their topological, geometric, or geographic properties. -- It includes a __variety of techniques__ to analyse geographic data. -- Data can be __added to a map as layers and they can interact with each other__. -- GIS enables you to work with these __layers__ to explore critically important questions and __find answers__ to those questions. - -#### An Example from the Past: John Snows' Cholera Map - -In 1854 an __outbreak of cholera__ occurred in London, England. The most common theory was that the disease was spread through the air. Dr.John Snow believed that the danger was __in the water__. He made a map to analyse the __number of deaths__ in Soho per house block. He added the __location of water pumps__ on the map. -He found a __correlation__ between one specific water pump and the number of infections. - -__Dr. Snow's map of the Cholera outbreak of 1854__, and the reports that it accompanied, __won over the predominant "Miasma Theory"__ that the disease __was spread through the air__. Residents were now warned to __boil their water__, and so ended the last Cholera outbreak London has seen. - -![John Snows' Map](/fig/en_John_Snows_Map.png) John Snows' Map - -__Using GIS__, several measures of spatial central tendency have been applied to the dataset, revealing that the Spatial Mean (the geographic center of the distribution of deaths) of the outbreak lies __within 35 meters of the Broad Street Pump__, identified as the __source of contamination__ in the 1854 outbreak. - - -```{Tip} -Further information: -``` - - [Let’s explore John Snow’s map](https://www.arcgis.com/apps/PublicInformation/index.html?appid=d7deb67f810d46dfacb80ff80ac224e9) - -## GIS vs Cartography - -- __Cartography__ is the study and practice of __making maps__. -- A GIS is a __modern extension__ of traditional cartography. -- Both contain examples of a __base map__ to which additional data can be added. -- The differences are that there is no limit to the __amount of additional data__ that can be added to a GIS map. -- Cartographic maps are often extremely simplified as there are limits to the amount of data that can be physically and meaningfully stored on a small map. -- GIS uses __analysis and statistics__ to present data in support of particular arguments which a cartographic map cannot do. -- You can use GIS __for__ cartography. - - - -![GIS vs Cartography](/fig/en_GIS_vs_Cartography.png) GIS vs Cartography - -### General Reference Maps - -- Show important __physical features__ of an area -- Include __natural and man-made features__ -- Usually meant to help for __navigation__ or discovery of locations -- Usually fairly __simple__ -- Can be __stylized__ based on the intended audience - - - -![Reference map of Iraq](/fig/en_Reference_Map_Iraq.png) Reference map of Iraq - -### Infrastructure Maps - - - Display relevant features and __structures__ in a specific area - - Help __planning__ and navigation - - High level of __detail__ - - Produced after field __data collection__ - - - -![Infrastructure map of Nigeria](/fig/en_Infrastructure_Map_Nigeria.png) -Infrastructure map of Nigeria - -### Thematic Maps - - - Focus on a __specific theme__ or subject - - Features on the map __represent the subject__ being mapped - - Use __colours and shapes__ to display quantitative and qualitative data - - Rise __awareness__ about a specific subject - - - - -![Thematic map of Africa](/fig/en_Thematic_Map_Africa.png) Thematic map of Africa - -### Analysis Maps - - - __Analyse data__ in respect to their geographic location - - Create __new layers of information__ from the interaction between multiple features - - Use colours and shapes __to help users__ understand specific events - - __Support__ decision makers - - Generally display a greater __level of detail__ - - - -![Analysis map of Yemen](/fig/en_Analysis_Map_Yemen.png) Analysis map of Yemen - -### Situation/Descriptive Maps - - - Used to __better visualize__ a specific ongoing and/or past situation - - Maps can include __narrative__ and graphic elements - - Can be used in reports and/or to __raise awareness__ on a specific event - - - -![Situation map from Tilkaif to Mosul](/fig/en_Situation_Map_Tilkaif_Mosul.png)Situation map from Tilkaif to Mosul - - ## Web GIS platforms - -### GIS Applications - -- You can use GIS through __multiple applications__, from desktop software, to online platforms, to mobile apps. -- At a basic level, you can perform limited geospatial tasks with apps such as __Google Earth__ or __Google Maps__. -- As a GIS professional, you will mostly use a __desktop software__, which could be either: Proprietary or Open source. - -- __Open Street Maps (OSM)__: -[https://www.openstreetmap.org/#map=14/49.4192/8.7235]( -https://www.openstreetmap.org/#map=14/49.4192/8.7235) -An __open geographic database__ updated and maintained by a community of volunteers via open collaboration. It works using a tag system (each feature is categorized through tags). -- __uMap__: [https://umap.openstreetmap.fr/en/](https://umap.openstreetmap.fr/en/) -Online tool to create maps __using OSM layers__. -- __Felt__: [https://felt.com/](/https://felt.com/) -An __easy tool__ to create maps. You can draw, create feature and upload shapefiles. -- __Wikimapia:__ [https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w]( -https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w) -Online editable map service. Updated and maintained by contributors all over the world. It uses __local knowledge__, making it particularly useful in remote areas. -- __Google Maps:__ [https://www.google.com/maps/d/](https://www.google.com/maps/d/) -Limited, but it allows to upload layers, create and export features, __share simple maps__. - -### Geo Mobile Apps Overview (General Understanding) - -- __Qfield__: [https://docs.qfield.org/](https://docs.qfield.org/) -Through QFieldCloud, you can __open your QGIS projects__ on Qfield on your mobile device. Any edit made on the map in the app can then be synced and displayed in QGIS. -- __OsmAnd__: [https://osmand.net/](https://osmand.net/) -Using OSM basemap, it’s a good app for __offline navigation__. You can upload kml-files to display on the map, as well as recording your trips and then export them to kml. -- __GeoODK__: [http://geoodk.com/index.html](http://geoodk.com/index.html) -Combines __ODK with a geo app__. You can collect data through ODK surveys and display them on a map, in addition to easily create polygons and add information to them. - - - - -## Non-Spatial Analyses in QGIS - - -### Geoprocessing Tools - Overview and Selection - -![Geoprocessing icons](/fig/en_geoprocessing_icons.png) - -![Geoprocessing tools](/fig/en_geoprocessing_tools.png) - -```{Tip} -Example for a clip: -``` -Creates a __selection__ based on the spatial relationship between each feature in the input layer and the features in an additional layer. - -Step by step: -- __Input Layer__: Layer from which the selection is clipped -- __Overlay Layer__: Area of interest that the input layer will be clipped to - - - -![Clip](/fig/en_clip.png) - -```{Tip} -Example for a buffer: -``` -- __Computes (a) buffer area(s)__ for all the features in an input layer, using a specified distance - -Step by step: -- __Input Layer__: Layer around which features the buffer(s) are to be created -- __Distance__: Choose a value and unit (make sure that your input data is projected) -- __Segments__: Add value -- Mark __„Dissolve result“__ to automatically dissolve the buffer outputs -- If individual buffers are needed, leave __blank__ - - - -![Buffer](/fig/en_buffer.png) - -```{Tip} -Examples for buffer usage: -``` -Philippines: Taal Volcano, Base surge hazard map -[https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg](https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg) - -![Taal Volcano](/fig/en_Taal_Volcano.png) - -Nepal: Earthquake, april 2015 -[https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf](https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf) - -![Nepal Earthquake](/fig/en_Nepal_earthquake.png) - -Fukushima: may 2011, Integrated doce results
-[https://www.emsics.com/five-years-fukushima-incident-management-considerations/](https://www.emsics.com/five-years-fukushima-incident-management-considerations/) - -![Aerial measuring results](/fig/en_Aerial_measuring_results.jpg) - -### Buffer: with and without “Dissolve” - -With dissolve results: - -![With dissolve results](/fig/en_dissolve_results.png) - -Without dissolve results: - -![Without dissolve results](/fig/en_without_dissolve_results.png) - -## Non-Spatial Joins in QGIS - -- Choose __“Join Attributes by Field Value”__ Tool (use search tool): - -- __Adds attributes__ of a non-spatial table to the layer - -- Enables join using a __field/column__ that is present in both data sets - -Step by step: -- Input layer: __Vector layer__ -- Table field: Field/ column that exists in __both data sets__ (name of column in vector layer) -- Input layer 2: __Text/csv/xls data__ -- Table field 2: Field/ column that exists in __both data sets__ (name of column in text/csv/xls) -- Join type: Select __„Take attributes of the first matching feature only (one-to-one)“__. -- Define __output layer name and destination__ or leave at temporary layer - - - - -![Join attributes by field value](/fig/en_join_attributes_by_field_value.png) - -```{Tip} -Hint -``` -If a table join does not work via the “Join Attributes by Field Value” tool, a join can also be performed via the __layer properties__ (right-click, Properties) under the Join tab. - - - -![Add vector join](/fig/en_add_vector_join.png) - -## Spatial Joins in QGIS - -Choose __“Join Attributes by Location”__ Tool: -- Adds __additional attributes__ of the join layer to the input layer based on the spatial relationship -- __Input Layer__: Dataset you want to enrich -- __Join layer__: Dataset with additional information/attributes -(you can specify which fields of the join layer should be added) - - - -![Spatial joins](/fig/en_spatial_joins.png) - - +# What is GIS? (Theory) + +## General information: + +- Geoinformatics in general focus on the __visualisation, organisation and processing of spatial data__. + +- Spatial analyses furthermore allow __to reveal circumstances and connections between spatial data features__: + + - by making use of their spatial location, __information layers__ (or features within a layer) can be analyzed in regard to each other to obtain new information. + +## Why are spatial analyses important? + +```{Note} +Discuss in groups: +``` + + - Situations in which you benefitted from spatial analyses. + - Situations in which you could may be have benefitted from spatial analyses. + - Main areas where you see potential for spatial analyses in your work. + +## Introduction to GIS: + +### An informal definition + +- Geographic Information System (GIS) uses maps to show __complex information__ clearly and efficiently. +- For example, in an __emergency context__, GIS can be used to __visualize on a map__ what is happening, where, how many people are affected, and what their main needs are. +- It can help to __summarize information__ from many different sources. +- This helps peoples to __quickly understand__ the situation and make better informed decisions. + +### A formal definition + +- A Geographic Information System (GIS) is a __digital system that connects data to maps__. +- It allows us to __collect, manage, analyse, and visualise data__ assigning them a position on __Earth’s surface__. +- GIS reveals __deeper insights__ into data, clearly demonstrating patterns and helping us to understand __geographic context__. +- Benefits include more __insightful analysis, improved communication, and ultimately better evidence-based decision-making__. +- It’s rooted in __geography__, the field of science devoted to the study of the lands, features, inhabitants, and phenomena of the Earth. +- GIS software can display __multiple types of data on a map__. + +### GIS components + + - Hardware + - Software + - Data + - People + - Workflows + +### We use GIS for: + + - Creating interactive queries __(Querying)__ + - Analysing spatial information __(Spatial analysis)__ + - Editing and visualizing data in maps __(Editing)__ + - Present the results of all these operations __(Map making)__ + +### GIS in humanitarian responses + +GIS has many applications in the __humanitarian field__: + + - Refugee/IDP camp planning + - Mapping remote areas to facilitate access + - Keep track of field operations + - Support security decisions + - Support operations planning + - Identify areas most affected by disasters + +```{Tip} +A few examples: +``` + + - [REACH Initiative](https://www.reachresourcecentre.info/search/) + - [World Food Programme(WFP)](https://hungermap.wfp.org/) + - [Médecins Sans Frontières (MSF)](https://geo.msf.org/catalogue) + - [iMMAP](https://immap.org/products/) + - [MapAction](https://maps.mapaction.org/) + + +# Paper maps and cartography + +### What is spatial analysis? + +- Spatial analysis __studies entities and events__ using their topological, geometric, or geographic properties. +- It includes a __variety of techniques__ to analyse geographic data. +- Data can be added to a map as layers and they can interact with each other. +- GIS enables you to work with these __layers__ to explore critically important questions and __find answers__ to those questions. + +### An example from the past: John Snow’s Cholera map + +In 1854 an __outbreak of cholera__ occurred in London, England. The most common theory was that the disease was spread through the air. Dr.John Snow believed that the danger was __in the water__. He made a map to analyse the __number of deaths__ in Soho per house block. He added the __location of water pumps__ on the map. +He found a __correlation__ between one specific water pump and the number of infections. + +```{Tip} +Example: +``` + - [Let’s explore John Snow’s map](https://www.arcgis.com/apps/PublicInformation/index.html?appid=d7deb67f810d46dfacb80ff80ac224e9) + +### GIS vs Cartography + +- __Cartography__ is the study and practice of __making maps__. +- A GIS is a __modern extension__ of traditional cartography. +- Both contain examples of a __base map__ to which additional data can be added. +- The differences are that there is no limit to the __amount of additional data__ that can be added to a GIS map. +- Cartographic maps are often extremely simplified as there are limits to the amount of data that can be physically and meaningfully stored on a small map. +- GIS uses __analysis and statistics__ to present data in support of particular arguments which a cartographic map cannot do. +- You can use GIS __for__ cartography. + + + +![GIS vs Cartography](/fig/en_GIS_vs_Cartography.png) GIS vs Cartography + +### General reference maps + +- Show important __physical features__ of an area +- Include __natural and man-made features__ +- Usually meant to help for __navigation__ or discovery of locations +- Usually fairly __simple__ +- Can be __stylized__ based on the intended audience + + + +![Reference map of Iraq](/fig/en_Reference_Map_Iraq.png) Reference map of Iraq + +### Infrastructure maps + + - Display relevant features and __structures__ in a specific area + - Help __planning__ and navigation + - High level of __detail__ + - Produced after field __data collection__ + + + +![Infrastructure map of Nigeria](/fig/en_Infrastructure_Map_Nigeria.png) +Infrastructure map of Nigeria + +### Thematic maps + + - Focus on a __specific theme__ or subject + - Features on the map __represent the subject__ being mapped + - Use __colours and shapes__ to display quantitative and qualitative data + - Rise __awareness__ about a specific subject + + + + +![Thematic map of Africa](/fig/en_Thematic_Map_Africa.png) Thematic map of Africa + +### Analysis maps + + - __Analyse data__ in respect to their geographic location + - Create __new layers of information__ from the interaction between multiple features + - Use colours and shapes __to help users__ understand specific events + - __Support__ decision makers + - Generally display a greater __level of detail__ + + + +![Analysis map of Yemen](/fig/en_Analysis_Map_Yemen.png) Analysis map of Yemen + +### Situation/Descriptive maps + + - Used to __better visualize__ a specific ongoing and/or past situation + - Maps can include __narrative__ and graphic elements + - Can be used in reports and/or to __raise awareness__ on a specific event + + + +![Situation map from Tilkaif to Mosul](/fig/en_Situation_Map_Tilkaif_Mosul.png)Situation map from Tilkaif to Mosul + +### Mapping and GIS + +- __Mapping__ focuses on representing spatial phenomena statically (paper formats) or dynamically (web formats) It is a major component of GIS. + +- __Geographic Information Systems__ refer to a set of systems related to the processing of geographic information (spatial data) GIS have their own unique software capable of storing, processing, representing and analysing geographical data. + + + +![Structure GIS System](/fig/en_GIS_CartONG01.png) Structure GIS System + +![Data behind the Map](/fig/en_Data_behind_the_Map_CartONG02.png) Data behind the Map + +![Mapping and GIS - Spreadsheet](/fig/en_Spreadsheet_CartONG03.png) Mapping and GIS-Spreadsheet + +![Graphic information](/fig/en_Graphic_information_CartONG04.png) Graphic information + +For further information have a look here: + +Share link: + +[PDF documentation](/QGIS-Training/QGIS-Dokumente/221013-Module-formation-cartographie-SIG_CartONG_EN-6-10.pdf) Mapping and GIS, p. 6 - 10 + + +Mapping and GIS, p. 6 - 10 + +## Examples for GIS created maps + +``` +The battle against Malaria - Burundi -- Coordination in camps - Bangladesh +``` +### Malaria + +- A fatal, mosquito-borne (vector) disease, killing over 620,000 people in 2020 (WHO). + +### The battle against Malaria + +__2 methods__ for the control of vector-borne diseases +- Use of insecticide-treated nets +- Insecticides for indoor residual spraying + +### Indoor Residual Spraying (IRS) + +This involves spraying the inside of houses, usually once or twice a year. However, in order to obtain significant community protection, a high level of coverage is required. IRS provides community protection when at least 85% of homes in a targeted area are sprayed. + +### Gis for coordination in the camps + +- The mega refugee camp in Bangladesh in 2018 +- __Navigational aid:__ +to help field teams move around in such a huge camp without getting lost +- __Planning support:__ +Population estimate, distribution of tents and infrastructure, risk assessment, … + +Share link: + +For further information have a look here: + +[PDF documentation](/QGIS-Training/QGIS-Dokumente/21013-Module-formation-cartographie-SIG_CartONG_EN-43-53.pdf) Examples for GIS created maps, p. 45 - 53 + +Examples for GIS created maps, p. 45 - 53 + +```{Tip} +Some more examples: +``` +The examples presented below illustrate __some more map productions by indentiying the need, software, key steps and deliverables__ associated with them. They are not exhaustive but allow to __have a vision of the different possibilities of cartographic rendering__ through different requests and various tools discussed in the toolbox. + +- Static products: [https://cartong.pages.gitlab.cartong.org/learning-corner/en/2_mobilize_mapping_gis/2_1_static_mapping]( +https://cartong.pages.gitlab.cartong.org/learning-corner/en/2_mobilize_mapping_gis/2_1_static_mapping) + +- Dynamic products: [https://cartong.pages.gitlab.cartong.org/learning-corner/en/2_mobilize_mapping_gis/2_2_dynamic_mapping]( +https://cartong.pages.gitlab.cartong.org/learning-corner/en/2_mobilize_mapping_gis/2_2_dynamic_mapping) + +- A field example: [https://cartong.pages.gitlab.cartong.org/learning-corner/en/2_mobilize_mapping_gis/2_3_field]( +https://cartong.pages.gitlab.cartong.org/learning-corner/en/2_mobilize_mapping_gis/2_3_field) + +For further information have a look here: + +Share link: + +[PDF documentation](/QGIS-Training/QGIS-Dokumente/GIS_Toolbox-2_Mobilizing_mapping_and_GIS-13-Sept-2022.pdf) Mobilizing mapping and GIS + + Mobilizing mapping and GIS + + +# Web GIS platforms + +## GIS Applications + +- You can use GIS through __multiple applications__, from desktop software, to online platforms, to mobile apps. +- At a basic level, you can perform limited geospatial tasks with apps such as Google Earth or Google Maps. +- As a GIS professional, you will mostly use a __desktop software__, which could be either: Proprietary or Open source. + +- __Open Street Maps (OSM)__: +[https://www.openstreetmap.org/#map=14/49.4192/8.7235]( +https://www.openstreetmap.org/#map=14/49.4192/8.7235) +An __open geographic database__ updated and maintained by a community of volunteers via open collaboration. It works using a tag system (each feature is categorized through tags). +- __uMap__: [https://umap.openstreetmap.fr/en/](https://umap.openstreetmap.fr/en/) +Online tool to create maps __using OSM layers__. +- __Felt__: [https://felt.com/](/https://felt.com/) +An __easy tool__ to create maps. You can draw, create feature and upload shapefiles. +- __Wikimapia:__ [https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w]( +https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w) +Online editable map service. Updated and maintained by contributors all over the world. It uses __local knowledge__, making it particularly useful in remote areas. +- __Google Maps:__ [https://www.google.com/maps/d/](https://www.google.com/maps/d/) +Limited, but it allows to upload layers, create and export features, __share simple maps__. + +## Geo mobile apps + +- __Qfield__: [https://docs.qfield.org/](https://docs.qfield.org/) +Through QFieldCloud, you can __open your QGIS projects__ on Qfield on your mobile device. Any edit made on the map in the app can then be synced and displayed in QGIS. +- __OsmAnd__: [https://osmand.net/](https://osmand.net/). +Using OSM basemap, it’s a good app for __offline navigation__. You can upload kml-files to display on the map, as well as recording your trips and then export them to kml. +- __GeoODK__: [http://geoodk.com/index.html](http://geoodk.com/index.html) +Combines __ODK with a geo app__. You can collect data through ODK surveys and display them on a map, in addition to easily create polygons and add information to them. + +See also: + +Share link: + +[PDF documentation](https://cartong.pages.gitlab.cartong.org/learning-corner/en/3_key_gis_concepts/3_4_examples_tools_mdc/3_4_3_tools_webmappin) Webmapping tools + +Webmapping tools + +# Geo Mobile Apps overview (general understanding) + +## Why are spatial analyses so important? + +```{Tip} +Discuss in groups: +``` +- Situations in which you benefitted from spatial analyses +- Situations in which you could maybe have benefitted from spatial analyses +- Main areas where you see potential for spatial analyses in your work + +## Spatial analyses in QGIS + +### Manual selection of features in QGIS + +- Click on the __respective features__ directly in the map: Selection when highlighted in the map and in the attribute table + +- Select feature __by polygon__: Choose „Select feature by polygon“ tool and draw a polygon around the feature of interest + + + +![Select Feature](/fig/en_select_feature.png) + +### Save selection (same for all selection types) + + - Save selected features as __new layer/ file__: + - Right click on layer, choose __„Export“ and „Save selected features as… “__ + - Choose location where the __data should be saved in__, + - Make sure that the mark at __„Save only selected features“__ is set + + + +![Save vector layer](/fig/en_save_vector_layer.png) + +### Select by Location Tool + +- Select all features that meet __one or more criteria__ with regard to a spatial reference + + + +![Select by location](/fig/en_select_by_location.png) + +- __All features__ that meet one or more criteria with regard to a spatial reference + + - __Example__: Select all features in the Dakar and Thies region. + +Step by step: + +- Select __features from input layer__ (in example select “healthsites”) +- Check __all geometric predicates__ that are relevant +- Select __second input layer__ (in example “Dakar_Thies”) +- Create __new selection__ + + + +![Research tools](/fig/en_research_tools.png) + +Combination of spatial queries by choosing in dropdown menu (__„Modify current selection by“__, if multiple selections are conducted in a row) + +- Adding to current selection (OR) + - __Example__: To identify and select all features that meet only one of the selected criteria + +- Selecting within current selection (AND) + - __Example__: To identify and select all features that meet all of the selected criteria + +- Remove from current selection (AND NOT) + - __Example__: To identify and select all features that meet one of the selected criteria but not the other + +## Non-Spatial Analyses in QGIS + +### Manual selection: + +- Clicking on the __respective features__ directly in the attribute table: + +![Selection attribute table](/fig/en_selection_attribute_table.png) + +![region indication](/fig/en_region_indication.png) + +### Select feature by expression: + +- Open the attribute table and open the __„Select features using an expression“__ window: + + + +![Select features using an expression](/fig/en_select_features_expression.png) + +- Different kinds of operators to choose from: +__Arithmetic operators__: >, < , =, != + + - __Example__: Select all health facilities in Senegal which have more than one nurse as staff. + +Step by step: +- Under __“Fields and Values”__: Select column name __“staff_nurs”__ +- Under __“Operators”__: Select __”>“__ +- Under __“Fields and Values”__: Click again on selected column name to see all unique values (right bottom, click on __“All Unique”__) +- Select the __respective unique value__ (here: ‘1’) +- Click on __“Select features”__ + + + +![Select by expression](/fig/en_select_by_expression.png) + +- Different kinds of operators to choose from: +__String operators:__ + - For example __“LIKE“__: Select all health facilities that are doctors + +Step by step: +- Under __“Fields and Values”__: Select column name __“amenity”__ +- Unser __“Operators”__: Select __”LIKE“__ +- Under __“Fields and Values”__: Click again on selected column name to see all unique values (right bottom, click on __“All Unique”__) +- Select the __respective unique value__ (here: ‘doctors’) +- Click on __“Select features”__ + + + +![Select by unique value](/fig/en_select_unique_value.png) + +- Different kinds of operators to choose from: +__Logical operators__: __“AND“ and “OR“__ → Enable to combine different queries/criteria + + + +![Logical operators](/fig/en_logical_operators.png) + +## Table Functions + +Similar to what you can do in a __spreadsheet__. +- __Create Field__: add a new attribute and manually insert values +- __Delete Field__: remove attributes that are redundant or attributes you will not work with +- __Calculate Field__: e.g. calculate new attribute population density + + + +![Table fields](/fig/en_table_fields.png) + +### Table Functions - Delete Fields + +Step by step: +- __Start__ edit mode +- Click on __delete fields button__ +- __Save and stop__ edit mode + + + + +![Delete table fields](/fig/en_delete_table_fields.png) + +![Delete table fields table display](/fig/en_delete_table_fields01.png) + +### Table Functions - Field Calculator + +- __Calculate__ area in square meters first and then __divide__ by 1,000,000 to get square kilometers +- __Calculate__ population density as people per square kilometer + + + +![Field calculator view a](/fig/en_field_calculator.png) + +![Field calculator view b](/fig/en_field_calculator01.png) + +![Field calculator view c](/fig/en_field_calculator02.png) + +Geoprocessing Tools (Selection) in QGIS + +## Geoprocessing Tools - Overview + +![Geoprocessing icons](/fig/en_geoprocessing_icons.png) + +![Geoprocessing tools](/fig/en_geoprocessing_tools.png) + +```{Tip} +Example for a clip: +``` +Creates a __selection__ based on the spatial relationship between each feature in the input layer and the features in an additional layer. + +Step by step: +- __Input Layer__: Layer from which the selection is clipped +- __Overlay Layer__: Area of interest that the input layer will be clipped to + + + +![Clip](/fig/en_clip.png) + +```{Tip} +Example for a buffer: +``` +- __Computes (a) buffer area(s)__ for all the features in an input layer, using a specified distance + +Step by step: +- __Input Layer__: Layer around which features the buffer(s) are to be created +- __Distance__: Choose a value and unit (make sure that your input data is projected) +- __Segments__: Add value +- Mark __„Dissolve result“__ to automatically dissolve the buffer outputs +- If individual buffers are needed, leave __blank__ + + + +![Buffer](/fig/en_buffer.png) + +```{Tip} +Examples for buffer usage: +``` +Philippines: Taal Volcano, Base surge hazard map +[https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg](https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg) + +![Taal Volcano](/fig/en_Taal_Volcano.png) + +Nepal: Earthquake, april 2015 +[https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf](https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf) + +![Nepal Earthquake](/fig/en_Nepal_earthquake.png) + +Fukushima: may 2011, Integrated doce results
+[https://www.emsics.com/five-years-fukushima-incident-management-considerations/](https://www.emsics.com/five-years-fukushima-incident-management-considerations/) + +![Aerial measuring results](/fig/en_Aerial_measuring_results.jpg) + +## Buffer: with and without “dissolve” + +With dissolve results: + +![With dissolve results](/fig/en_dissolve_results.png) + +Without dissolve results: + +![Without dissolve results](/fig/en_without_dissolve_results.png) + +## Non-Spatial Joins in QGIS + +- Choose __“Join Attributes by Field Value”__ Tool (use search tool): + +- __Adds attributes__ of a non-spatial table to the layer + +- Enables join using a __field/column__ that is present in both data sets + +Step by step: +- Input layer: __Vector layer__ +- Table field: Field/ column that exists in __both data sets__ (name of column in vector layer) +- Input layer 2: __Text/csv/xls data__ +- Table field 2: Field/ column that exists in __both data sets__ (name of column in text/csv/xls) +- Join type: Select __„Take attributes of the first matching feature only (one-to-one)“__. +- Define __output layer name and destination__ or leave at temporary layer + + + + +![Join attributes by field value](/fig/en_join_attributes_by_field_value.png) + +```{Tip} +Hint +``` +If a table join does not work via the “Join Attributes by Field Value” tool, a join can also be performed via the __layer properties__ (right-click, Properties) under the Join tab. + + + +![Add vector join](/fig/en_add_vector_join.png) + +## Spatial Joins in QGIS + +Choose __“Join Attributes by Location”__ Tool: +- Adds __additional attributes__ of the join layer to the input layer based on the spatial relationship +- __Input Layer__: Dataset you want to enrich +- __Join layer__: Dataset with additional information/attributes +(you can specify which fields of the join layer should be added) + + + +![Spatial joins](/fig/en_spatial_joins.png) + +## A galaxy of tools +GIS comes with a __galaxy of tools__ that are constantly evolving. An increasing number of traditional tools are now capable of supporting geographic information (Excel, Power BI, Adobe Illustrator…) + +### An overview: + +- __Mobile data collection tools__ + +The latter make it possible to collect data via mobile or tablet, and often to visualize and exchange it with other platforms according to a common format. + +- __Mapping tools__ + +These tools provide a simple vizualisation of geographic data, and allow for the production of maps. + +- __GIS tools__ + +As opposed to the previous ones, these more advanced tools are very comprehensive and allow for advanced analyses to be carried out on the geographical components of data. + +- __Webmapping tools__ + +These tools make it possible to manipulate and create maps online in a very simple way directly in a web browser. + +For further detalied information have a look here: + +Share link: + +[PDF documentation](/QGIS-Training/QGIS-Dokumente/221013-Module-formation-cartographie-SIG_CartONG_EN-36-41.pdf) GIS-related tools, p. 36 -41 + + GIS-related tools, p. 36 -41 + + diff --git a/_sources/content/Modul_1/en_qgis_fuer_johannes.md b/_sources/content/Modul_1/en_qgis_fuer_johannes.md deleted file mode 100755 index 357ec9cb6..000000000 --- a/_sources/content/Modul_1/en_qgis_fuer_johannes.md +++ /dev/null @@ -1,106 +0,0 @@ -## Non-Spatial Analyses in QGIS - -### Geoprocessing Tools - Overview and Selection - -![Geoprocessing icons](/fig/en_geoprocessing_icons.png) - -![Geoprocessing tools](/fig/en_geoprocessing_tools.png) - -```{Tip} -Example for a clip: -``` -Creates a __selection__ based on the spatial relationship between each feature in the input layer and the features in an additional layer. - -Step by step: -- __Input Layer__: Layer from which the selection is clipped -- __Overlay Layer__: Area of interest that the input layer will be clipped to - - - -![Clip](/fig/en_clip.png) - -```{Tip} -Example for a buffer: -``` -- __Computes (a) buffer area(s)__ for all the features in an input layer, using a specified distance - -Step by step: -- __Input Layer__: Layer around which features the buffer(s) are to be created -- __Distance__: Choose a value and unit (make sure that your input data is projected) -- __Segments__: Add value -- Mark __„Dissolve result“__ to automatically dissolve the buffer outputs -- If individual buffers are needed, leave __blank__ - - - -![Buffer](/fig/en_buffer.png) - -```{Tip} -Examples for buffer usage: -``` -Philippines: Taal Volcano, Base surge hazard map -[https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg](https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg) - -![Taal Volcano](/fig/en_Taal_Volcano.png) - -Nepal: Earthquake, april 2015 -[https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf](https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf) - -![Nepal Earthquake](/fig/en_Nepal_earthquake.png) - -Fukushima: may 2011, Integrated doce results
-[https://www.emsics.com/five-years-fukushima-incident-management-considerations/](https://www.emsics.com/five-years-fukushima-incident-management-considerations/) - -![Aerial measuring results](/fig/en_Aerial_measuring_results.jpg) - -### Buffer: with and without “Dissolve” - -With dissolve results: - -![With dissolve results](/fig/en_dissolve_results.png) - -Without dissolve results: - -![Without dissolve results](/fig/en_without_dissolve_results.png) - -## Non-Spatial Joins in QGIS - -- Choose __“Join Attributes by Field Value”__ Tool (use search tool): - -- __Adds attributes__ of a non-spatial table to the layer - -- Enables join using a __field/column__ that is present in both data sets - -Step by step: -- Input layer: __Vector layer__ -- Table field: Field/ column that exists in __both data sets__ (name of column in vector layer) -- Input layer 2: __Text/csv/xls data__ -- Table field 2: Field/ column that exists in __both data sets__ (name of column in text/csv/xls) -- Join type: Select __„Take attributes of the first matching feature only (one-to-one)“__. -- Define __output layer name and destination__ or leave at temporary layer - - - - -![Join attributes by field value](/fig/en_join_attributes_by_field_value.png) - -```{Tip} -Hint -``` -If a table join does not work via the “Join Attributes by Field Value” tool, a join can also be performed via the __layer properties__ (right-click, Properties) under the Join tab. - - - -![Add vector join](/fig/en_add_vector_join.png) - -## Spatial Joins in QGIS - -Choose __“Join Attributes by Location”__ Tool: -- Adds __additional attributes__ of the join layer to the input layer based on the spatial relationship -- __Input Layer__: Dataset you want to enrich -- __Join layer__: Dataset with additional information/attributes -(you can specify which fields of the join layer should be added) - - - -![Spatial joins](/fig/en_spatial_joins.png) \ No newline at end of file diff --git a/_sources/content/Modul_1/en_qgis_installation.md b/_sources/content/Modul_1/en_qgis_installation.md old mode 100755 new mode 100644 index cb834cb66..6978ecb2a --- a/_sources/content/Modul_1/en_qgis_installation.md +++ b/_sources/content/Modul_1/en_qgis_installation.md @@ -1,55 +1,51 @@ -# QGIS Installation - - -QGIS is open source and therefore freely available to everyone at no cost. You can install QGIS for Windows, Mac and Linux computers. The actual __Long Term Release__ is __QGIS 3.28.11 Firenze__. Generally we recommend to use the __latest Long Term Release__, because it is the most stable and contains the fewest bugs. You can __download__ the latest version here: [https://www.qgis.org/en/site/forusers/download.html](https://www.qgis.org/en/site/forusers/download.html) - -For our introduction, the standalone installers from OSGeo4W packages are sufficient for Windows. - -#### QGIS tutorial: QGIS 3.28 - installation and basic setup - -[![QGIS 3.28 - installation and basic setup](/fig/image_QGIS_3.28_download.png)](https://www.youtube.com/watch?v=tSJMT96HsAo) - -## Windows - -### 32 Bit or 64 Bit? -For __Windows operating systems__, there is always a 32-bit version and a 64-bit version of each QGIS version available for download. Which version to install depends on your computer and operating system. If it is not clear how many bits your operating system has, you can easily find out: Left-click on the __Windows icon at__ the bottom left of the screen (alternatively, open the Windows search function). Type __"System"__ on the keyboard, click on the entry __"System"__ in the search results. Under the item __"System type"__ you can read the bit number. - -### Installation -For the installation under Windows we use the __OSGeo4W network installer__. OSGeo4W is a project that offers __Open Geo related software for Windows__ easy to install. Visit the project page [https://trac.osgeo.org/osgeo4w/](https://trac.osgeo.org/osgeo4w/) select there _Download the ​OSGeo4W network installer_. - -* Make sure to select _Advanced Install_ / _Fortgeschrittene Installation_ during the installation process. - - QGIS Desktop - - GRASS GIS - - SAGA - -Video tutorial: https://www.youtube.com/watch?v=pja_EX0tVZA - -The selected software is then downloaded via the Internet and installed on-the-fly. - - -## Mac - -__**From version 3.30 SAGA must be integrated via plugin**__ - -At https://qgis.org/en/site/forusers/download.html select _Download for macOS_. Then use the link _Download QGIS_. - -More about how to install and activate plugins in QGIS can be found here: -[qgis-Interface#erweiterungen-plugins-installieren](https://courses.gistools.geog.uni-heidelberg.de/giscience/gis-einfuehrung/-/wikis/qgis-Interface#erweiterungen-plugins-installieren) - -## Linux - -__**From version 3.30 SAGA must be integrated via plugin**__ - -For installation on Linux systems with apt you can install QGIS: - -``` -sudo apt install qgis qgis-plugin-grass -``` - -In the conventional apt package sources, an older version of QGIS will probably be installed. If you are using the package source [Ubuntugis](https://launchpad.net/~ubuntugis/+archive/ubuntu/ppa), observe the following installation notes on https://qgis.org/en/site/forusers/alldownloads.html#repositories - -If you install a QGIS version >3.30 you have to install the plugin _Processing Saga NextGen Provider_ . - -More about how to install and activate plugins in QGIS can be found here: -[qgis-Interface#erweiterungen-plugins-installieren](https://courses.gistools.geog.uni-heidelberg.de/giscience/gis-einfuehrung/-/wikis/qgis-Interface#erweiterungen-plugins-installieren) - +# QGIS Installation + + +QGIS is open source and therefore freely available to everyone at no cost. You can install QGIS for Windows, Mac and Linux computers. The actual __Long Term Release__ is __QGIS 3.28.11 Firenze__. Generally we recommend to use the __latest Long Term Release__, because it is the most stable and contains the fewest bugs. You can __download__ the latest version here: [https://www.qgis.org/en/site/forusers/download.html](https://www.qgis.org/en/site/forusers/download.html) + +For our introduction, the standalone installers from OSGeo4W packages are sufficient for Windows. + +## Windows + +### 32 Bit or 64 Bit? +For __Windows operating systems__, there is always a 32-bit version and a 64-bit version of each QGIS version available for download. Which version to install depends on your computer and operating system. If it is not clear how many bits your operating system has, you can easily find out: Left-click on the __Windows icon at__ the bottom left of the screen (alternatively, open the Windows search function). Type __"System"__ on the keyboard, click on the entry __"System"__ in the search results. Under the item __"System type"__ you can read the bit number. + +### Installation +For the installation under Windows we use the __OSGeo4W network installer__. OSGeo4W is a project that offers __Open Geo related software for Windows__ easy to install. Visit the project page [https://trac.osgeo.org/osgeo4w/](https://trac.osgeo.org/osgeo4w/) select there _Download the ​OSGeo4W network installer_. + +* Make sure to select _Advanced Install_ / _Fortgeschrittene Installation_ during the installation process. + - QGIS Desktop + - GRASS GIS + - SAGA + +Video tutorial: https://www.youtube.com/watch?v=pja_EX0tVZA + +The selected software is then downloaded via the Internet and installed on-the-fly. + + +## Mac + +__**From version 3.30 SAGA must be integrated via plugin**__ + +At https://qgis.org/en/site/forusers/download.html select _Download for macOS_. Then use the link _Download QGIS_. + +More about how to install and activate plugins in QGIS can be found here: +[qgis-Interface#erweiterungen-plugins-installieren](https://courses.gistools.geog.uni-heidelberg.de/giscience/gis-einfuehrung/-/wikis/qgis-Interface#erweiterungen-plugins-installieren) + +## Linux + +__**From version 3.30 SAGA must be integrated via plugin**__ + +For installation on Linux systems with apt you can install QGIS: + +``` +sudo apt install qgis qgis-plugin-grass +``` + +In the conventional apt package sources, an older version of QGIS will probably be installed. If you are using the package source [Ubuntugis](https://launchpad.net/~ubuntugis/+archive/ubuntu/ppa), observe the following installation notes on https://qgis.org/en/site/forusers/alldownloads.html#repositories + +If you install a QGIS version >3.30 you have to install the plugin _Processing Saga NextGen Provider_ . + +More about how to install and activate plugins in QGIS can be found here: +[qgis-Interface#erweiterungen-plugins-installieren](https://courses.gistools.geog.uni-heidelberg.de/giscience/gis-einfuehrung/-/wikis/qgis-Interface#erweiterungen-plugins-installieren) + diff --git a/_sources/content/Modul_1/en_qgis_installation_ex1.md b/_sources/content/Modul_1/en_qgis_installation_ex1.md old mode 100755 new mode 100644 diff --git a/_sources/content/Modul_1/en_qgis_start.md b/_sources/content/Modul_1/en_qgis_start.md old mode 100755 new mode 100644 index 15f6b4a45..abed729c8 --- a/_sources/content/Modul_1/en_qgis_start.md +++ b/_sources/content/Modul_1/en_qgis_start.md @@ -1,118 +1,118 @@ -# Getting started with QGIS - -## Intro QGIS concept - -### What is QGIS? - -QGIS is an __open source geoinformation system software__. That means the source code is available for everyone, making QGIS a free application. -You may __view, edit, capture and analyze spatial data or create printable maps__ with it. QGIS was created in 2002 and is a project of volunteers. And it is __constantly changing__. - -## Introducing QGIS - -- QGIS is a __desktop software__: that means you get a program that opens up on your computer as a window with buttons you can click, forms you can fill out to do tasks, and it's generally a visual interactive experience. - -- QGIS is backed by a __large community of users__, so it’s easy to find solutions to technical issues by using QGIS forums, blog and subreddit. - -### Overview of QGIS Interface - -![QGIS_User_Interface](/fig/en_QGIS_GUI.png) -User interface - -1. __Layers List / Browser Panel:__ The __layers list__ shows __all layers/files__ that are __loaded in the project__. You can show/hide layers and set other properties. - -2. __Toolsbars: __ __Toolbars__ are shortcuts__ to execute frequently used commands. For example, there are special toolbars for __vector and raster files__, but also general ones for saving your project, etc. The toolbar contains, among other things, a list of all the commands you can use. The toolbar also contains the __toolbox__, which is used later in many of the wiki videos. - - - -![Alt text](/fig/en_Interface_02.png) -
- -Toolbox - -3. __Map View:__ The __map view__ is the __central component__ of every GIS programme. This is where the __geodata__ are displayed. The map view has a projection which does not always have to correspond to the projection of the layers. - -4. __Status bar:__ In the __status bar__ you will find __central information about the current map view__. Here you can set the __projection of the map view and the scale__. You can read the coordinates of the mouse pointer and thus quickly find out the coordinates of points on the map. You can rotate your map view, e.g. if you want to create a map facing south. - -5. __Side Toolbar__. You may see a __side toolbar__. This is another way to easily open vector and raster files in QGIS. - -6. __Locator bar__. Here you can __search for tools and layers__. If you don't know where to find a tool, you can try here. - -```{Tip} -Exercise: Create a new QGIS project -``` - - In your “GIS_Training” folder, create a __subfolder__ called __“Projects”__ - - Open __QGIS__ - - Click on __New Empty Project__ - - In the top-left corner, click on __Project__ - - Click on __Save as__, browse to your Projects folder and save the project as “Session1” - - Open your “Projects” folder and check the __.qgzfile__ that you just created - - - -![Project template](/fig/en_project_template_BRC.png) -Project template - -### Further Functionalities - -#### Moving the map view - -![](/fig/qgis_move_symbol.png) -* You can also move with the _arrow keys_ - - - -#### Zooming in the map view - -![](/fig/qgis_zoom_symbol.png) -* You can also zoom by scrolling -* Or with Ctrl+ or Ctrl- - - - -#### Show properties of objects - - - -* Make sure to select the layer you want identify features in - -#### Set the projection of the map view (project CRS) - - - -* Geodata concepts are explained in detail in [module 2](../Modul_2/en_qgis_geodata_concept.md) - -#### Open Project - - - -#### Save Project - - - -* The layer data used in the project are not saved in the project file. Instead, the project file only contains the file paths where the layer data were located at the time the project was last saved on the PC. If the location of this layer data is subsequently changed, the error message "handle unavailable layers" will appear when the project is opened again. -Good data organisation with a fixed and well thought-out folder structure prevents such problems. - -#### Open Toolbox - -![](/fig/Geschlossene_Toolbox_01.png) -* You can also zoom by scrolling -* Or with Ctrl+ or Ctrl- - - - -#### Show and hide displays and toolbars - - - -#### Move and arrange toolbars - - - - - -* At each toolbar there is a field of two dotted lines. If you move the mouse pointer over it until an arrow cross appears and then hold down the left mouse button, you can move the toolbar. This allows an individualised arrangement of your own tools. By compressing all toolbars into a few lines, the map view window can also be enlarged. - -See also: - [corresponding page in the Wiki](https://giscience.github.io/gis-training-resource-center/content/Wiki/en_qgis_interface_wiki.html) - +# Getting started with QGIS + +## Intro QGIS concept + +### What is QGIS? + +QGIS is an __open source geoinformation system software__. That means the source code is available for everyone, making QGIS a free application. +You may __view, edit, capture and analyze spatial data or create printable maps__ with it. QGIS was created in 2002 and is a project of volunteers. And it is __constantly changing__. + +## Introducing QGIS + +- QGIS is a __desktop software__: that means you get a program that opens up on your computer as a window with buttons you can click, forms you can fill out to do tasks, and it's generally a visual interactive experience. + +- QGIS is backed by a __large community of users__, so it’s easy to find solutions to technical issues by using QGIS forums, blog and subreddit. + +### Overview of QGIS Interface + +![QGIS_User_Interface](/fig/en_QGIS_GUI.png) +User interface + +1. __Layers List / Browser Panel:__ The __layers list__ shows __all layers/files__ that are __loaded in the project__. You can show/hide layers and set other properties. + +2. __Toolsbars: __ __Toolbars__ are shortcuts__ to execute frequently used commands. For example, there are special toolbars for __vector and raster files__, but also general ones for saving your project, etc. The toolbar contains, among other things, a list of all the commands you can use. The toolbar also contains the __toolbox__, which is used later in many of the wiki videos. + + + +![Alt text](/fig/en_Interface_02.png) +
+ +Toolbox + +3. __Map View:__ The __map view__ is the __central component__ of every GIS programme. This is where the __geodata__ are displayed. The map view has a projection which does not always have to correspond to the projection of the layers. + +4. __Status bar:__ In the __status bar__ you will find __central information about the current map view__. Here you can set the __projection of the map view and the scale__. You can read the coordinates of the mouse pointer and thus quickly find out the coordinates of points on the map. You can rotate your map view, e.g. if you want to create a map facing south. + +5. __Side Toolbar__. You may see a __side toolbar__. This is another way to easily open vector and raster files in QGIS. + +6. __Locator bar__. Here you can __search for tools and layers__. If you don't know where to find a tool, you can try here. + +```{Tip} +Exercise: Create a new QGIS project +``` + - In your “GIS_Training” folder, create a __subfolder__ called __“Projects”__ + - Open __QGIS__ + - Click on __New Empty Project__ + - In the top-left corner, click on __Project__ + - Click on __Save as__, browse to your Projects folder and save the project as “Session1” + - Open your “Projects” folder and check the __.qgzfile__ that you just created + + + +![Project template](/fig/en_project_template_BRC.png) +Project template + +### Further Functionalities + +#### Moving the map view + +![](/fig/qgis_move_symbol.png) +* You can also move with the _arrow keys_ + + + +#### Zooming in the map view + +![](/fig/qgis_zoom_symbol.png) +* You can also zoom by scrolling +* Or with Ctrl+ or Ctrl- + + + +#### Show properties of objects + + + +* Make sure to select the layer you want identify features in + +#### Set the projection of the map view (project CRS) + + + +* Geodata concepts are explained in detail in [module 2](../Modul_2/en_qgis_geodata_concept.md) + +#### Open Project + + + +#### Save Project + + + +* The layer data used in the project are not saved in the project file. Instead, the project file only contains the file paths where the layer data were located at the time the project was last saved on the PC. If the location of this layer data is subsequently changed, the error message "handle unavailable layers" will appear when the project is opened again. +Good data organisation with a fixed and well thought-out folder structure prevents such problems. + +#### Open Toolbox + +![](/fig/Geschlossene_Toolbox_01.png) +* You can also zoom by scrolling +* Or with Ctrl+ or Ctrl- + + + +#### Show and hide displays and toolbars + + + +#### Move and arrange toolbars + + + + + +* At each toolbar there is a field of two dotted lines. If you move the mouse pointer over it until an arrow cross appears and then hold down the left mouse button, you can move the toolbar. This allows an individualised arrangement of your own tools. By compressing all toolbars into a few lines, the map view window can also be enlarged. + +See also: + [corresponding page in the Wiki](https://giscience.github.io/gis-training-resource-center/content/Wiki/en_qgis_interface_wiki.html) + diff --git a/_sources/content/Modul_1/en_qgis_theorie.md b/_sources/content/Modul_1/en_qgis_theorie.md old mode 100755 new mode 100644 index 58fba5569..10fa4b4f1 --- a/_sources/content/Modul_1/en_qgis_theorie.md +++ b/_sources/content/Modul_1/en_qgis_theorie.md @@ -1,210 +1,210 @@ -# What is GIS? (Theory) - -## General Information: - -- A Geographic Information System (GIS) is a __digital system that connects data to maps__. - -- Geoinformatics in general focus on the __visualisation, organisation and processing of spatial data__. - -- Spatial analyses furthermore allow __to reveal circumstances and connections between spatial data features__: - - - by making use of their spatial location, __information layers__ (or features within a layer) can be analyzed in regard to each other to obtain new information. - -## Why are Spatial Analyses important? - -```{Note} -Discuss in groups: -``` - - - Situations in which you benefitted from spatial analyses. - - Situations in which you could may be have benefitted from spatial analyses. - - Main areas where you see potential for spatial analyses in your work. - -## Introduction to GIS: - -### We use GIS for: - - - Creating interactive queries __(Querying)__ - - Analysing spatial information __(Spatial analysis)__ - - Editing and visualizing data in maps __(Editing)__ - - Present the results of all these operations __(Map making)__ - -### GIS in Humanitarian Responses - -GIS has many applications in the __humanitarian field__: - - - Refugee/IDP camp planning - - Mapping remote areas to facilitate access - - Keep track of field operations - - Support security decisions - - Support operations planning - - Identify areas most affected by disasters - -```{Tip} -A few examples: -``` - - - [REACH Initiative](https://www.reachresourcecentre.info/search/) - - [World Food Programme (WFP)](https://hungermap.wfp.org/) - - [Médecins Sans Frontières (MSF)](https://geo.msf.org/catalogue) - - [iMMAP](https://immap.org/products/) - - [MapAction](https://maps.mapaction.org/) - - -## A Galaxy of Tools -GIS comes with a __galaxy of tools__ that are constantly evolving. An increasing number of traditional tools are now capable of supporting geographic information (Excel, Power BI, Adobe Illustrator…) - -### An Overview: - -- __Mobile Data Collection Tools__ - -The latter make it possible to collect data via mobile or tablet, and often to visualize and exchange it with other platforms according to a common format. - -- __Mapping Tools__ - -These tools provide a simple vizualisation of geographic data, and allow for the production of maps. - -- __GIS Tools__ - -As opposed to the previous ones, these more advanced tools are very comprehensive and allow for advanced analyses to be carried out on the geographical components of data. - -- __Webmapping Tools__ - -These tools make it possible to manipulate and create maps online in a very simple way directly in a web browser. - - -## Paper Maps and Cartography - -### What is Spatial Analysis? - -- Spatial analysis __studies entities and events__ using their topological, geometric, or geographic properties. -- It includes a __variety of techniques__ to analyse geographic data. -- Data can be __added to a map as layers and they can interact with each other__. -- GIS enables you to work with these __layers__ to explore critically important questions and __find answers__ to those questions. - -#### An Example from the Past: John Snows' Cholera Map - -In 1854 an __outbreak of cholera__ occurred in London, England. The most common theory was that the disease was spread through the air. Dr.John Snow believed that the danger was __in the water__. He made a map to analyse the __number of deaths__ in Soho per house block. He added the __location of water pumps__ on the map. -He found a __correlation__ between one specific water pump and the number of infections. - -__Dr. Snow's map of the Cholera outbreak of 1854__, and the reports that it accompanied, __won over the predominant "Miasma Theory"__ that the disease __was spread through the air__. Residents were now warned to __boil their water__, and so ended the last Cholera outbreak London has seen. - -![John Snows' Map](/fig/en_John_Snows_Map.png) John Snows' Map - -__Using GIS__, several measures of spatial central tendency have been applied to the dataset, revealing that the Spatial Mean (the geographic center of the distribution of deaths) of the outbreak lies __within 35 meters of the Broad Street Pump__, identified as the __source of contamination__ in the 1854 outbreak. - - -```{Tip} -Further information: -``` - - [Let’s explore John Snow’s map](https://www.arcgis.com/apps/PublicInformation/index.html?appid=d7deb67f810d46dfacb80ff80ac224e9) - -## GIS vs Cartography - -- __Cartography__ is the study and practice of __making maps__. -- A GIS is a __modern extension__ of traditional cartography. -- Both contain examples of a __base map__ to which additional data can be added. -- The differences are that there is no limit to the __amount of additional data__ that can be added to a GIS map. -- Cartographic maps are often extremely simplified as there are limits to the amount of data that can be physically and meaningfully stored on a small map. -- GIS uses __analysis and statistics__ to present data in support of particular arguments which a cartographic map cannot do. -- You can use GIS __for__ cartography. - - - -![GIS vs Cartography](/fig/en_GIS_vs_Cartography.png) GIS vs Cartography - -### General Reference Maps - -- Show important __physical features__ of an area -- Include __natural and man-made features__ -- Usually meant to help for __navigation__ or discovery of locations -- Usually fairly __simple__ -- Can be __stylized__ based on the intended audience - - - -![Reference map of Iraq](/fig/en_Reference_Map_Iraq.png) Reference map of Iraq - -### Infrastructure Maps - - - Display relevant features and __structures__ in a specific area - - Help __planning__ and navigation - - High level of __detail__ - - Produced after field __data collection__ - - - -![Infrastructure map of Nigeria](/fig/en_Infrastructure_Map_Nigeria.png) -Infrastructure map of Nigeria - -### Thematic Maps - - - Focus on a __specific theme__ or subject - - Features on the map __represent the subject__ being mapped - - Use __colours and shapes__ to display quantitative and qualitative data - - Rise __awareness__ about a specific subject - - - - -![Thematic map of Africa](/fig/en_Thematic_Map_Africa.png) Thematic map of Africa - -### Analysis Maps - - - __Analyse data__ in respect to their geographic location - - Create __new layers of information__ from the interaction between multiple features - - Use colours and shapes __to help users__ understand specific events - - __Support__ decision makers - - Generally display a greater __level of detail__ - - - -![Analysis map of Yemen](/fig/en_Analysis_Map_Yemen.png) Analysis map of Yemen - -### Situation/Descriptive Maps - - - Used to __better visualize__ a specific ongoing and/or past situation - - Maps can include __narrative__ and graphic elements - - Can be used in reports and/or to __raise awareness__ on a specific event - - - -![Situation map from Tilkaif to Mosul](/fig/en_Situation_Map_Tilkaif_Mosul.png)Situation map from Tilkaif to Mosul - - ## Web GIS platforms - -### GIS Applications - -- You can use GIS through __multiple applications__, from desktop software, to online platforms, to mobile apps. -- At a basic level, you can perform limited geospatial tasks with apps such as __Google Earth__ or __Google Maps__. -- As a GIS professional, you will mostly use a __desktop software__, which could be either: Proprietary or Open source. - -- __Open Street Maps (OSM)__: -[https://www.openstreetmap.org/#map=14/49.4192/8.7235]( -https://www.openstreetmap.org/#map=14/49.4192/8.7235) -An __open geographic database__ updated and maintained by a community of volunteers via open collaboration. It works using a tag system (each feature is categorized through tags). -- __uMap__: [https://umap.openstreetmap.fr/en/](https://umap.openstreetmap.fr/en/) -Online tool to create maps __using OSM layers__. -- __Felt__: [https://felt.com/](/https://felt.com/) -An __easy tool__ to create maps. You can draw, create feature and upload shapefiles. -- __Wikimapia:__ [https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w]( -https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w) -Online editable map service. Updated and maintained by contributors all over the world. It uses __local knowledge__, making it particularly useful in remote areas. -- __Google Maps:__ [https://www.google.com/maps/d/](https://www.google.com/maps/d/) -Limited, but it allows to upload layers, create and export features, __share simple maps__. - -### Geo Mobile Apps Overview (General Understanding) - -- __Qfield__: [https://docs.qfield.org/](https://docs.qfield.org/) -Through QFieldCloud, you can __open your QGIS projects__ on Qfield on your mobile device. Any edit made on the map in the app can then be synced and displayed in QGIS. -- __OsmAnd__: [https://osmand.net/](https://osmand.net/) -Using OSM basemap, it’s a good app for __offline navigation__. You can upload kml-files to display on the map, as well as recording your trips and then export them to kml. -- __GeoODK__: [http://geoodk.com/index.html](http://geoodk.com/index.html) -Combines __ODK with a geo app__. You can collect data through ODK surveys and display them on a map, in addition to easily create polygons and add information to them. - - - - - - - +# What is GIS? (Theory) + +## General Information: + +- A Geographic Information System (GIS) is a __digital system that connects data to maps__. + +- Geoinformatics in general focus on the __visualisation, organisation and processing of spatial data__. + +- Spatial analyses furthermore allow __to reveal circumstances and connections between spatial data features__: + + - by making use of their spatial location, __information layers__ (or features within a layer) can be analyzed in regard to each other to obtain new information. + +## Why are Spatial Analyses important? + +```{Note} +Discuss in groups: +``` + + - Situations in which you benefitted from spatial analyses. + - Situations in which you could may be have benefitted from spatial analyses. + - Main areas where you see potential for spatial analyses in your work. + +## Introduction to GIS: + +### We use GIS for: + + - Creating interactive queries __(Querying)__ + - Analysing spatial information __(Spatial analysis)__ + - Editing and visualizing data in maps __(Editing)__ + - Present the results of all these operations __(Map making)__ + +### GIS in Humanitarian Responses + +GIS has many applications in the __humanitarian field__: + + - Refugee/IDP camp planning + - Mapping remote areas to facilitate access + - Keep track of field operations + - Support security decisions + - Support operations planning + - Identify areas most affected by disasters + +```{Tip} +A few examples: +``` + + - [REACH Initiative](https://www.reachresourcecentre.info/search/) + - [World Food Programme (WFP)](https://hungermap.wfp.org/) + - [Médecins Sans Frontières (MSF)](https://geo.msf.org/catalogue) + - [iMMAP](https://immap.org/products/) + - [MapAction](https://maps.mapaction.org/) + + +## A Galaxy of Tools +GIS comes with a __galaxy of tools__ that are constantly evolving. An increasing number of traditional tools are now capable of supporting geographic information (Excel, Power BI, Adobe Illustrator…) + +### An Overview: + +- __Mobile Data Collection Tools__ + +The latter make it possible to collect data via mobile or tablet, and often to visualize and exchange it with other platforms according to a common format. + +- __Mapping Tools__ + +These tools provide a simple vizualisation of geographic data, and allow for the production of maps. + +- __GIS Tools__ + +As opposed to the previous ones, these more advanced tools are very comprehensive and allow for advanced analyses to be carried out on the geographical components of data. + +- __Webmapping Tools__ + +These tools make it possible to manipulate and create maps online in a very simple way directly in a web browser. + + +## Paper Maps and Cartography + +### What is Spatial Analysis? + +- Spatial analysis __studies entities and events__ using their topological, geometric, or geographic properties. +- It includes a __variety of techniques__ to analyse geographic data. +- Data can be __added to a map as layers and they can interact with each other__. +- GIS enables you to work with these __layers__ to explore critically important questions and __find answers__ to those questions. + +#### An Example from the Past: John Snows' Cholera Map + +In 1854 an __outbreak of cholera__ occurred in London, England. The most common theory was that the disease was spread through the air. Dr.John Snow believed that the danger was __in the water__. He made a map to analyse the __number of deaths__ in Soho per house block. He added the __location of water pumps__ on the map. +He found a __correlation__ between one specific water pump and the number of infections. + +__Dr. Snow's map of the Cholera outbreak of 1854__, and the reports that it accompanied, __won over the predominant "Miasma Theory"__ that the disease __was spread through the air__. Residents were now warned to __boil their water__, and so ended the last Cholera outbreak London has seen. + +![John Snows' Map](/fig/en_John_Snows_Map.png) John Snows' Map + +__Using GIS__, several measures of spatial central tendency have been applied to the dataset, revealing that the Spatial Mean (the geographic center of the distribution of deaths) of the outbreak lies __within 35 meters of the Broad Street Pump__, identified as the __source of contamination__ in the 1854 outbreak. + + +```{Tip} +Further information: +``` + - [Let’s explore John Snow’s map](https://www.arcgis.com/apps/PublicInformation/index.html?appid=d7deb67f810d46dfacb80ff80ac224e9) + +## GIS vs Cartography + +- __Cartography__ is the study and practice of __making maps__. +- A GIS is a __modern extension__ of traditional cartography. +- Both contain examples of a __base map__ to which additional data can be added. +- The differences are that there is no limit to the __amount of additional data__ that can be added to a GIS map. +- Cartographic maps are often extremely simplified as there are limits to the amount of data that can be physically and meaningfully stored on a small map. +- GIS uses __analysis and statistics__ to present data in support of particular arguments which a cartographic map cannot do. +- You can use GIS __for__ cartography. + + + +![GIS vs Cartography](/fig/en_GIS_vs_Cartography.png) GIS vs Cartography + +### General Reference Maps + +- Show important __physical features__ of an area +- Include __natural and man-made features__ +- Usually meant to help for __navigation__ or discovery of locations +- Usually fairly __simple__ +- Can be __stylized__ based on the intended audience + + + +![Reference map of Iraq](/fig/en_Reference_Map_Iraq.png) Reference map of Iraq + +### Infrastructure Maps + + - Display relevant features and __structures__ in a specific area + - Help __planning__ and navigation + - High level of __detail__ + - Produced after field __data collection__ + + + +![Infrastructure map of Nigeria](/fig/en_Infrastructure_Map_Nigeria.png) +Infrastructure map of Nigeria + +### Thematic Maps + + - Focus on a __specific theme__ or subject + - Features on the map __represent the subject__ being mapped + - Use __colours and shapes__ to display quantitative and qualitative data + - Rise __awareness__ about a specific subject + + + + +![Thematic map of Africa](/fig/en_Thematic_Map_Africa.png) Thematic map of Africa + +### Analysis Maps + + - __Analyse data__ in respect to their geographic location + - Create __new layers of information__ from the interaction between multiple features + - Use colours and shapes __to help users__ understand specific events + - __Support__ decision makers + - Generally display a greater __level of detail__ + + + +![Analysis map of Yemen](/fig/en_Analysis_Map_Yemen.png) Analysis map of Yemen + +### Situation/Descriptive Maps + + - Used to __better visualize__ a specific ongoing and/or past situation + - Maps can include __narrative__ and graphic elements + - Can be used in reports and/or to __raise awareness__ on a specific event + + + +![Situation map from Tilkaif to Mosul](/fig/en_Situation_Map_Tilkaif_Mosul.png)Situation map from Tilkaif to Mosul + + ## Web GIS platforms + +### GIS Applications + +- You can use GIS through __multiple applications__, from desktop software, to online platforms, to mobile apps. +- At a basic level, you can perform limited geospatial tasks with apps such as __Google Earth__ or __Google Maps__. +- As a GIS professional, you will mostly use a __desktop software__, which could be either: Proprietary or Open source. + +- __Open Street Maps (OSM)__: +[https://www.openstreetmap.org/#map=14/49.4192/8.7235]( +https://www.openstreetmap.org/#map=14/49.4192/8.7235) +An __open geographic database__ updated and maintained by a community of volunteers via open collaboration. It works using a tag system (each feature is categorized through tags). +- __uMap__: [https://umap.openstreetmap.fr/en/](https://umap.openstreetmap.fr/en/) +Online tool to create maps __using OSM layers__. +- __Felt__: [https://felt.com/](/https://felt.com/) +An __easy tool__ to create maps. You can draw, create feature and upload shapefiles. +- __Wikimapia:__ [https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w]( +https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w) +Online editable map service. Updated and maintained by contributors all over the world. It uses __local knowledge__, making it particularly useful in remote areas. +- __Google Maps:__ [https://www.google.com/maps/d/](https://www.google.com/maps/d/) +Limited, but it allows to upload layers, create and export features, __share simple maps__. + +### Geo Mobile Apps Overview (General Understanding) + +- __Qfield__: [https://docs.qfield.org/](https://docs.qfield.org/) +Through QFieldCloud, you can __open your QGIS projects__ on Qfield on your mobile device. Any edit made on the map in the app can then be synced and displayed in QGIS. +- __OsmAnd__: [https://osmand.net/](https://osmand.net/) +Using OSM basemap, it’s a good app for __offline navigation__. You can upload kml-files to display on the map, as well as recording your trips and then export them to kml. +- __GeoODK__: [http://geoodk.com/index.html](http://geoodk.com/index.html) +Combines __ODK with a geo app__. You can collect data through ODK surveys and display them on a map, in addition to easily create polygons and add information to them. + + + + + + + diff --git a/_sources/content/Modul_1/geodatenbeschaffung.md b/_sources/content/Modul_1/geodatenbeschaffung.md old mode 100755 new mode 100644 index ef5225306..59f216a6d --- a/_sources/content/Modul_1/geodatenbeschaffung.md +++ b/_sources/content/Modul_1/geodatenbeschaffung.md @@ -1,57 +1,57 @@ -# Geodatenbeschaffung -Für die Analysen im Tutorium nutzen wir eine vielzahl unterschiedlicher Datensätze aus verschiedenen Quellen. Auch für eure Abschlussaufgabe werdet ihr Geodaten von unterschiedlichen Websites, Behörden, Open-Data-Portalen, etc. beziehen. - -Hier findet eine unvollständige Liste, wo ihr Geodaten herunterladen könnt. - -| Name | Welche Datensätze (u.a.) | -| ------ | -------- | -| [Bundesamt für Kartographie und Geodäsie](http://www.geodatenzentrum.de/geodaten/gdz_rahmen.gdz_div?gdz_spr=deu&gdz_akt_zeile=5&gdz_anz_zeile=1&gdz_unt_zeile=0&gdz_user_id=0) | z.B. Verwaltungsgebiete für Deutschland | -| [USGS Earth Explorer](https://earthexplorer.usgs.gov/) | z.B. Landsat, Sentinel, SRTM, Aster, Land Cover | -| [Humanitarian Data Exchange](https://data.humdata.org/)| Infrastruktur, Bevölkerung, Wirtschaft | -| [Free GIS Data](http://freegisdata.rtwilson.com/#home) | eine Sammlung mit Links zu sehr vielen Themenbereichen | -| [Pangaea](https://www.pangaea.de/) | Freie Daten zu umweltwissenschaftlichen Themen | -| [SRTM Data](http://srtm.csi.cgiar.org/srtmdata/) | SRTM Höhendaten mit 90m Auflösung | -| [OpenAerialMap](https://openaerialmap.org/) | Luft- und Sattelitenbilder weltweit (z.B. HD mit 46m Auflösung) | -| [Copernicus & Land Monitoring Service der EU](https://land.copernicus.eu/pan-european) | Hoch aufgelöste, europaweite Rasterdaten zu Besiedelung, Land Cover, Wäldern, uvm. | - - -## Deutschland und Europa - -- Bundesamt für Kartographie und Geodäsie - Digitale Geodaten: https://gdz.bkg.bund.de/index.php/default/digitale-geodaten.html -- Eurostat - Geographische Daten: https://ec.europa.eu/eurostat/de/web/gisco/geodata - - -## Grenzen - -- Deutschland: http://opendatalab.de/projects/geojson-utilities/# -- Europa: https://ec.europa.eu/eurostat/de/web/gisco/geodata/reference-data/administrative-units-statistical-units/nuts -- Weltweit: - - https://www.geoboundaries.org/#top - - http://www.naturalearthdata.com/ - - -## OpenStreetMap - -- OSM QA TILES - OpenStreetMap data as Mapbox Vector Tiles: http://osmlab.github.io/osm-qa-tiles/ -- Geofabrik - OpenStreetMap Data Extracts: http://download.geofabrik.de/ -- Wiki - - Allgemein: https://wiki.openstreetmap.org/wiki/Main_Page - - Tags: https://wiki.openstreetmap.org/wiki/Tags - - -## Physische Geographie - -- Bundesanstalt für Geowissenschaften und Rohstoffe (BGR) - - Geoviewer: https://www.bgr.bund.de/DE/Gemeinsames/Geoviewer/geoviewer_node.html - - Produkt Center: https://produktcenter.bgr.de/terraCatalog/Start.do -- Wetter - DWD: https://cdc.dwd.de/portal/ - - -## Humangeographie - -- Bevölkerung: https://wopr.worldpop.org/ - - -## Online Werkzeuge - +# Geodatenbeschaffung +Für die Analysen im Tutorium nutzen wir eine vielzahl unterschiedlicher Datensätze aus verschiedenen Quellen. Auch für eure Abschlussaufgabe werdet ihr Geodaten von unterschiedlichen Websites, Behörden, Open-Data-Portalen, etc. beziehen. + +Hier findet eine unvollständige Liste, wo ihr Geodaten herunterladen könnt. + +| Name | Welche Datensätze (u.a.) | +| ------ | -------- | +| [Bundesamt für Kartographie und Geodäsie](http://www.geodatenzentrum.de/geodaten/gdz_rahmen.gdz_div?gdz_spr=deu&gdz_akt_zeile=5&gdz_anz_zeile=1&gdz_unt_zeile=0&gdz_user_id=0) | z.B. Verwaltungsgebiete für Deutschland | +| [USGS Earth Explorer](https://earthexplorer.usgs.gov/) | z.B. Landsat, Sentinel, SRTM, Aster, Land Cover | +| [Humanitarian Data Exchange](https://data.humdata.org/)| Infrastruktur, Bevölkerung, Wirtschaft | +| [Free GIS Data](http://freegisdata.rtwilson.com/#home) | eine Sammlung mit Links zu sehr vielen Themenbereichen | +| [Pangaea](https://www.pangaea.de/) | Freie Daten zu umweltwissenschaftlichen Themen | +| [SRTM Data](http://srtm.csi.cgiar.org/srtmdata/) | SRTM Höhendaten mit 90m Auflösung | +| [OpenAerialMap](https://openaerialmap.org/) | Luft- und Sattelitenbilder weltweit (z.B. HD mit 46m Auflösung) | +| [Copernicus & Land Monitoring Service der EU](https://land.copernicus.eu/pan-european) | Hoch aufgelöste, europaweite Rasterdaten zu Besiedelung, Land Cover, Wäldern, uvm. | + + +## Deutschland und Europa + +- Bundesamt für Kartographie und Geodäsie - Digitale Geodaten: https://gdz.bkg.bund.de/index.php/default/digitale-geodaten.html +- Eurostat - Geographische Daten: https://ec.europa.eu/eurostat/de/web/gisco/geodata + + +## Grenzen + +- Deutschland: http://opendatalab.de/projects/geojson-utilities/# +- Europa: https://ec.europa.eu/eurostat/de/web/gisco/geodata/reference-data/administrative-units-statistical-units/nuts +- Weltweit: + - https://www.geoboundaries.org/#top + - http://www.naturalearthdata.com/ + + +## OpenStreetMap + +- OSM QA TILES - OpenStreetMap data as Mapbox Vector Tiles: http://osmlab.github.io/osm-qa-tiles/ +- Geofabrik - OpenStreetMap Data Extracts: http://download.geofabrik.de/ +- Wiki + - Allgemein: https://wiki.openstreetmap.org/wiki/Main_Page + - Tags: https://wiki.openstreetmap.org/wiki/Tags + + +## Physische Geographie + +- Bundesanstalt für Geowissenschaften und Rohstoffe (BGR) + - Geoviewer: https://www.bgr.bund.de/DE/Gemeinsames/Geoviewer/geoviewer_node.html + - Produkt Center: https://produktcenter.bgr.de/terraCatalog/Start.do +- Wetter - DWD: https://cdc.dwd.de/portal/ + + +## Humangeographie + +- Bevölkerung: https://wopr.worldpop.org/ + + +## Online Werkzeuge + - Bounding Box (Envelope/Extent) Finder: http://bboxfinder.com/#0.000000,0.000000,0.000000,0.000000 \ No newline at end of file diff --git a/_sources/content/Modul_1/geodatenformate.md b/_sources/content/Modul_1/geodatenformate.md old mode 100755 new mode 100644 index 04f73005c..fd787dd2b --- a/_sources/content/Modul_1/geodatenformate.md +++ b/_sources/content/Modul_1/geodatenformate.md @@ -1,57 +1,57 @@ -# Geodatenformate -Auf dieser Seite werden die für dieses Tutorium wichtigsten Geodatenformate behandelt, um einen allgemeinen Überblick für die Teilnehmenden zu schaffen. Dabei werden folgende Themen angesprochen: -- [Unterschiede bei der Arbeit mit Raster- und Vektordaten](#unterschiede-bei-der-arbeit-mit-raster-und-vektordaten) -- [verschiedene Vektordatenformate](#vektordatenformate) (Shapefiles und GeoJSON) -- [Rasterdatenformate](#rasterdatenformate) (GeoTiff) -- [Datenformate für Raster- und Vektordaten](#datenformate-für-raster-und-vektordaten) (Geopackage), und -- [Web Map Service (WMS)](#web-map-service-wms) - -# Unterschiede bei der Arbeit mit Raster- und Vektordaten -Tools für Vektordaten **sind nicht** für die Verarbeitung von Rasterdaten geeignet, und umgekehrt. - -# Vektordatenformate -## Shapefiles -Shapefiles werden in **mehreren verschiedenen Dateien** aufgeteilt gespeichert. Dabei trägt jede "Teil-Datei" ganz bestimmte Informationen, wie in der Darstellung hier gesehen werden kann. Dateien mit der Endung .shp, zum Beispiel, sind die hauptsächliche Datei und beinhalten die Geometrien, während dbf-Dateien die Attributtabelle enthalten. - -![Shapefile_Dateiformate_1](uploads/43feaa0744cd1a6b29d52a6639730b2c/Shapefile_Dateiformate_1.png) - -Shapefiles können immer **nur einen Geometrietyp beinhalten,** das heißt sie enthalten entweder ausschließlich Punkt, Linien, oder Polygon Features, niemals eine Mischung der drei. - -## Textuelle Austauschformate, wie z.B. GeoJSON - -Vektordaten können auch in textuellen Austauschformaten, wie zum Beispiel GeoJSON, vorhanden sein. -GeoJSON ist ein offenes Standardaustauschformat für räumliche Daten und basiert auf JSON (JavaScript Object Notation). Daten, die in diesem Format dargestellt werden, beziehen sich auf das geographische Koordinatenbezugssystem "World Geodetic System 1984". Zur Veranschaulichung finden sich in der folgenden Darstellung Beispiele für gültige GeoJSON-Dateien. - -![GeoJSON_Dateiformat](uploads/db464273a2aecd3cf0c9d53a1e7325ed/GeoJSON_Dateiformat.PNG) - -*Quelle: ArcGIS Online. o.J. GeoJSON. Online unter: https://doc.arcgis.com/de/arcgis-online/reference/geojson.htm, abgerufen am 19.10.2020.* - -Weitere Informationen zu GeoJSON und der Verwendung in GIS finden sich unter: https://doc.arcgis.com/de/arcgis-online/reference/geojson.htm. - -GeoJSON-Daten können zudem unter der Adresse geojson.io leicht **selbst erstellt** werden. - -# Rasterdatenformate -## GeoTiff -* GeoTiffs beinhalten georeferenzierte Bilddateien, zum Beispiel Luft- oder Satellitenbilder. -* GeoTiff (**Geo**graphic **T**agged **I**mage **F**ile **F**ormat) wird heute nahezu standardmäßig als Speicherformat für Rasterdaten verwendet. -* In die Bilddatei eingebettete Metadaten enthalten Informationen zur Georeferenz des Bildes, wie etwa Koordinaten zur Georeferenzierung oder das Koordinatenbezugssystem. - -Weitere Informationen finden sich unter folgendem Link des OGC (Open Geospatial Consortium): http://docs.opengeospatial.org/is/19-008r4/19-008r4.html#_geotiff. - -# Datenformate für Raster- und Vektordaten -## Geopackages -Ein Geopackage (standardisiert durch das *Open Geospatial Consortium (OGC)*) ist ein Format zur Speicherung von Vektor- und Rasterdaten, das von den meisten GIS unterstützt wird. -- Idee: Eine dateibasierte Datenbank (SQLite), in welcher auf standardisierte Weise alle Daten gespeichert werden. -- Dateibasierte Datenbank = eine Datei, welche in strukturierter Weise abgefragt werden kann - -**Probleme mit Geopackages:** - -Beim Arbeiten mit Geopackages kann es zuweilen zu dem Dateiformat spezifischen Problemen kommen. So kann die Verarbeitung mit Tools wie Clip, oder anderen Wekrzeugen, besonders wenn Änderungen in der Attributtabelle vorgenommen werden, Fehlermeldungen hervorrufen. Lösen lässt sich dieses Problem, wenn das Dateiformat *Geopackage* nur zum Speichern, also zum Exportieren ausgewählt wird (der Vorteil liegt hier besonders im Vergleich zu Shapefiles darin, dass ein Geopackage nur aus einer Datei, und nicht mehreren besteht und so keine Teildatei verloren gehen kann). Während der Arbeit im Projekt, sollte dagegen besser mit GeoTiffs oder Shapefiles gearbeitet werden, um Fehlerquellen zu minimieren. - -Herunterladen werden können leere Geopackages zum Weiterverarbeiten unter folgendem Link: http://www.geopackage.org/data/empty.gpkg - -# Web Map Service (WMS) - -**W**eb **M**ap **S**ervices (WMS) erlauben es euch, Geodaten aus dem Web mit eurem GIS zu verknüpfen und abzurufen. Als Ergebnis wird euch dabei dann ein georeferenziertes Kartenbild angezeigt. Dieses Prinzip wird beispielsweise auch bei [Basemaps](qgis-Basemaps) angewendet. Im zugehörigen Wikibeitrag finden sich Informationen darüber, wie sich WMS Daten in QGIS hereinladen lassen, und welche Funktionen genutzt werden können. - +# Geodatenformate +Auf dieser Seite werden die für dieses Tutorium wichtigsten Geodatenformate behandelt, um einen allgemeinen Überblick für die Teilnehmenden zu schaffen. Dabei werden folgende Themen angesprochen: +- [Unterschiede bei der Arbeit mit Raster- und Vektordaten](#unterschiede-bei-der-arbeit-mit-raster-und-vektordaten) +- [verschiedene Vektordatenformate](#vektordatenformate) (Shapefiles und GeoJSON) +- [Rasterdatenformate](#rasterdatenformate) (GeoTiff) +- [Datenformate für Raster- und Vektordaten](#datenformate-für-raster-und-vektordaten) (Geopackage), und +- [Web Map Service (WMS)](#web-map-service-wms) + +# Unterschiede bei der Arbeit mit Raster- und Vektordaten +Tools für Vektordaten **sind nicht** für die Verarbeitung von Rasterdaten geeignet, und umgekehrt. + +# Vektordatenformate +## Shapefiles +Shapefiles werden in **mehreren verschiedenen Dateien** aufgeteilt gespeichert. Dabei trägt jede "Teil-Datei" ganz bestimmte Informationen, wie in der Darstellung hier gesehen werden kann. Dateien mit der Endung .shp, zum Beispiel, sind die hauptsächliche Datei und beinhalten die Geometrien, während dbf-Dateien die Attributtabelle enthalten. + +![Shapefile_Dateiformate_1](uploads/43feaa0744cd1a6b29d52a6639730b2c/Shapefile_Dateiformate_1.png) + +Shapefiles können immer **nur einen Geometrietyp beinhalten,** das heißt sie enthalten entweder ausschließlich Punkt, Linien, oder Polygon Features, niemals eine Mischung der drei. + +## Textuelle Austauschformate, wie z.B. GeoJSON + +Vektordaten können auch in textuellen Austauschformaten, wie zum Beispiel GeoJSON, vorhanden sein. +GeoJSON ist ein offenes Standardaustauschformat für räumliche Daten und basiert auf JSON (JavaScript Object Notation). Daten, die in diesem Format dargestellt werden, beziehen sich auf das geographische Koordinatenbezugssystem "World Geodetic System 1984". Zur Veranschaulichung finden sich in der folgenden Darstellung Beispiele für gültige GeoJSON-Dateien. + +![GeoJSON_Dateiformat](uploads/db464273a2aecd3cf0c9d53a1e7325ed/GeoJSON_Dateiformat.PNG) + +*Quelle: ArcGIS Online. o.J. GeoJSON. Online unter: https://doc.arcgis.com/de/arcgis-online/reference/geojson.htm, abgerufen am 19.10.2020.* + +Weitere Informationen zu GeoJSON und der Verwendung in GIS finden sich unter: https://doc.arcgis.com/de/arcgis-online/reference/geojson.htm. + +GeoJSON-Daten können zudem unter der Adresse geojson.io leicht **selbst erstellt** werden. + +# Rasterdatenformate +## GeoTiff +* GeoTiffs beinhalten georeferenzierte Bilddateien, zum Beispiel Luft- oder Satellitenbilder. +* GeoTiff (**Geo**graphic **T**agged **I**mage **F**ile **F**ormat) wird heute nahezu standardmäßig als Speicherformat für Rasterdaten verwendet. +* In die Bilddatei eingebettete Metadaten enthalten Informationen zur Georeferenz des Bildes, wie etwa Koordinaten zur Georeferenzierung oder das Koordinatenbezugssystem. + +Weitere Informationen finden sich unter folgendem Link des OGC (Open Geospatial Consortium): http://docs.opengeospatial.org/is/19-008r4/19-008r4.html#_geotiff. + +# Datenformate für Raster- und Vektordaten +## Geopackages +Ein Geopackage (standardisiert durch das *Open Geospatial Consortium (OGC)*) ist ein Format zur Speicherung von Vektor- und Rasterdaten, das von den meisten GIS unterstützt wird. +- Idee: Eine dateibasierte Datenbank (SQLite), in welcher auf standardisierte Weise alle Daten gespeichert werden. +- Dateibasierte Datenbank = eine Datei, welche in strukturierter Weise abgefragt werden kann + +**Probleme mit Geopackages:** + +Beim Arbeiten mit Geopackages kann es zuweilen zu dem Dateiformat spezifischen Problemen kommen. So kann die Verarbeitung mit Tools wie Clip, oder anderen Wekrzeugen, besonders wenn Änderungen in der Attributtabelle vorgenommen werden, Fehlermeldungen hervorrufen. Lösen lässt sich dieses Problem, wenn das Dateiformat *Geopackage* nur zum Speichern, also zum Exportieren ausgewählt wird (der Vorteil liegt hier besonders im Vergleich zu Shapefiles darin, dass ein Geopackage nur aus einer Datei, und nicht mehreren besteht und so keine Teildatei verloren gehen kann). Während der Arbeit im Projekt, sollte dagegen besser mit GeoTiffs oder Shapefiles gearbeitet werden, um Fehlerquellen zu minimieren. + +Herunterladen werden können leere Geopackages zum Weiterverarbeiten unter folgendem Link: http://www.geopackage.org/data/empty.gpkg + +# Web Map Service (WMS) + +**W**eb **M**ap **S**ervices (WMS) erlauben es euch, Geodaten aus dem Web mit eurem GIS zu verknüpfen und abzurufen. Als Ergebnis wird euch dabei dann ein georeferenziertes Kartenbild angezeigt. Dieses Prinzip wird beispielsweise auch bei [Basemaps](qgis-Basemaps) angewendet. Im zugehörigen Wikibeitrag finden sich Informationen darüber, wie sich WMS Daten in QGIS hereinladen lassen, und welche Funktionen genutzt werden können. + *Further Resources:* Weitere Informationen zu WMS finden sich auch unter: https://www.ogc.org/standards/wms. \ No newline at end of file diff --git a/_sources/content/Modul_1/ger_qgis_installation.md b/_sources/content/Modul_1/ger_qgis_installation.md old mode 100755 new mode 100644 index 6815bf0cb..1b2788fe4 --- a/_sources/content/Modul_1/ger_qgis_installation.md +++ b/_sources/content/Modul_1/ger_qgis_installation.md @@ -1,44 +1,44 @@ -# Installation -QGIS ist Open Source und daher frei und ohne Kosten für jeden verfügbar. Ihr könnt QGIS für Windows, Mac und Linux Rechner installieren. - -## Windows -Für die Installation unter Windows verwenden wir den OSGeo4W Netzwerkinstaller. OSGeo4W ist ein Projekt, das Open Geo bezogene Software für Windows einfach zu installieren anbietet. Besucht die Projektseite [https://trac.osgeo.org/osgeo4w/](https://trac.osgeo.org/osgeo4w/) und klickt dort auf den link `Download the ​OSGeo4W network installer`. - -* Achtet darauf während des Installationsprozesses _Advanced Install_ / _Fortgeschrittene Installation_ zu wählen. Nur dann können die für diesen Kurs relevante Software präzise wählen: - - QGIS Desktop - - GRASS GIS - - SAGA - -Videotutorial: https://www.youtube.com/watch?v=pja_EX0tVZA - -Die gewählte Software wird dann über das Internet heruntergeladen und on-the-fly installiert. - - -## Mac - -__**Ab Version 3.30 muss SAGA per plugin eingebunden werden**__ - - Unter https://qgis.org/en/site/forusers/download.html `Download for macOS` wählen. Dann den Link _Download QGIS_ nutzen. - -In QGIS dann das Plugin _Processing Saga NextGen Provider_ installieren. - -Mehr zu wie man Plugins in QGIS installiert und aktiviert findet ihr hier: -[qgis-Interface#erweiterungen-plugins-installieren](https://courses.gistools.geog.uni-heidelberg.de/giscience/gis-einfuehrung/-/wikis/qgis-Interface#erweiterungen-plugins-installieren) - -## Linux - -__**Ab Version 3.30 muss SAGA per plugin eingebunden werden**__ - -Für die installation unter Linux Systemen mit apt könnt ihr QGIS installieren: - -``` -sudo apt install qgis qgis-plugin-grass -``` - -In den herkömmlichen apt Paketquellen wird vermutlich eine ältere Version von QGIS installiert sein. Solltet ihr die Paketquelle [Ubuntugis](https://launchpad.net/~ubuntugis/+archive/ubuntu/ppa) nutzen, beachtet die folgenden installations Hinweise auf https://qgis.org/en/site/forusers/alldownloads.html#repositories - -Solltet ihr hierüber eine QGIS Version >3.30 installieren müsst ihr das Plugin _Processing Saga NextGen Provider_ noch installieren. - -Mehr zu wie man Plugins in QGIS installiert und aktiviert findet ihr hier: -[qgis-Interface#erweiterungen-plugins-installieren](https://courses.gistools.geog.uni-heidelberg.de/giscience/gis-einfuehrung/-/wikis/qgis-Interface#erweiterungen-plugins-installieren) - +# Installation +QGIS ist Open Source und daher frei und ohne Kosten für jeden verfügbar. Ihr könnt QGIS für Windows, Mac und Linux Rechner installieren. + +## Windows +Für die Installation unter Windows verwenden wir den OSGeo4W Netzwerkinstaller. OSGeo4W ist ein Projekt, das Open Geo bezogene Software für Windows einfach zu installieren anbietet. Besucht die Projektseite [https://trac.osgeo.org/osgeo4w/](https://trac.osgeo.org/osgeo4w/) und klickt dort auf den link `Download the ​OSGeo4W network installer`. + +* Achtet darauf während des Installationsprozesses _Advanced Install_ / _Fortgeschrittene Installation_ zu wählen. Nur dann können die für diesen Kurs relevante Software präzise wählen: + - QGIS Desktop + - GRASS GIS + - SAGA + +Videotutorial: https://www.youtube.com/watch?v=pja_EX0tVZA + +Die gewählte Software wird dann über das Internet heruntergeladen und on-the-fly installiert. + + +## Mac + +__**Ab Version 3.30 muss SAGA per plugin eingebunden werden**__ + + Unter https://qgis.org/en/site/forusers/download.html `Download for macOS` wählen. Dann den Link _Download QGIS_ nutzen. + +In QGIS dann das Plugin _Processing Saga NextGen Provider_ installieren. + +Mehr zu wie man Plugins in QGIS installiert und aktiviert findet ihr hier: +[qgis-Interface#erweiterungen-plugins-installieren](https://courses.gistools.geog.uni-heidelberg.de/giscience/gis-einfuehrung/-/wikis/qgis-Interface#erweiterungen-plugins-installieren) + +## Linux + +__**Ab Version 3.30 muss SAGA per plugin eingebunden werden**__ + +Für die installation unter Linux Systemen mit apt könnt ihr QGIS installieren: + +``` +sudo apt install qgis qgis-plugin-grass +``` + +In den herkömmlichen apt Paketquellen wird vermutlich eine ältere Version von QGIS installiert sein. Solltet ihr die Paketquelle [Ubuntugis](https://launchpad.net/~ubuntugis/+archive/ubuntu/ppa) nutzen, beachtet die folgenden installations Hinweise auf https://qgis.org/en/site/forusers/alldownloads.html#repositories + +Solltet ihr hierüber eine QGIS Version >3.30 installieren müsst ihr das Plugin _Processing Saga NextGen Provider_ noch installieren. + +Mehr zu wie man Plugins in QGIS installiert und aktiviert findet ihr hier: +[qgis-Interface#erweiterungen-plugins-installieren](https://courses.gistools.geog.uni-heidelberg.de/giscience/gis-einfuehrung/-/wikis/qgis-Interface#erweiterungen-plugins-installieren) + diff --git a/_sources/content/Modul_2/en_data_sources.md b/_sources/content/Modul_2/en_data_sources.md old mode 100755 new mode 100644 index 273dd7453..ecc793aae --- a/_sources/content/Modul_2/en_data_sources.md +++ b/_sources/content/Modul_2/en_data_sources.md @@ -1,5 +1,5 @@ -# Data Sources - - - +# Data Sources + + + override turbo \ No newline at end of file diff --git a/_sources/content/Modul_2/en_qgis_basic_data_processing.md b/_sources/content/Modul_2/en_qgis_basic_data_processing.md old mode 100755 new mode 100644 index 9f84bd8e6..ebaf92458 --- a/_sources/content/Modul_2/en_qgis_basic_data_processing.md +++ b/_sources/content/Modul_2/en_qgis_basic_data_processing.md @@ -1,43 +1,43 @@ -# Geodata and Geodata processing -**Competences:** -* Data Import -* Geo features and attributes -* Feature selection -* Basemap selection - - -## Data import - -Before you can start visualizing and analysing in QGIS, you need to import your data. [Here](../../content/Modul_2/en_data_sources.md) you can look up, where to find different data sources. -Depending on which file format you want to import, the process differs slightly. - -### Vector data import -The possible data formats are listed [here](../../content/Modul_2/en_qgis_geodata_concept.md). **add link to heading** -Go to the data source manager and choose vector on the right. By clicking on the three dots you can browse your files and choose the ones you want to import. - -![datasource manager](../../fig/en_datasourcemanager_qgis.png) - -![import vector data](../../fig/en_import_vector.png) - -### Raster data import -Go to the data source manager and choose vector on the right. By clicking on the three dots you can browse your files and choose the ones you want to import. - -![datasource manager](../../fig/en_datasourcemanager_qgis.png) - -![import raster data](../../fig/en_import_raster.png) - -### Delimited Text import - -### GeoPackage import - - -### Adding basemap - - -## Geo features and attributes - - -## Feature selection - - +# Geodata and Geodata processing +**Competences:** +* Data Import +* Geo features and attributes +* Feature selection +* Basemap selection + + +## Data import + +Before you can start visualizing and analysing in QGIS, you need to import your data. [Here](../../content/Modul_2/en_data_sources.md) you can look up, where to find different data sources. +Depending on which file format you want to import, the process differs slightly. + +### Vector data import +The possible data formats are listed [here](../../content/Modul_2/en_qgis_geodata_concept.md). **add link to heading** +Go to the data source manager and choose vector on the right. By clicking on the three dots you can browse your files and choose the ones you want to import. + +![datasource manager](../../fig/en_datasourcemanager_qgis.png) + +![import vector data](../../fig/en_import_vector.png) + +### Raster data import +Go to the data source manager and choose vector on the right. By clicking on the three dots you can browse your files and choose the ones you want to import. + +![datasource manager](../../fig/en_datasourcemanager_qgis.png) + +![import raster data](../../fig/en_import_raster.png) + +### Delimited Text import + +### GeoPackage import + + +### Adding basemap + + +## Geo features and attributes + + +## Feature selection + + ## Basemap selection \ No newline at end of file diff --git a/_sources/content/Modul_2/en_qgis_basic_data_processing_ex1.md b/_sources/content/Modul_2/en_qgis_basic_data_processing_ex1.md old mode 100755 new mode 100644 index a3f59c155..d24d0ab21 --- a/_sources/content/Modul_2/en_qgis_basic_data_processing_ex1.md +++ b/_sources/content/Modul_2/en_qgis_basic_data_processing_ex1.md @@ -1,2 +1,2 @@ -# Basic Geodata processing Exercise 1 +# Basic Geodata processing Exercise 1 \ No newline at end of file diff --git a/_sources/content/Modul_2/en_qgis_data_sources_ex1.md b/_sources/content/Modul_2/en_qgis_data_sources_ex1.md old mode 100755 new mode 100644 diff --git a/_sources/content/Modul_2/en_qgis_geodata_concept.md b/_sources/content/Modul_2/en_qgis_geodata_concept.md old mode 100755 new mode 100644 index 37c675d67..95e80c23f --- a/_sources/content/Modul_2/en_qgis_geodata_concept.md +++ b/_sources/content/Modul_2/en_qgis_geodata_concept.md @@ -1,128 +1,131 @@ -# Geodata concept - -**Competences:** -* Projections -* Layer concept -* Vector and raster data (basic concepts) -* Vector file formats - - - - - -## Projections -### Theory - -The earth is a sphere and cannot be represented on a flat map without being distorted. To able able to display the earth on a flat map for example as a rectangle it needs to be projected. For further explanation, watch this [video](https://www.youtube.com/watch?v=kIID5FDi2JQ). - -For this translation, from a curved on a flat surface, thousands of different methods exist. These are called **Coordinate Reference Systems (CRS)**. - -![Different Coordinate Reference Systems](../../fig/en_examples_projections.png) - -Every projection comes with a trade-off in shape, direction, distance and area. That's why it is important to choose different types of CRS for different use cases. -For example, Mercator projections don´t represent the area correctly. Google Maps still uses the Mercator to be able to represent streets correctly, since it works well on a small scale. On a big scale, the shape of the countries stay the same but the area is mispresented. You can check the true size in comparison to different placements on the map on this [website](https://www.thetruesize.com). A popular example is Greenland in comparison with Africa, which seem on the map to be about the same size, but in reality Africa is a lot bigger. - -![Comparison Greenland - Africa](../../fig/en_greenland_africa.png) - -It's important to work with the right projections, if not we will produce wrong results! - -This table shows an overview on which projections to use for which needed characteristic: - -| Mercator (cylindrical) | Lambert cylindrical | Albers conic | -| :--------------------: | :-----------------: | :----------: | -| [x] shape | [ ] shape | [x] shape | -| [x] rotation | [x] rotation | [ ] rotation | -| [ ] area | [x] area | [x] area | - -For smaller areas local projections should be used, since they give a more accurate display at the expense of more distortion at the global level. - -![Local Coordinate Reference Systems](../../fig/en_local_crs.png) - -### Application - -You can find all the projections and their CRS code at this [website](http://epsg.io). - - -To change the projection of a **vector file**, click on *Vector*, *Data Management Tools*, *Reproject Layer*. Select your input layer and the target crs. Click on the three dots to *Save to File...* and click *Run*. For a detailed instruction click on this [video](https://gitlab.gistools.geog.uni-heidelberg.de/giscience/disaster-tools/gis-in-anticipatory-humanitarian-action/-/wikis/uploads/7e7a28698859062d1b832b558b2721c6/qgis_reproject_vector.mp4). - -To change the projection of a **raster file**, clickclick on *Raster*, *Projections*, *Warp (Reproject)*. Choose your input layer and target crs. Click on the three dots to *Save to File...* and click *Run*. For a detailed instruction click on this [video](https://gitlab.gistools.geog.uni-heidelberg.de/giscience/disaster-tools/gis-in-anticipatory-humanitarian-action/-/wikis/uploads/3b7a1bb2408f4453f22d73f54156888b/qgis_reproject_raster.mp4). - -It is crucial that you are aware of the difference in data projection and project projection. They should always be the same, or else you will get wrong results! You can change the data projection by following the steps explained above. The project projection is on the bottom left corner, as seen here. -![QGIS Interface](../../fig/en_QGIS_User_Interface.png) -The interface then will be the same and by searching for the right EPSG you can change the projection. - -## Excercises - -Now it's your turn! - -You can apply your knowledge on this excercise by getting used to the interface and changing the projections. - -[Exercise 1](https://gitlab.gistools.geog.uni-heidelberg.de/giscience/disaster-tools/gis-in-anticipatory-humanitarian-action/-/tree/main/Exercise_1) ---> in future link to HeiCloud - - - -==explain and show often made mistakes?== - -This [Website](https://ihatecoordinatesystems.com/) provides explanations und solutions for often made mistakes. - -In the [Wiki](../../content/Wiki/en_qgis_projections_wiki.md) are further tips. - - - - -## Layer concept - -Geodata represents a real-world object on a map as a feature. A feature consists of two types of information: the location and attributes, f. e. name or ID. Those informations are collected in layers. A layer can only consist of geographic objects of the same type. [^1] - - -[^1]: https://cartong.pages.gitlab.cartong.org/learning-corner/en/3_key_gis_concepts/3_3_key_concepts/3_3_1_layers - -By superpositioning different layers, you build your map and can obtain information of different sources. With those you then can perform analyses or adapt the representation by using symbols and colors. - -![Layer concept](../../fig/en_layer.png) - - -## Vector and raster data - -There are two file types of geographic data: **vector and raster**. - -![Vector and raster data](../../fig/en_vector_raster.png) - - -> **Vector** -Vector data contains a shape or a geometry. By using geometry objects (points, lines and polygons) the real world is represented. Each object stores the location (as adress or coordinates) and further attributes, f. e. name or ID. Which geometry is used, depends on the feature it represents. -![Geometry vector data](../../fig/en_vector_geometry.png) - >>Examples: buildings, streets - - -> **Raster** -Raster data are images which contain a matrix of pixels. Each pixel stores a value. -Since a raster is based on an image, the resolution is crucial. It defines the accuracy of the data and size of the pixels. -![Raster data quality](../../fig/en_quality_raster.png) ->> Examples (stored as a value): elevation, temperature, land cover - - -In this picture you can see the same location, on the left as vector data, visualising streets and urban area, and on the right hand as raster data (satellite image), showing the land cover. - -vector | raster -:-------------------------:|:-------------------------: -![same location as vector data](../../fig/en_same_location_vector.png) | ![same location as raster data](../../fig/en_same_location_raster.png) - - -## Vector file formats - -Vector data can have the following data formats: - -| Filename extension| Name | Description | -| ----- | --- | --- | -|.shp | Shapefile |Old but still widely used geodataformat. Can only contain one dataset. The file has to consist of at least three different files (.shp, .shx, .dbf)| -|.gpkg| GeoPackage | Very versatile geodata format and the new standard for geodata. Can contain multiple datafiles (vector, raster and not spatial data like tables)| -|.kml |Keyhole Markup Language | Geodata format for use with [Google Earth]( https://earth.google.com/web/)| -| .gpx| GPS Exchange Format|Geodata format for the exchange of coordinates. For example for waypoints of tracks. | -| .geojson|GeoJSON|Similar to shapefiles, but stores all information in a single file. - - -![data formats](../../fig/en_data_formats.png) - - +# Geodata concept + +**Competences:** +* Projections +* Layer concept +* Vector and raster data (basic concepts) +* Vector file formats + + + + + +## Projections +### Theory + +The earth is a sphere and cannot be represented on a flat map without being distorted. To able able to display the earth on a flat map for example as a rectangle it needs to be projected. For further explanation, watch this video. +[![preview video](../../fig/screenshot_video_every_world_map_is_wrong.png)](https://www.youtube.com/watch?v=kIID5FDi2JQ "Why every world map is wrong") + +For this translation, from a curved on a flat surface, thousands of different methods exist. These are called **Coordinate Reference Systems (CRS)**. + +![Different Coordinate Reference Systems](../../fig/en_examples_projections.png) + +Every projection comes with a trade-off in shape, direction, distance and area. That's why it is important to choose different types of CRS for different use cases. +For example, Mercator projections don´t represent the area correctly. Google Maps still uses the Mercator to be able to represent streets correctly, since it works well on a small scale. On a big scale, the shape of the countries stay the same but the area is mispresented. You can check the true size in comparison to different placements on the map on this [website](https://www.thetruesize.com). A popular example is Greenland in comparison with Africa, which seem on the map to be about the same size, but in reality Africa is a lot bigger. + +![Comparison Greenland - Africa](../../fig/en_greenland_africa.png) + +It's important to work with the right projections, if not we will produce wrong results! + +This table shows an overview on which projections to use for which needed characteristic: + +| Mercator (cylindrical) | Lambert cylindrical | Albers conic | +| :--------------------: | :-----------------: | :----------: | +| [x] shape | [ ] shape | [x] shape | +| [x] rotation | [x] rotation | [ ] rotation | +| [ ] area | [x] area | [x] area | + +For smaller areas local projections should be used, since they give a more accurate display at the expense of more distortion at the global level. + +![Local Coordinate Reference Systems](../../fig/en_local_crs.png) + +### Application + +You can find all the projections and their CRS code at this [website](http://epsg.io). + + +To change the projection of a **vector file**, click on *Vector*, *Data Management Tools*, *Reproject Layer*. Select your input layer and the target crs. Click on the three dots to *Save to File...* and click *Run*. For a detailed instruction click on this video. + + +To change the projection of a **raster file**, clickclick on *Raster*, *Projections*, *Warp (Reproject)*. Choose your input layer and target crs. Click on the three dots to *Save to File...* and click *Run*. For a detailed instruction click on this video. + + +It is crucial that you are aware of the difference in data projection and project projection. They should always be the same, or else you will get wrong results! You can change the data projection by following the steps explained above. The project projection is on the bottom left corner, as seen [here](../../fig/en_QGIS_User_Interface.png). + +The interface then will be the same and by searching for the right EPSG you can change the projection. + +## Excercises + +Now it's your turn! + +You can apply your knowledge on this excercise by getting used to the interface and changing the projections. + +[Exercise 1](https://gitlab.gistools.geog.uni-heidelberg.de/giscience/disaster-tools/gis-in-anticipatory-humanitarian-action/-/tree/main/Exercise_1) +--> in future link to HeiCloud + + + +==explain and show often made mistakes?== + +This [Website](https://ihatecoordinatesystems.com/) provides explanations und solutions for often made mistakes. + +In the [Wiki](../../content/Wiki/en_qgis_projections_wiki.md) are further tips. + + + + +## Layer concept + +Geodata represents a real-world object on a map as a feature. A feature consists of two types of information: the location and attributes, f. e. name or ID. Those informations are collected in layers. A layer can only consist of geographic objects of the same type. [^1] + + +[^1]: https://cartong.pages.gitlab.cartong.org/learning-corner/en/3_key_gis_concepts/3_3_key_concepts/3_3_1_layers + +By superpositioning different layers, you build your map and can obtain information of different sources. With those you then can perform analyses or adapt the representation by using symbols and colors. + +![Layer concept](../../fig/en_layer.png) + + +## Vector and raster data + +There are two file types of geographic data: **vector and raster**. + +![Vector and raster data](../../fig/en_vector_raster.png) + + +> **Vector** +Vector data contains a shape or a geometry. By using geometry objects (points, lines and polygons) the real world is represented. Each object stores the location (as adress or coordinates) and further attributes, f. e. name or ID. Which geometry is used, depends on the feature it represents. +![Geometry vector data](../../fig/en_vector_geometry.png) + >>Examples: buildings, streets + + +> **Raster** +Raster data are images which contain a matrix of pixels. Each pixel stores a value. +Since a raster is based on an image, the resolution is crucial. It defines the accuracy of the data and size of the pixels. +![Raster data quality](../../fig/en_quality_raster.png) +>> Examples (stored as a value): elevation, temperature, land cover + + +In this picture you can see the same location, on the left as vector data, visualising streets and urban area, and on the right hand as raster data (satellite image), showing the land cover. + +vector | raster +:-------------------------:|:-------------------------: +![same location as vector data](../../fig/en_same_location_vector.png) | ![same location as raster data](../../fig/en_same_location_raster.png) + + +## Vector file formats + +Vector data can have the following data formats: + +| Filename extension| Name | Description | +| ----- | --- | --- | +|.shp | Shapefile |Old but still widely used geodataformat. Can only contain one dataset. The file has to consist of at least three different files (.shp, .shx, .dbf)| +|.gpkg| GeoPackage | Very versatile geodata format and the new standard for geodata. Can contain multiple datafiles (vector, raster and not spatial data like tables)| +|.kml |Keyhole Markup Language | Geodata format for use with [Google Earth]( https://earth.google.com/web/)| +| .gpx| GPS Exchange Format|Geodata format for the exchange of coordinates. For example for waypoints of tracks. | +| .geojson|GeoJSON|Similar to shapefiles, but stores all information in a single file. + + +![data formats](../../fig/en_data_formats.png) + + diff --git a/_sources/content/Modul_2/en_qgis_geodata_concept_ex1.md b/_sources/content/Modul_2/en_qgis_geodata_concept_ex1.md old mode 100755 new mode 100644 diff --git a/_sources/content/Modul_3/en_qgis_classification_ex1.md b/_sources/content/Modul_3/en_qgis_classification_ex1.md old mode 100755 new mode 100644 diff --git a/_sources/content/Modul_3/en_qgis_data_classification.md b/_sources/content/Modul_3/en_qgis_data_classification.md old mode 100755 new mode 100644 index e323dd812..a5232a750 --- a/_sources/content/Modul_3/en_qgis_data_classification.md +++ b/_sources/content/Modul_3/en_qgis_data_classification.md @@ -1,76 +1,76 @@ -# Geodata Classification - -## Data Styling/ Classification - -Data classification is the process that allows you to assign different symbols to features. i.e. different objects in the same layer based on their properties. This allows users of the map to quickly see the properties of numerous features. - -In QGIS, a style is a way of cartographic visualization that takes into account a layer’s individual and thematic features. It encompasses basic characteristics of symbology, such as the color and presence of fill, outline parameters, the use of markers, scale-dependent rendering, layer transparency, and interactions with other layers. [Source](https://hub.packtpub.com/style-management-qgis/) - - -## The Goal of Data Classification - -The basic goal of a classification scheme is to group together similar observations and split apart observations that are substantially different. In more technical terms, the goal is to find the optimal number of classes and where to put the breaks between those classes so as to minimize within group variance and maximize between group differences. For instance, if I had a data set with 4 observations of 1.3, 1.6, 3.5 and 3.9, many folks would be inclined to split those observations into 2 groups with 1.3 and 1.6 in the first group and 3.5 and 3.9 in the second because that pairing makes sense given the large numerical gap in the middle of the data range. Such an approach is common and is called “maximum breaks.” - -However, there are often other considerations when classifying our data and simply maximizing between group differences may not be the primary goal: In the example above, it might be possible that 1.5 is a critical value and all that matters is to distinguish between locations above and below that critical break point (e.g., if a location has a reading below 1.5 they might be eligible for emergency funding). In this case, external constraints over-ride our mathematical solutions and despite being fairly close together 1.3 and 1.6 would now be placed in different classes since they straddle that breakpoint. - -```{Note} -Remember: -``` - -If you are going to classify your data you must decide both the number of classes and the method for breaking your data into ranges. - -[Source](https://www.axismaps.com/guide/data-classification) - - -## Importance of data classification - -Data Classification is used to group a large number of observations into data ranges or classes. It is a useful tool to structure the data for choropleth maps automatically and it helps to reduce the information content. It allows to make the presentation of values much clearer. Individual observations are lost, small differences can be reduced and large ones can be emphasized and evaluated better. Distributional characteristics and the psychology of perception are taken into account. [Source](https://cartography-playground.gitlab.io/playgrounds/data-classification-methods/) - -## How to classify data? - -To style or classify in Qgis, you must have an existing shapefile in your Qgis layer or upload the shapefile of the data you want to classify via Layer menu, then add layer, then add vector layer and under source botton, upload the shapefile that you intends to classify or style, then click ok and you can now see it in the layer panel. -The picture below shows the Sierra Leone food insecurity 2015 shapefile that we can to classify in the layers pannel. - -![](/fig/SierraLeone_shapefile_in_layer_pannel.png) - -* Right click on the shapefile in the layer pannel and then property - -![](/fig/View_of_properties_from_layer_pannel.png) - -* Then a layer properties will pump up. Click on symbology and select the type of classification or style that you want from circle 1. - -![](/fig/Layer_properties.png) - - -* Additionally, you can choose from single symbol, categorized and graduated in order to classify your data. Just next to it you will see color where you can choose color of your choice. At the bottom left-down, there is classify icon which allow you to classify different features in the layer to your choice. This classify icon can only work if you choose categorized or graduated style from up. - -![](/fig/Style_selection.png) - -* Below the syle option, you can also select the value, symbol and the color ramp that you want - -![](/fig/Value_and_Symbol_selection.png) - -* Once you click on classify, you can then now see all the classify features of your data. You can change the color of any of this categorized features by right click and go to change color and select any color that you want. Apply and click ok - -![](/fig/Change_feature_color.png) - - -### Categorized classification - -* The below screenshot shows the overview of the categorized map - -![](/fig/Categorized_district_map_SierraLeone.png) - -See video of classification by categorized - - - - -### Graduated classification - -Graduated styles are based on continuous values of an attribute field that define how each feature should be rendered. You can assign a range of symbols, colors, or sizes to each value, and QGIS will automatically classify your data into intervals or classes. Graduated symbols are most useful when you want to show clear differences between features with attribute values in different value ranges. The GIS Application will analyse the attribute data (e.g. height) and, based on the number of classes you request, create groupings for you. - -See the below video of graduated classes classification - - - +# Geodata Classification + +## Data Styling/ Classification + +Data classification is the process that allows you to assign different symbols to features. i.e. different objects in the same layer based on their properties. This allows users of the map to quickly see the properties of numerous features. + +In QGIS, a style is a way of cartographic visualization that takes into account a layer’s individual and thematic features. It encompasses basic characteristics of symbology, such as the color and presence of fill, outline parameters, the use of markers, scale-dependent rendering, layer transparency, and interactions with other layers. [Source](https://hub.packtpub.com/style-management-qgis/) + + +## The Goal of Data Classification + +The basic goal of a classification scheme is to group together similar observations and split apart observations that are substantially different. In more technical terms, the goal is to find the optimal number of classes and where to put the breaks between those classes so as to minimize within group variance and maximize between group differences. For instance, if I had a data set with 4 observations of 1.3, 1.6, 3.5 and 3.9, many folks would be inclined to split those observations into 2 groups with 1.3 and 1.6 in the first group and 3.5 and 3.9 in the second because that pairing makes sense given the large numerical gap in the middle of the data range. Such an approach is common and is called “maximum breaks.” + +However, there are often other considerations when classifying our data and simply maximizing between group differences may not be the primary goal: In the example above, it might be possible that 1.5 is a critical value and all that matters is to distinguish between locations above and below that critical break point (e.g., if a location has a reading below 1.5 they might be eligible for emergency funding). In this case, external constraints over-ride our mathematical solutions and despite being fairly close together 1.3 and 1.6 would now be placed in different classes since they straddle that breakpoint. + +```{Note} +Remember: +``` + +If you are going to classify your data you must decide both the number of classes and the method for breaking your data into ranges. + +[Source](https://www.axismaps.com/guide/data-classification) + + +## Importance of data classification + +Data Classification is used to group a large number of observations into data ranges or classes. It is a useful tool to structure the data for choropleth maps automatically and it helps to reduce the information content. It allows to make the presentation of values much clearer. Individual observations are lost, small differences can be reduced and large ones can be emphasized and evaluated better. Distributional characteristics and the psychology of perception are taken into account. [Source](https://cartography-playground.gitlab.io/playgrounds/data-classification-methods/) + +## How to classify data? + +To style or classify in Qgis, you must have an existing shapefile in your Qgis layer or upload the shapefile of the data you want to classify via Layer menu, then add layer, then add vector layer and under source botton, upload the shapefile that you intends to classify or style, then click ok and you can now see it in the layer panel. +The picture below shows the Sierra Leone food insecurity 2015 shapefile that we can to classify in the layers pannel. + +![](/fig/SierraLeone_shapefile_in_layer_pannel.png) + +* Right click on the shapefile in the layer pannel and then property + +![](/fig/View_of_properties_from_layer_pannel.png) + +* Then a layer properties will pump up. Click on symbology and select the type of classification or style that you want from circle 1. + +![](/fig/Layer_properties.png) + + +* Additionally, you can choose from single symbol, categorized and graduated in order to classify your data. Just next to it you will see color where you can choose color of your choice. At the bottom left-down, there is classify icon which allow you to classify different features in the layer to your choice. This classify icon can only work if you choose categorized or graduated style from up. + +![](/fig/Style_selection.png) + +* Below the syle option, you can also select the value, symbol and the color ramp that you want + +![](/fig/Value_and_Symbol_selection.png) + +* Once you click on classify, you can then now see all the classify features of your data. You can change the color of any of this categorized features by right click and go to change color and select any color that you want. Apply and click ok + +![](/fig/Change_feature_color.png) + + +### Categorized classification + +* The below screenshot shows the overview of the categorized map + +![](/fig/Categorized_district_map_SierraLeone.png) + +See video of classification by categorized + + + + +### Graduated classification + +Graduated styles are based on continuous values of an attribute field that define how each feature should be rendered. You can assign a range of symbols, colors, or sizes to each value, and QGIS will automatically classify your data into intervals or classes. Graduated symbols are most useful when you want to show clear differences between features with attribute values in different value ranges. The GIS Application will analyse the attribute data (e.g. height) and, based on the number of classes you request, create groupings for you. + +See the below video of graduated classes classification + + + diff --git a/_sources/content/Modul_3/en_qgis_data_queries.md b/_sources/content/Modul_3/en_qgis_data_queries.md old mode 100755 new mode 100644 index 261b47a13..ae2e0fb52 --- a/_sources/content/Modul_3/en_qgis_data_queries.md +++ b/_sources/content/Modul_3/en_qgis_data_queries.md @@ -1,188 +1,188 @@ -# Geodata Selection and Queries - -## Geodata queries - -Spatial queries allows you to select features in layers by their spatial relationships (intersect, contain, touch etc.) with features from another layer. In Qgis, this functionality is available via the selection by location and extract by location processing tools. - -### Spatial queries: select by click - -This section demonstrate how to select an area or location by just a click and view its spatial features. Below is a map of Nigeria. Click on the icon number 1 which is the select feature and click on any part of the map that you want to select. See point number 2 which has already shown yellow as the selected area. Open the attribute table through the layer pannel, number 3 and click on number 4 to just view the feature of the selected part by clicking on selected features, then you arrive at number 6 which display only selected features. - -![](/fig/Select_by_click.png) - -See video of select by click - - - - - -### Spatial queries: select by polygon - -This section is similar to selection by click. Only that you will select features by polygon from number 1 and draw the polygon on the area you want to cover or view and then right click. you will see that the polygon area will be selected in yellow color just like number 3. View the attribute table and click on number 6 to show only selected features in the polygon that you have created. You can use icon number 7 to deselect features. - -![](/fig/Select_by_polygon.png) - -See video of select by radius - - - - -### Spatial queries: select by location - -This section can not only be used to show the features but also to get visual idea of the spatial relationship of different areas together. It has several spatial query operations which includes intersect, contain, disjoint, equal, touch, overlap, are within and cross. - - * Example below shows how to select by location by intersect. We want to see the spatial relationship between Nigeria and its neighboring countries in term of intersect by location. - -* Click on icon number 1 and select by location. You will select features from which area or shapefile you want from icon 3 and icon 5 as the shapefile you want to intersect with. Icon 4 shows the various operations that can be down with select by location. Then click on run - icon 6, and and close to see the intersect on display. - -![](/fig/Select_by_location_intersect.png) - -* The below screenshot shows the four countries that intersect Nigeria in yellow color. You can as well check the features of these four countries by opeing attribute table and view selected features. - -![](/fig/Select_by_location_intersect_output.png) - - -See video of select by location with intersect - - - - -Additionally, you can play around all the geometric predictions of the features to be familiar with them. The example below shows selection by location by disjoint. We loaded neighboring countires to be disjointed from Nigerian map and now you can see all the disjointed countries in yellow color. - -![](/fig/Select_by_location_disjoint.png) - -You can see the features of those countries by attribute table and show selected features. - - - -## Non-spatial queries - -Non-spatial queries describe characteristics of the features and this query show a place or feature irrespective of its location i.e. **what** instead of **where**. It is totally independent of geographic location and not relating to, occupying, or having the character of space. Non-spatial queries are crucial for analyzing and understanding the data associated with the spatial features in a GIS project, providing insights and facilitating decision-making based on non-spatial attributes. Non-spatial data is also known as attribute data. - -There are two ways by which you can select and show the features of non-spatial data. Among which are manual selection or just by click and select by expression (arithmetic operators, string operators, logical operator etc.). - - -### Manual selection - -We want to manually select three regions in the below vector layer through the attribute table. Open the attribute table, select any of the place you would like to select, press control bottom on your PC and click on any other features you would like to select. Then, you can click on show selected features and it will be automatically highlighted in yellow color on the Qgis display panel. - - -![](/fig/Manual_select_by_attribute_table.png) - - -See video - - - - - -### Select by Expression - -You can use the “Select by expression” option in the **layer properties** (see icon 1) or through the **Select** menu in the attribute table (see icon 2) to apply an expression to a layer. Sometimes, you can also find the icon of select by expression at (see icon 3) by click on it and choose select features by expression or just by Ctrl plus F3 on your key board. This option can be used to select features based on attribute data. Icon 4 is the select by expression command prompt where your expression will be written. - -![](/fig/Opening_Select_by_Expression.png) - - - -### Select by Expression- Arithmetic operators (integer, float fields) - -• >, <, =, != - -• Note that your command in the select by expression depend on the attribute features on the shape file you want express. - -• For example, imagine that you want to show the State that has more than 10 million **shape-length** in the below map of Nigeria showing its 37 States. - -1. Firstly, select your file from the layer panel, open the select by expression table, click on Fields and Values (don’t forget that these fields and values depends on the characteristics of the file you are opening). -2. Scroll down to shape length and double click on it, you can then see it at the expression layer display. -3. Go back to the search bar layer by click on the operators to select the arithmetic command you would like to use. In this case, we are using > sign because we want to figure out the state that has more than 10 million for instance. -4. After double click on the greater than sign, then input the numeric command that you want to use. In this case we enter 10. -5. Lastly, click on select features. It will automatically select all the states that have more than 10 million in its shape length. You can as well see the number of selected features at the top of the select by expression command prompt layer. Then open the attribute table to see the selected features. - - -![](/fig/Select_by_Expression_greater_a.png) - - -The below are the thelve features selected. - -![](/fig/Select_by_Expression_greater_b.png) - - -See video - - - - - -### Select by Expression- String operators (text fields e.g “Like”) - -• Imagine you want to select a country like Nigeria. - -![](/fig/Select_by_Expression_like.png) - -To select by expression by like, please follow this steps: -1. Select the file you would like to run -2. Click on select by expression -3. Click on Fields and Values -4. Select admin0Name (This means names of the countries according to the attribute table fields names) -5. Click on Operators to select the command you would like to use -6. Select ‘Like’ -7. Click again on the Fields and Values -8. Click on All Unique -9. Select Nigeria i.e. we want to express to select a country like Nigeria -10. Click on select features -11. You call all see the expression command here -12. A country like Nigeria has been selected and you can open the attribute table to see the selected feature(s). - - - -### Select by Expression- Placeholder (e.g %) - -• Imagine you want to select all the countries that ends with **’a’** - -![](/fig/Select_by_Expression_placeholder.png) - -1. Follow the previous steps. -2. You have three input to express here. Click on Fields and Values to select admin0RefName (Name of the countries title as per the attribute table) -3. Go to operators to select Like -4. You can enter manually at the expression layer ‘%a’ (i.e. the countries that ends with a) -5. Click on Select features to see all the countries that ends with **a**. - - -### Select by Expression- Logical operators (AND, OR) - -This selection adds one or two command expression together. For example, you want to select the state that has more than 12 million in shape length AND that has more than 3 million shape area simultaneously from the map of 37 States of Nigeria. Then this command holds: **"Shape Length" > 12 AND "Shape_Area" > 3** . - - -![](/fig/Select_by_Expression_AND.png) - - -You can get it down by a click on Fields and Values, proceed to click on Shape length and input your arithmetic operator > with the figure of your choice via Operators, then add the connector which is **AND** and go back to Fields and Values to input the second command of Shape area and add the arithmetic operator of > with the figure you want. Lastly, click on select features to see the states that have shape length of more than 12 million and at the same time having shape area of more than 3 million. Visit the attribute table to see the selected features. - - -## Save selected features - -How to save selected features as a new file? - -You can save the selected features as a new shape file. -1. Click on Layer properties -2. Click on Export -3. Save only selected features - -![](/fig/Save_selected_features_by_export.png) - -• Right click on the shape file you want to save the selected features from in the Layers panel -• Click on export -• Save selected features as -• A save vector layer will pump up and you can change the Format if you want but in this case we are using GeoPackage format -• Click on file name to properly save it in the folder of your choice on your PC -• Click on save only selected features -• Click on Ok. -• Then, it will automatically appear on your Layer panel as seen below. - -![](/fig/Save_selected_features_by_export_a.png) - - -The video below shows how to export and save selected features. - - - +# Geodata Selection and Queries + +## Geodata queries + +Spatial queries allows you to select features in layers by their spatial relationships (intersect, contain, touch etc.) with features from another layer. In Qgis, this functionality is available via the selection by location and extract by location processing tools. + +### Spatial queries: select by click + +This section demonstrate how to select an area or location by just a click and view its spatial features. Below is a map of Nigeria. Click on the icon number 1 which is the select feature and click on any part of the map that you want to select. See point number 2 which has already shown yellow as the selected area. Open the attribute table through the layer pannel, number 3 and click on number 4 to just view the feature of the selected part by clicking on selected features, then you arrive at number 6 which display only selected features. + +![](/fig/Select_by_click.png) + +See video of select by click + + + + + +### Spatial queries: select by polygon + +This section is similar to selection by click. Only that you will select features by polygon from number 1 and draw the polygon on the area you want to cover or view and then right click. you will see that the polygon area will be selected in yellow color just like number 3. View the attribute table and click on number 6 to show only selected features in the polygon that you have created. You can use icon number 7 to deselect features. + +![](/fig/Select_by_polygon.png) + +See video of select by radius + + + + +### Spatial queries: select by location + +This section can not only be used to show the features but also to get visual idea of the spatial relationship of different areas together. It has several spatial query operations which includes intersect, contain, disjoint, equal, touch, overlap, are within and cross. + + * Example below shows how to select by location by intersect. We want to see the spatial relationship between Nigeria and its neighboring countries in term of intersect by location. + +* Click on icon number 1 and select by location. You will select features from which area or shapefile you want from icon 3 and icon 5 as the shapefile you want to intersect with. Icon 4 shows the various operations that can be down with select by location. Then click on run - icon 6, and and close to see the intersect on display. + +![](/fig/Select_by_location_intersect.png) + +* The below screenshot shows the four countries that intersect Nigeria in yellow color. You can as well check the features of these four countries by opeing attribute table and view selected features. + +![](/fig/Select_by_location_intersect_output.png) + + +See video of select by location with intersect + + + + +Additionally, you can play around all the geometric predictions of the features to be familiar with them. The example below shows selection by location by disjoint. We loaded neighboring countires to be disjointed from Nigerian map and now you can see all the disjointed countries in yellow color. + +![](/fig/Select_by_location_disjoint.png) + +You can see the features of those countries by attribute table and show selected features. + + + +## Non-spatial queries + +Non-spatial queries describe characteristics of the features and this query show a place or feature irrespective of its location i.e. **what** instead of **where**. It is totally independent of geographic location and not relating to, occupying, or having the character of space. Non-spatial queries are crucial for analyzing and understanding the data associated with the spatial features in a GIS project, providing insights and facilitating decision-making based on non-spatial attributes. Non-spatial data is also known as attribute data. + +There are two ways by which you can select and show the features of non-spatial data. Among which are manual selection or just by click and select by expression (arithmetic operators, string operators, logical operator etc.). + + +### Manual selection + +We want to manually select three regions in the below vector layer through the attribute table. Open the attribute table, select any of the place you would like to select, press control bottom on your PC and click on any other features you would like to select. Then, you can click on show selected features and it will be automatically highlighted in yellow color on the Qgis display panel. + + +![](/fig/Manual_select_by_attribute_table.png) + + +See video + + + + + +### Select by Expression + +You can use the “Select by expression” option in the **layer properties** (see icon 1) or through the **Select** menu in the attribute table (see icon 2) to apply an expression to a layer. Sometimes, you can also find the icon of select by expression at (see icon 3) by click on it and choose select features by expression or just by Ctrl plus F3 on your key board. This option can be used to select features based on attribute data. Icon 4 is the select by expression command prompt where your expression will be written. + +![](/fig/Opening_Select_by_Expression.png) + + + +### Select by Expression- Arithmetic operators (integer, float fields) + +• >, <, =, != + +• Note that your command in the select by expression depend on the attribute features on the shape file you want express. + +• For example, imagine that you want to show the State that has more than 10 million **shape-length** in the below map of Nigeria showing its 37 States. + +1. Firstly, select your file from the layer panel, open the select by expression table, click on Fields and Values (don’t forget that these fields and values depends on the characteristics of the file you are opening). +2. Scroll down to shape length and double click on it, you can then see it at the expression layer display. +3. Go back to the search bar layer by click on the operators to select the arithmetic command you would like to use. In this case, we are using > sign because we want to figure out the state that has more than 10 million for instance. +4. After double click on the greater than sign, then input the numeric command that you want to use. In this case we enter 10. +5. Lastly, click on select features. It will automatically select all the states that have more than 10 million in its shape length. You can as well see the number of selected features at the top of the select by expression command prompt layer. Then open the attribute table to see the selected features. + + +![](/fig/Select_by_Expression_greater_a.png) + + +The below are the thelve features selected. + +![](/fig/Select_by_Expression_greater_b.png) + + +See video + + + + + +### Select by Expression- String operators (text fields e.g “Like”) + +• Imagine you want to select a country like Nigeria. + +![](/fig/Select_by_Expression_like.png) + +To select by expression by like, please follow this steps: +1. Select the file you would like to run +2. Click on select by expression +3. Click on Fields and Values +4. Select admin0Name (This means names of the countries according to the attribute table fields names) +5. Click on Operators to select the command you would like to use +6. Select ‘Like’ +7. Click again on the Fields and Values +8. Click on All Unique +9. Select Nigeria i.e. we want to express to select a country like Nigeria +10. Click on select features +11. You call all see the expression command here +12. A country like Nigeria has been selected and you can open the attribute table to see the selected feature(s). + + + +### Select by Expression- Placeholder (e.g %) + +• Imagine you want to select all the countries that ends with **’a’** + +![](/fig/Select_by_Expression_placeholder.png) + +1. Follow the previous steps. +2. You have three input to express here. Click on Fields and Values to select admin0RefName (Name of the countries title as per the attribute table) +3. Go to operators to select Like +4. You can enter manually at the expression layer ‘%a’ (i.e. the countries that ends with a) +5. Click on Select features to see all the countries that ends with **a**. + + +### Select by Expression- Logical operators (AND, OR) + +This selection adds one or two command expression together. For example, you want to select the state that has more than 12 million in shape length AND that has more than 3 million shape area simultaneously from the map of 37 States of Nigeria. Then this command holds: **"Shape Length" > 12 AND "Shape_Area" > 3** . + + +![](/fig/Select_by_Expression_AND.png) + + +You can get it down by a click on Fields and Values, proceed to click on Shape length and input your arithmetic operator > with the figure of your choice via Operators, then add the connector which is **AND** and go back to Fields and Values to input the second command of Shape area and add the arithmetic operator of > with the figure you want. Lastly, click on select features to see the states that have shape length of more than 12 million and at the same time having shape area of more than 3 million. Visit the attribute table to see the selected features. + + +## Save selected features + +How to save selected features as a new file? + +You can save the selected features as a new shape file. +1. Click on Layer properties +2. Click on Export +3. Save only selected features + +![](/fig/Save_selected_features_by_export.png) + +• Right click on the shape file you want to save the selected features from in the Layers panel +• Click on export +• Save selected features as +• A save vector layer will pump up and you can change the Format if you want but in this case we are using GeoPackage format +• Click on file name to properly save it in the folder of your choice on your PC +• Click on save only selected features +• Click on Ok. +• Then, it will automatically appear on your Layer panel as seen below. + +![](/fig/Save_selected_features_by_export_a.png) + + +The video below shows how to export and save selected features. + + + diff --git a/_sources/content/Modul_3/en_qgis_data_queries_ex1.md b/_sources/content/Modul_3/en_qgis_data_queries_ex1.md old mode 100755 new mode 100644 diff --git a/_sources/content/Modul_3/en_qgis_digitalisation.md b/_sources/content/Modul_3/en_qgis_digitalisation.md old mode 100755 new mode 100644 index cfb09e361..c17660e7c --- a/_sources/content/Modul_3/en_qgis_digitalisation.md +++ b/_sources/content/Modul_3/en_qgis_digitalisation.md @@ -1,162 +1,162 @@ -# Digitalisation - -## What is Digitization? - -Digitization is the process of converting geographic (raster) data into digital form (vector data). During this process, spatial data on maps or images are traced as points, polylines or polygons. Digitization is one of the important tasks for a GIS specialist and it has many uses in GIS, including recording and displaying geographic information, generating map layers, and storing data. Digital datasets usually contain data that can be represented as numbers or symbols such as text or graphics. The process can also involve converting analogue images into digital ones. Digitization in GIS can be integrated with many other software applications like CAD (Computer-Aided Design), 3D modelling, etc. [Source](https://www.spatialpost.com/what-is-digitization-in-gis/#0-types-of-digitization-in-gis-what-is-digitization-in-gis) - - -## Uses of Digitizing in QGIS - -• The digital map has become one of the most efficient tools for surveying and analyzing data across industries especially for geologists, geographers, urban planners, etc. - -• It allows managers and staff members to easily access information when needed. - -• Digitization often make it easier for companies to make the edits by importing the digitized data into a PDF or jpg format whenever there are changes that need to be made to the QGIS file. - -• It also gives decision-makers access to maps in their preferred format such as PDF and jpg when needed. - -• Digitization has made it possible to store and process data at a much faster rate. - -• It also provides more flexible data input and improve efficiency of ever-changing spatial information. - -## Digitization toolbars - -Firstly, you need to check if Digitizing Toolbox is activated in your QGIS in order to digitize. If not then you can activate it using following process. - - 1. Click view tab in the menu bar and click toolbar and then check digitizing and advance digitizing tool box. - - ![](/fig/Activate_digitizing_toolbox.png) - - A tool box like this should appear on top of your Qgis - - ![](/fig/Toolbox.png) - - - ## Digital data creation - -* Digital can be created in points, lines, polygons and in shapefiles. - -### Creation of point data - -Click on the following numbers bottons as seen in the picture below. Number **1** will switch to edit mode, number **2** is to create a new entry point, number **3** is to move or copy point and number **4** is to delete entry point. - -![](/fig/New_point_creation_data.png) - -* Create a new point: Use the "Create a new entity" button > left-click on the map > enter the attributes > click OK > a new point is created. - -![](/fig/Naming_of_point_created.png) - -You can name the point as you want and enter any number in the ID and click ok. The new point feature has been created and named which can be easily seen on the map. - - -### Creation of line data - -The method is similar to digitising a point (see above).This can be possible when you have firstly created a new line shapefiles layer. Remember to change the geometry type into lines because we are creating lines data now. - -![](/fig/Creation_of_line_data.png) - - -See video of line data creation - - - - -```{Note} -Try: -``` -Use the "Create new line" button and click several times on the map (left button) to draw the different parts of your line. When this is done, right-click to complete your line and access the Attributes window.> Complete the attributes and click OK - -### Creation of polygon data - -The method is similar to digitising a point or a line (see above). Only the fourth icon changes slightly: this one corresponds to "Create a new polygon" - -![](/fig/polygon_data_creation.png) - -```{Tip} -Caution: -``` - -Please remember to firstly created a new polygon shapefiles layer so thatthe icon to create a polygon can be active and ensure you change the geometry type into polygons because we are creating polygon data now. - - -See video of polygon data creation - - - - -### Creation of new shapefile data - -+ Go to Layer, Create Layer, New Shapefile Layer in the top menu. -+ In the New Shapefile dialog, specify the name and location for the new shapefile. -+ Select the geometry type for the shapefile from the Type dropdown (e.g. Point, line, Polygon). -+ Click the OK button to create the shapefile - -![](/fig/New_shapefile_layer_creation.png) - -* The new shapefile layer - -![](/fig/New_shapefile_layer_naming.png) - -## Create Layer - -Now add some layers for drawing. Click layer in the menu bar, select create layer and select **new spatialite layer** or select **new shapefile layer** if you have to digitize a single feature like some places or roads or buildings. We are choosing new spatialite layer because we want to draw more than one feature in single file and it is easy to transfer this file. - -**Next** - -Click ‘…’ browse button and save your database. Give name to your layer, select type of layer and specify attributes and their type such as text or numerals and click add attributes to the list and click OK. Specify CRS of the layer same as the CRS of Raster data. - - ![](/fig/New_spatialite_layer.png) - - -## Digital data editing - -Select the layer in the Layers panel and click on Toggle Editing under Layer. Alternatively, you can right-click on a layer in the Layers panel and choose Toggle Editing from the context menu. Multiple layers can be edited at a time. The layer currently being edited is the one selected in the Layers panel. - -![](/fig/Toggle_editingbox.png) - - -### Feature attribute selection and editing - -The first group of tools in the Attributes toolbar allows us to select features on the map using the mouse. The following screenshot shows the Select Feature(s) tool. We can select a single feature by clicking on it, or select multiple features by drawing a rectangle. - -![](/fig/Select_Feature(s)_tool.png) - -* How to export selected features - -![](/fig/Export_selected_features.png) - - -## Editing data - Data creation and deletion - -* To create or delete a field in your attribute table you need to be in edit mode, click on the Switch to edit mode button. - -![](/fig/Switch_to_edit_mode_of_attribute_table.png) - - -* To add new data field; click on symbol circle 1 and to delete a data field; click on symbol circle 2 - -![](/fig/add_delete_data_in_attribute_table.png) - - -## Attributes table editing - -The attribute table displays information on features of a selected layer. Features in the table can be searched, selected, moved or even edited. It is also possible to right-click on the layer and choose openTable Open Attribute Table from the drop-down menu, or to click on the openTable Open Attribute Table button in the Attributes toolbar. - -If you prefer shortcuts, **F6** will open the attribute table. **Shift+F6** will open the attribute table filtered to selected features and **Ctrl+F6** will open the attribute table filtered to visible features. - -![](/fig/Opening_attribute_table.png) - -* Right click the layer in the Layers Panel then click the Open Attribute Table menu option. Click the Toggle Editing Mode button. Click the New Field button. Input the field's Name, Type, and Length, then click the OK button. - -![](/fig/New_fieldcolumn_creation_in_attribute_table.png) - -![](/fig/Input_newfield_and_to_save_editing.png) - - -## Digitization Errors in QGIS - -Positional errors are inevitable when data are manually digitized. The most common examples include undershooting and overshooting. When your coordinates do not connect as they should, and overshooting, when the lines go past where they should. Often these errors are not visible unless you zoom in quite a bit on the coordinates. Setting a fuzzy tolerance (snapping tolerance) is used to reduce undershoots and overshoots. The snapping tolerance is the minimum tolerated distance between nodes, lines and/or vertices. - -![](/fig/Digitization_Errors.PNG) - - +# Digitalisation + +## What is Digitization? + +Digitization is the process of converting geographic (raster) data into digital form (vector data). During this process, spatial data on maps or images are traced as points, polylines or polygons. Digitization is one of the important tasks for a GIS specialist and it has many uses in GIS, including recording and displaying geographic information, generating map layers, and storing data. Digital datasets usually contain data that can be represented as numbers or symbols such as text or graphics. The process can also involve converting analogue images into digital ones. Digitization in GIS can be integrated with many other software applications like CAD (Computer-Aided Design), 3D modelling, etc. [Source](https://www.spatialpost.com/what-is-digitization-in-gis/#0-types-of-digitization-in-gis-what-is-digitization-in-gis) + + +## Uses of Digitizing in QGIS + +• The digital map has become one of the most efficient tools for surveying and analyzing data across industries especially for geologists, geographers, urban planners, etc. + +• It allows managers and staff members to easily access information when needed. + +• Digitization often make it easier for companies to make the edits by importing the digitized data into a PDF or jpg format whenever there are changes that need to be made to the QGIS file. + +• It also gives decision-makers access to maps in their preferred format such as PDF and jpg when needed. + +• Digitization has made it possible to store and process data at a much faster rate. + +• It also provides more flexible data input and improve efficiency of ever-changing spatial information. + +## Digitization toolbars + +Firstly, you need to check if Digitizing Toolbox is activated in your QGIS in order to digitize. If not then you can activate it using following process. + + 1. Click view tab in the menu bar and click toolbar and then check digitizing and advance digitizing tool box. + + ![](/fig/Activate_digitizing_toolbox.png) + + A tool box like this should appear on top of your Qgis + + ![](/fig/Toolbox.png) + + + ## Digital data creation + +* Digital can be created in points, lines, polygons and in shapefiles. + +### Creation of point data + +Click on the following numbers bottons as seen in the picture below. Number **1** will switch to edit mode, number **2** is to create a new entry point, number **3** is to move or copy point and number **4** is to delete entry point. + +![](/fig/New_point_creation_data.png) + +* Create a new point: Use the "Create a new entity" button > left-click on the map > enter the attributes > click OK > a new point is created. + +![](/fig/Naming_of_point_created.png) + +You can name the point as you want and enter any number in the ID and click ok. The new point feature has been created and named which can be easily seen on the map. + + +### Creation of line data + +The method is similar to digitising a point (see above).This can be possible when you have firstly created a new line shapefiles layer. Remember to change the geometry type into lines because we are creating lines data now. + +![](/fig/Creation_of_line_data.png) + + +See video of line data creation + + + + +```{Note} +Try: +``` +Use the "Create new line" button and click several times on the map (left button) to draw the different parts of your line. When this is done, right-click to complete your line and access the Attributes window.> Complete the attributes and click OK + +### Creation of polygon data + +The method is similar to digitising a point or a line (see above). Only the fourth icon changes slightly: this one corresponds to "Create a new polygon" + +![](/fig/polygon_data_creation.png) + +```{Tip} +Caution: +``` + +Please remember to firstly created a new polygon shapefiles layer so thatthe icon to create a polygon can be active and ensure you change the geometry type into polygons because we are creating polygon data now. + + +See video of polygon data creation + + + + +### Creation of new shapefile data + ++ Go to Layer, Create Layer, New Shapefile Layer in the top menu. ++ In the New Shapefile dialog, specify the name and location for the new shapefile. ++ Select the geometry type for the shapefile from the Type dropdown (e.g. Point, line, Polygon). ++ Click the OK button to create the shapefile + +![](/fig/New_shapefile_layer_creation.png) + +* The new shapefile layer + +![](/fig/New_shapefile_layer_naming.png) + +## Create Layer + +Now add some layers for drawing. Click layer in the menu bar, select create layer and select **new spatialite layer** or select **new shapefile layer** if you have to digitize a single feature like some places or roads or buildings. We are choosing new spatialite layer because we want to draw more than one feature in single file and it is easy to transfer this file. + +**Next** + +Click ‘…’ browse button and save your database. Give name to your layer, select type of layer and specify attributes and their type such as text or numerals and click add attributes to the list and click OK. Specify CRS of the layer same as the CRS of Raster data. + + ![](/fig/New_spatialite_layer.png) + + +## Digital data editing + +Select the layer in the Layers panel and click on Toggle Editing under Layer. Alternatively, you can right-click on a layer in the Layers panel and choose Toggle Editing from the context menu. Multiple layers can be edited at a time. The layer currently being edited is the one selected in the Layers panel. + +![](/fig/Toggle_editingbox.png) + + +### Feature attribute selection and editing + +The first group of tools in the Attributes toolbar allows us to select features on the map using the mouse. The following screenshot shows the Select Feature(s) tool. We can select a single feature by clicking on it, or select multiple features by drawing a rectangle. + +![](/fig/Select_Feature(s)_tool.png) + +* How to export selected features + +![](/fig/Export_selected_features.png) + + +## Editing data - Data creation and deletion + +* To create or delete a field in your attribute table you need to be in edit mode, click on the Switch to edit mode button. + +![](/fig/Switch_to_edit_mode_of_attribute_table.png) + + +* To add new data field; click on symbol circle 1 and to delete a data field; click on symbol circle 2 + +![](/fig/add_delete_data_in_attribute_table.png) + + +## Attributes table editing + +The attribute table displays information on features of a selected layer. Features in the table can be searched, selected, moved or even edited. It is also possible to right-click on the layer and choose openTable Open Attribute Table from the drop-down menu, or to click on the openTable Open Attribute Table button in the Attributes toolbar. + +If you prefer shortcuts, **F6** will open the attribute table. **Shift+F6** will open the attribute table filtered to selected features and **Ctrl+F6** will open the attribute table filtered to visible features. + +![](/fig/Opening_attribute_table.png) + +* Right click the layer in the Layers Panel then click the Open Attribute Table menu option. Click the Toggle Editing Mode button. Click the New Field button. Input the field's Name, Type, and Length, then click the OK button. + +![](/fig/New_fieldcolumn_creation_in_attribute_table.png) + +![](/fig/Input_newfield_and_to_save_editing.png) + + +## Digitization Errors in QGIS + +Positional errors are inevitable when data are manually digitized. The most common examples include undershooting and overshooting. When your coordinates do not connect as they should, and overshooting, when the lines go past where they should. Often these errors are not visible unless you zoom in quite a bit on the coordinates. Setting a fuzzy tolerance (snapping tolerance) is used to reduce undershoots and overshoots. The snapping tolerance is the minimum tolerated distance between nodes, lines and/or vertices. + +![](/fig/Digitization_Errors.PNG) + + diff --git a/_sources/content/Modul_3/en_qgis_digitalisation_ex1.md b/_sources/content/Modul_3/en_qgis_digitalisation_ex1.md old mode 100755 new mode 100644 diff --git a/_sources/content/Modul_4/en_qgis_map_design_2.md b/_sources/content/Modul_4/en_qgis_map_design_2.md old mode 100755 new mode 100644 index 6f34d2344..070f1ae97 --- a/_sources/content/Modul_4/en_qgis_map_design_2.md +++ b/_sources/content/Modul_4/en_qgis_map_design_2.md @@ -1,298 +1,298 @@ -# Print layout - -The print layout in QGIS is where you design and finalize the map in order to print or export it as a pdf or format of your choice. Here you can add important elements such as the legend, a title, an explanatory text and everything you need to create a comprehensive map. A QGIS project is not a map until all the layout elements (legend, title, scale bar, sources, etc.) are added. - -1. Go to __Project > New Print Layout > enter a name for the new print layout > click OK__ -2. A new window witha blank print playout will appear. - - -```{figure} ../../fig/en_30.30.2_create_print_layout.png ---- -width: 500px -name: Create Print Layout ---- -Create a new Print Layout -``` - -## Understanding the Print Layout Composer - - -```{figure} ../../fig/en_30.30.2_understanding_the_print_layout_composer.png ---- -name: New Print Layout ---- -The interface of the Print Layout Composer -``` - -1. __Layout Settings__ (Add pages, Export Map, manage panels) -2. __Dialer Tools__ (Save, New, Duplicate, Add items from template, Save template) -3. __Navigation bar__ (Zoom, Refresh, Lock/Unlock elements) -4. __Toolbar__ (Zoom, Select, Move in Map, Add new map/image/text/legend/scale/shape/...) -5. __Feature Panel__: displays the elements added to the print layout -6. __Advanced Options__: customize each element of the layer - -First of all, you should always set the size of your map: - -- Right-click on the blank map > Page Properties -- Choose __the size of your document__ (A4, A3, A2) -- Choose the orientation (Landscape or Portrait) - -_A4 and A3 are the most commonly used sizes for maps_ - -## Adding elements to the print layout - -### Adding a new map - -- Add a new map by clicking on the __Add map__ button on the __toolbar on the left__ and __drag a rectangle on the map canvas. -- To move the map on the canvas, simply __select the map__ and __drag__ it with your mouse -- To move within a map select __Move item content__ button on the -- To zoom in on the map, while using the __Move item content__ button, you can __Press CTRL + scroll the mouse wheel__ (gently) or enter the scale manually in the item properties - - -```{figure} ../../fig/en_30.30.2_adding_a_map.png ---- -width: 500px -name: Add a new map ---- -Adding a new map to the Print Layout -``` - -### Adding a title or a text box - -A title should describe the phenomenen represented on the map. - -- To add text (title, explanations), use the __Add Label__ tool and draw a rectangle of the desired size. -- In the __Item Properties__ panel (on the right of your screen) you can __enter your text__ and __change the font, style, colour, etc.__ (_Remember to use the scroll bar in the window to see all the options). - - - -```{figure} ../../fig/en_30.30.2_print_layout_add_text.png ---- -width: 500px -name: Add text to the print layout ---- -Adding text to the print Layout -``` - -### Adding a legend - -Before adding a legend, make sure that: - -- All your layers have an explicit name ("rivers", "primary roads",...) -- You use the final version of your map (no more layers to add, move, rename or modify). You can still modify them later but you will have to redo the legend. - -To add a legend, you can use the __add legend__ button on the __left toolbar__. - - -```{figure} ../../fig/en_30.30.2_print_layout_add_legend.png ---- -width: 500px -name: Add a legend to the print layout ---- -Adding a legend to the print layout -``` - -In the __item properties__ panel, if you keep the __'Auto update'__ option checked, new layers added to your project will automatically be added to the legend but you cannot control them individually (rename if necessary, reorder ot remove items). -Once the option is unchecked, you can update the name of the layers, group them, reorganise them, etc. - -### Adding a scale bar - -Before adding a scale bar, select your main map and check in the __Item Properties__ panel that the __Scale__ fielld has a __round number__ - - -```{figure} ../../fig/en_30.30.2_print_layout_scale.png ---- -width: 500px -name: Round number for scale ---- -Make sure that the scale is at a round number -``` - -To add a scale bar, you can use the __add scale bar__ button on the __left toolbar__. In the __Item Properties__ panel, customize the following functions - -- Which Map __is related to the scale__ -- __Unit system of the bar__ (metres, miles, degrees) -- __Segments on the left__: segments shown before 0 m (always set to 0). -- __Fixed width__: define the width of each segment (e.g. 1 km, 10 km, 50 km, ...). -- __Height__: height (thickness) of the scale bar - -_There are many other options to customize the scale bar (change the font, colours, etc.)._ - -```{figure} ../../fig/en_30.30.2_print_layout_add_scale_bar.png ---- -width: 500px -name: Add scale bar ---- -Add and customize the scale bar -``` - -### Adding an overview map - -Adding an overview map in the corner of your map will help locate the area you are viewing on the main map. - -To create an overview map, you need to follow these steps: - -1. Prepare a __layer with national or subnational borders or important landmarks__ in your project (e.g: Administrative boundaries, Capitals) -2. __Insert the overview map__ into your print layout (in the bottom right corner for example) -3. __Lock the new map__ in the Item properties panel -4. Add a rectangle to display the extent of your main map - - 1. Go to the __properties__ of your Main map > scroll down until you see __"Overviews"__ - 2. Add an Overview by clicking on the __"+" icon__ - 3. __Link the main map__ by selecting it in the __"Map frame"__ option - - -```{figure} ../../fig/en_30.30.2_print_layout_overview_map_preparations.png ---- -width: 200px -name: Overview map preparation ---- -An overview map should show important landmarks and borders -``` - - -```{figure} ../../fig/en_30.30.2_print_layout_add_overview_map.png ---- -width: 500px -name: Add Overview map ---- -Add an overview map and __lock the layer__ -``` - - -```{figure} ../../fig/en_30.30.2_print_layout_add_map_extent_overview_map.png ---- -width: 500px -name: Create an Overview ---- -Add a the extent of the main map to your overview map (the red rectangle on the overview) -``` - -``` {Caution} -This method requires you to be sure that you are not going to modify the oveview map, as once the layers are locked, they will keep the style, and any updates will not affect the overview map -``` - - -# Good practices and common mistakes in mapping - -In order to produce good maps, there are some __basic rules__ to follow and common __semiological mistakes__ to avoid. - -### Map composition - -#### Key elements of a map - -A map is never complete without the following elements: -- Title -- Legend -- Scale -- Orientation -- Source -- Localization (Overview) Map -- Author - -> Image? - ----- - -__The title__ summarizes in a few words the information represented on the map, giving the reader useful contextual information. Titles should include the following information: - -- __The place__, with several degrees of precision according to the scale (Country, Region, Township,...) -- __The subject__ intelligible by all (make sure that the acronyms used are detailed elsewhere on the map) -- __the date__ of the represented data - -_Examples:_ - -- _"Access to health care in Maputo, Mozambique in 2022"_ -- _"Flooding Risk in Ghardaia, Algeria"_ - -__The legend__ is key to interpreting the information represented on the map. Without it, it is impossible to understand the meaning of the different symbols and colours used map. In order to guide the reader, the legend must be: - -- __Comprehensive__: All the data on the map must be presented in the legend. -- __Representative__: the figures on the map and in the legend must match (same size, same color, ...). -- __Organized__: the data in the legend can be grouped by thematic categories (health, environment, background map, ...) or by type of figure (point, line, surface) to facilitate reading. - -```{figure} ../../fig/en_legend_good_practice.png ---- -width: 500px -name: Organized Legend ---- -Example of a well organized legend -``` - -__The scale bar__ is essential to a map since it gives the correspondence between a distance measured on the map and the distance in the real world. There are two types of scales: -- __The numerical Scale__ is expressed as a fraction (1/25000 or 1:25000) which indicates the equivalence between 1 centimeter on the map and the real distance. It is a scale that can be calculated with GIS software, and is often found in topographic maps - - A scale of 1:25000 means that 1 cm represents 25000 cm (or 250 meters) on the gound. - -- __the graphical scale__ is expressed by a line on the map, with an associated distance value. This scale is very useful to have an idea of the distances on the ground. The graphical scale will always be the correct size, even if a different printing format is used, since it will undergo the same transformation as the rest of the map - -```{figure} ../../fig/example_scale_bar.png" ---- -name: scale bar ---- -A scale bar -``` -__Orientation__ - -Even if by default the majority of the maps are oriented to the North, it is still necessary to specify the orientation of the map. It is often indicated by an arrow to the North. Sometimes the orientation of different in order to optimize the representation of the study area on the map. - -### Sources - -Any data represented on a map should have its sources indicated. This provides a record of the data used, but also references the author of the data. The reader will then be able to look for more information on the sources if he wishes. Open access geographic data, such as OpenStreetMap, are more and more numerous and must also be cited on the maps. - -It is possible to give the source of each data under the legend, or to do it in a dedicated space in the map. The level of precision of the sources varies according to the author or the precision of the data. - - -### The 4 semiological errors - -#### 1. Proportional circles vs. solid colors - -```{caution} -DO NOT represent __quantitative__ stock character/data with a __solid color__. -``` - -This is one of the most common mistakes in mapping. While this representation is graphically appealing, it is still false and distracts from the message of the map. - -It is a mistake because: - -- You lose the __order relationship between the data__ (a circle can be twice as big as another one, a color cannot be "twice as dark") -- Countries with a large surface area stand out visually (eg.: Russia in the example below) -- We are trying to represent __data that has nothing to do with the area of a country__, but rather speaks of individual elements ->Add different example - -#### Color gradient vs. distinct color palette - -```{caution} -DO NOT use a __separate__ color palette to represent __ordered entities__ -``` -A representatin that "feels right" because it seems logical that a "low" rate would be represented differently than a "high" rate. - -It is a mistake because: -- By using a differentiating color variable, __you lose the ordinal relationship between entities__. Instead, a __gradient of the same color__ that should be used. -- Different colors are used to differentiate between distinct entities. - -#### Gradient in a single color vs. Gradient between two colors -```{Caution} -DO NOT use a gradient across two colors for an always positive data. -``` -This is a mistake that is often found because our brais are used to prioritizing certain colors, especially green to red, or blue to red. We must remember that __if our values are always positive, we must stay in the same color that will degrade into several shades. ->What about height? - -A gradient between two colors can be used when it is necessary to show a gradation that can go from negative to positive. As for temperatures, it makes sense to distinguish negative values (in shades of blue for example) and positive values (in shades of red). - -It is a mistake because: -- By choosing different colors for values that are linked to each other, our eyes perceive a difference between the elements, and not an order. -- Darker colors stand out more than lighter colors, and can be perceived as more important. -- The map will send a message of divergence, of opposition between certain values, when we are simply trying to represent a hierarchy between values -- In this way, the color itself directly indicates information about the trend (positive/negative or increasing/decreasing). - -#### Limited geometric symbols vs. complex icons and symbols -```{Caution} -DO NOT use __too many symbols__ in a thematic map -``` -Incorportating a multitude of symbols (and data) for a informative map is a common desire. However, too many symbols can __overload the map__ and __reduce the readability__ of the map. Using too many symbols (especially geometric ones) can make it difficult to read and understand the map. -__The eye can easily distinguish 4 to 5 different symbols. Beyond that, it is difficult to dinstinguish the elements. This is a less serious error because it does not convey false information on the map. - -It is a mistake because: -- It complicates the map and limits its impact. -- Sometimes you are forced to represent several symbols, so you must be careful about overlapping points and overloading the map. - +# Print layout + +The print layout in QGIS is where you design and finalize the map in order to print or export it as a pdf or format of your choice. Here you can add important elements such as the legend, a title, an explanatory text and everything you need to create a comprehensive map. A QGIS project is not a map until all the layout elements (legend, title, scale bar, sources, etc.) are added. + +1. Go to __Project > New Print Layout > enter a name for the new print layout > click OK__ +2. A new window witha blank print playout will appear. + + +```{figure} ../../fig/en_30.30.2_create_print_layout.png +--- +width: 500px +name: Create Print Layout +--- +Create a new Print Layout +``` + +## Understanding the Print Layout Composer + + +```{figure} ../../fig/en_30.30.2_understanding_the_print_layout_composer.png +--- +name: New Print Layout +--- +The interface of the Print Layout Composer +``` + +1. __Layout Settings__ (Add pages, Export Map, manage panels) +2. __Dialer Tools__ (Save, New, Duplicate, Add items from template, Save template) +3. __Navigation bar__ (Zoom, Refresh, Lock/Unlock elements) +4. __Toolbar__ (Zoom, Select, Move in Map, Add new map/image/text/legend/scale/shape/...) +5. __Feature Panel__: displays the elements added to the print layout +6. __Advanced Options__: customize each element of the layer + +First of all, you should always set the size of your map: + +- Right-click on the blank map > Page Properties +- Choose __the size of your document__ (A4, A3, A2) +- Choose the orientation (Landscape or Portrait) + +_A4 and A3 are the most commonly used sizes for maps_ + +## Adding elements to the print layout + +### Adding a new map + +- Add a new map by clicking on the __Add map__ button on the __toolbar on the left__ and __drag a rectangle on the map canvas. +- To move the map on the canvas, simply __select the map__ and __drag__ it with your mouse +- To move within a map select __Move item content__ button on the +- To zoom in on the map, while using the __Move item content__ button, you can __Press CTRL + scroll the mouse wheel__ (gently) or enter the scale manually in the item properties + + +```{figure} ../../fig/en_30.30.2_adding_a_map.png +--- +width: 500px +name: Add a new map +--- +Adding a new map to the Print Layout +``` + +### Adding a title or a text box + +A title should describe the phenomenen represented on the map. + +- To add text (title, explanations), use the __Add Label__ tool and draw a rectangle of the desired size. +- In the __Item Properties__ panel (on the right of your screen) you can __enter your text__ and __change the font, style, colour, etc.__ (_Remember to use the scroll bar in the window to see all the options). + + + +```{figure} ../../fig/en_30.30.2_print_layout_add_text.png +--- +width: 500px +name: Add text to the print layout +--- +Adding text to the print Layout +``` + +### Adding a legend + +Before adding a legend, make sure that: + +- All your layers have an explicit name ("rivers", "primary roads",...) +- You use the final version of your map (no more layers to add, move, rename or modify). You can still modify them later but you will have to redo the legend. + +To add a legend, you can use the __add legend__ button on the __left toolbar__. + + +```{figure} ../../fig/en_30.30.2_print_layout_add_legend.png +--- +width: 500px +name: Add a legend to the print layout +--- +Adding a legend to the print layout +``` + +In the __item properties__ panel, if you keep the __'Auto update'__ option checked, new layers added to your project will automatically be added to the legend but you cannot control them individually (rename if necessary, reorder ot remove items). +Once the option is unchecked, you can update the name of the layers, group them, reorganise them, etc. + +### Adding a scale bar + +Before adding a scale bar, select your main map and check in the __Item Properties__ panel that the __Scale__ fielld has a __round number__ + + +```{figure} ../../fig/en_30.30.2_print_layout_scale.png +--- +width: 500px +name: Round number for scale +--- +Make sure that the scale is at a round number +``` + +To add a scale bar, you can use the __add scale bar__ button on the __left toolbar__. In the __Item Properties__ panel, customize the following functions + +- Which Map __is related to the scale__ +- __Unit system of the bar__ (metres, miles, degrees) +- __Segments on the left__: segments shown before 0 m (always set to 0). +- __Fixed width__: define the width of each segment (e.g. 1 km, 10 km, 50 km, ...). +- __Height__: height (thickness) of the scale bar + +_There are many other options to customize the scale bar (change the font, colours, etc.)._ + +```{figure} ../../fig/en_30.30.2_print_layout_add_scale_bar.png +--- +width: 500px +name: Add scale bar +--- +Add and customize the scale bar +``` + +### Adding an overview map + +Adding an overview map in the corner of your map will help locate the area you are viewing on the main map. + +To create an overview map, you need to follow these steps: + +1. Prepare a __layer with national or subnational borders or important landmarks__ in your project (e.g: Administrative boundaries, Capitals) +2. __Insert the overview map__ into your print layout (in the bottom right corner for example) +3. __Lock the new map__ in the Item properties panel +4. Add a rectangle to display the extent of your main map + + 1. Go to the __properties__ of your Main map > scroll down until you see __"Overviews"__ + 2. Add an Overview by clicking on the __"+" icon__ + 3. __Link the main map__ by selecting it in the __"Map frame"__ option + + +```{figure} ../../fig/en_30.30.2_print_layout_overview_map_preparations.png +--- +width: 200px +name: Overview map preparation +--- +An overview map should show important landmarks and borders +``` + + +```{figure} ../../fig/en_30.30.2_print_layout_add_overview_map.png +--- +width: 500px +name: Add Overview map +--- +Add an overview map and __lock the layer__ +``` + + +```{figure} ../../fig/en_30.30.2_print_layout_add_map_extent_overview_map.png +--- +width: 500px +name: Create an Overview +--- +Add a the extent of the main map to your overview map (the red rectangle on the overview) +``` + +``` {Caution} +This method requires you to be sure that you are not going to modify the oveview map, as once the layers are locked, they will keep the style, and any updates will not affect the overview map +``` + + +# Good practices and common mistakes in mapping + +In order to produce good maps, there are some __basic rules__ to follow and common __semiological mistakes__ to avoid. + +### Map composition + +#### Key elements of a map + +A map is never complete without the following elements: +- Title +- Legend +- Scale +- Orientation +- Source +- Localization (Overview) Map +- Author + +> Image? + +---- + +__The title__ summarizes in a few words the information represented on the map, giving the reader useful contextual information. Titles should include the following information: + +- __The place__, with several degrees of precision according to the scale (Country, Region, Township,...) +- __The subject__ intelligible by all (make sure that the acronyms used are detailed elsewhere on the map) +- __the date__ of the represented data + +_Examples:_ + +- _"Access to health care in Maputo, Mozambique in 2022"_ +- _"Flooding Risk in Ghardaia, Algeria"_ + +__The legend__ is key to interpreting the information represented on the map. Without it, it is impossible to understand the meaning of the different symbols and colours used map. In order to guide the reader, the legend must be: + +- __Comprehensive__: All the data on the map must be presented in the legend. +- __Representative__: the figures on the map and in the legend must match (same size, same color, ...). +- __Organized__: the data in the legend can be grouped by thematic categories (health, environment, background map, ...) or by type of figure (point, line, surface) to facilitate reading. + +```{figure} ../../fig/en_legend_good_practice.png +--- +width: 500px +name: Organized Legend +--- +Example of a well organized legend +``` + +__The scale bar__ is essential to a map since it gives the correspondence between a distance measured on the map and the distance in the real world. There are two types of scales: +- __The numerical Scale__ is expressed as a fraction (1/25000 or 1:25000) which indicates the equivalence between 1 centimeter on the map and the real distance. It is a scale that can be calculated with GIS software, and is often found in topographic maps + - A scale of 1:25000 means that 1 cm represents 25000 cm (or 250 meters) on the gound. + +- __the graphical scale__ is expressed by a line on the map, with an associated distance value. This scale is very useful to have an idea of the distances on the ground. The graphical scale will always be the correct size, even if a different printing format is used, since it will undergo the same transformation as the rest of the map + +```{figure} ../../fig/example_scale_bar.png" +--- +name: scale bar +--- +A scale bar +``` +__Orientation__ + +Even if by default the majority of the maps are oriented to the North, it is still necessary to specify the orientation of the map. It is often indicated by an arrow to the North. Sometimes the orientation of different in order to optimize the representation of the study area on the map. + +### Sources + +Any data represented on a map should have its sources indicated. This provides a record of the data used, but also references the author of the data. The reader will then be able to look for more information on the sources if he wishes. Open access geographic data, such as OpenStreetMap, are more and more numerous and must also be cited on the maps. + +It is possible to give the source of each data under the legend, or to do it in a dedicated space in the map. The level of precision of the sources varies according to the author or the precision of the data. + + +### The 4 semiological errors + +#### 1. Proportional circles vs. solid colors + +```{caution} +DO NOT represent __quantitative__ stock character/data with a __solid color__. +``` + +This is one of the most common mistakes in mapping. While this representation is graphically appealing, it is still false and distracts from the message of the map. + +It is a mistake because: + +- You lose the __order relationship between the data__ (a circle can be twice as big as another one, a color cannot be "twice as dark") +- Countries with a large surface area stand out visually (eg.: Russia in the example below) +- We are trying to represent __data that has nothing to do with the area of a country__, but rather speaks of individual elements +>Add different example + +#### Color gradient vs. distinct color palette + +```{caution} +DO NOT use a __separate__ color palette to represent __ordered entities__ +``` +A representatin that "feels right" because it seems logical that a "low" rate would be represented differently than a "high" rate. + +It is a mistake because: +- By using a differentiating color variable, __you lose the ordinal relationship between entities__. Instead, a __gradient of the same color__ that should be used. +- Different colors are used to differentiate between distinct entities. + +#### Gradient in a single color vs. Gradient between two colors +```{Caution} +DO NOT use a gradient across two colors for an always positive data. +``` +This is a mistake that is often found because our brais are used to prioritizing certain colors, especially green to red, or blue to red. We must remember that __if our values are always positive, we must stay in the same color that will degrade into several shades. +>What about height? + +A gradient between two colors can be used when it is necessary to show a gradation that can go from negative to positive. As for temperatures, it makes sense to distinguish negative values (in shades of blue for example) and positive values (in shades of red). + +It is a mistake because: +- By choosing different colors for values that are linked to each other, our eyes perceive a difference between the elements, and not an order. +- Darker colors stand out more than lighter colors, and can be perceived as more important. +- The map will send a message of divergence, of opposition between certain values, when we are simply trying to represent a hierarchy between values +- In this way, the color itself directly indicates information about the trend (positive/negative or increasing/decreasing). + +#### Limited geometric symbols vs. complex icons and symbols +```{Caution} +DO NOT use __too many symbols__ in a thematic map +``` +Incorportating a multitude of symbols (and data) for a informative map is a common desire. However, too many symbols can __overload the map__ and __reduce the readability__ of the map. Using too many symbols (especially geometric ones) can make it difficult to read and understand the map. +__The eye can easily distinguish 4 to 5 different symbols. Beyond that, it is difficult to dinstinguish the elements. This is a less serious error because it does not convey false information on the map. + +It is a mistake because: +- It complicates the map and limits its impact. +- Sometimes you are forced to represent several symbols, so you must be careful about overlapping points and overloading the map. + diff --git a/_sources/content/Modul_4/en_qgis_map_design_I.md b/_sources/content/Modul_4/en_qgis_map_design_I.md old mode 100755 new mode 100644 index c81c6f84d..3a52db979 --- a/_sources/content/Modul_4/en_qgis_map_design_I.md +++ b/_sources/content/Modul_4/en_qgis_map_design_I.md @@ -1,261 +1,261 @@ -# Graphical Variables and Symbology - -The representation of geodata in maps is crucial in order to provide useful location-based insights. This subchapter will cover the basics of good map design, how to create a map design in QGIS as well as common mistakes when designing or interpreting maps. - -## Types of maps ->remove probably - -In general, there are two main types of maps: __topographic maps__ and __thematic maps__. - -__Topographic maps__ are intended to be exhaustive, including elements fundamental to localisation (localities, road networks, terrain, hydrography). They represent the physical location of objects in the real world. The representation of elements in topographic maps is done via conventional signs (e.g.: blue for water, green for forests, yellow for agricultural land). - - -```{figure} ../../fig/en_30.30.2_topographic_map_examples.png ---- -width: 500px -name: Topographic Maps Examples ---- -Examples for topographic maps -``` - - -__Thematic maps__ adress the distribution of phenomena, including sometimes statistically processed information, such as population size, disease cases, flooding risk, etc. The representation of elements on thematic maps is decided according to the rules of graphic semiology. - - - -```{figure} ../../fig/en_30.30.2_thematic_maps_examples.png ---- -width: 500px -name: Thematic maps examples ---- -Examples for thematic maps -``` - -## Graphic Semiology - -__Definition__: A set of rules allowing the use of a __graphic sign systems__ to convey information. Graphic semiology uses visual variables to construct a system of signs, allowing the graphic translation of information. - -Our brain is capable of interpreting graphic relationships between entities in just seconds. Semiology attempts to theorise these interpretation to make the map more effective and relevant. - -```{figure} ../../fig/en_30.30.2_graphic_semiology_signs.png ---- -width: 500px -name: Graphic information ---- -Depending on the type of information you want to display, you can use different graphic signs -``` - - -### Visual variables - -Visual variables are the __graphical means for visually transcribing information__. The visual variables are __shape, size, hue, value, texture, and orientation__. You can vary these variables to appropriately represent the data at your disposal. -It allows for the expression of __relationship of difference, order, association, or quantity__ between each element. - -```{figure} ../../fig/en_visual_variables.png ---- -width: 500px -name: Visual variables ---- -Visual variables according to Bertin (1967) -``` - -```{Caution} -Visual perception varies from one person to the next according to various capabilities: -- Physiological (e.g.: colour blindness) -- Transcultural (green = nature, blue = water) -``` - -> Check Uni HD cartography slides - -# Symbology and styling - -Depending on the use case and type of geodata at your disposal, there are multiple ways to visualise geodata in a comprehensive format: - -- You can change the 'styling' and color of the data -- You can add textlabels -- Vector and raster data is visualized differently in GIS-Software. - - -## Styling Panel - -```{figure} ../../fig/en_30.30.2_styling_panel.png ---- -height: 400px -name: styling panel -align: left ---- -Styling panel in QGIS 3.30.2 -``` - -For each layer in QGIS, there is a styling panel where you can change the symbology, colour and label for the features in that layer. There are two ways to open the layer styling options in QGIS: -1. Right click on the layer you wish to style and select properties -2. Open the layer styling panel by enabling it under "View">"Panels">"Layer Styling" - -~~In the styling panel, you can change the symbology (1) and the labels (2).~~ - - -## Symbology - -- Symbology is used to change the look of features on a map -- It makes maps more visually appealing and easier to read -- Colors and styles represent a specific information -- Symbology is applied to layers, but within the same layer we can assign multiple styles to features -- the symbology of a layer can be __changed based on one of its attributes__ - -## Colours - -Colours are arguably the most striking visual variables as they are easily disinguishable. However, depending on the type of data and the information you wish to convey, there are a few things to consider when choosing a colour scheme for your map. The most important variables for colours are the __hue__ and the __value__ (saturation, transparency). -> look for correct words - -Colours schemes can be __categorial, sequential, or diverging__. If you wish to display different types of buildings or roads, the colour schemes should be categorial. Colour gradients, either sequential or diverging, are used for numerical data or data that can be ordered. For example, for the population sizes of districts a sequential colouring schemes is best to show the relative difference between the values. However, if the data has positive __and__ negative values, a diverging colour gradient should be used. - -``` {figure} ../../fig/en_Colour_Gradients_6.png ---- -name: Colouring schemes -width: 750px ---- -Different types of colouring schemes -``` - -When choosing colour gradients, a clear gradient from lighter to darker colours is the best most of the times as the gradation is easily distinguishable and translates well into black and white. In the figure below, example A) and B) are not ideal as it is difficult to make out the gradation and it does not translate into black and white. You can achieve a clear sequence by grading the __saturation__ of the colour gradient. - -``` {figure} ../../fig/en_colour_gradients_saturation ---- -name: colour gradients saturation example -width: 800px ---- -Examples for different colour gradients translated into black and white. Pay attention to the saturation gradient -``` - -Colour gradients can also encompass several hues - -```{figure} ../../fig/Colour_Gradients_2 ---- -name: colour gradient hues -width: 750px ---- -Single hue gradient on the left; Multiple hue gradient on the right -``` - - -### Colour Blindness - -When choosing the colours, you have to keep in mind that colour gradients (especially diverging Red-Green gradients) can be hard or impossible to distinguish for persons with colour blindness. - -``` {figure} ../../fig/Colour_Blindness ---- -name: colour blindness examples -width: 750px ---- -Different Colour schemes for the Colour Vision Impaired; Source: Jenny, Bernhard, and Nathaniel Vaughn Kelso. (2007). Color Design for the Color Vision Impaired. *Cartographic Perspectives*, no. 58 (September 1, 2007): 61-67. https://doi.org/10.14714/CP58.270 -``` - - -## Symbology for Vector data - -You can use graphical variables to style vector data. As we have already learned, vector data can be either points, lines, or polygons. There are different options to symbolize these different types of vector data. - - -``` {figure} ../../fig/en_symbolization_vector_data ---- -name: symbolization for vector data -width: 750px ---- -Symbolization for vector data; Source: White, T. (2017). Symbolization and the Visual Variables. *The Geographic Information Science & Technology Body of Knowledge (2nd Quarter 2017 Edition), John P. Wilson (ed.). DOI: 10.2222/gistbok/2017.2.3 -``` - ---- - -### Symbology for points - -For point data, you can - -### Symbology for lines - -### Symbology for polygons - -## Symbology for raster data - -As we have already learned, raster data are basically a grid of pixels with different (numerical) values. As such, you can't style the shape, fill or outline of raster data. It is only possible to assign colours to the different values of the pixels. - -### Assigning a colour gradient to raster data - -To assign a colour gradient for raster data, you need to: - -1. Open the styling panel for the raster layer -2. Navigate to the Symbology tab -3. By default, the colour scheme is set to Singleband gray (if you only have one colour band in the data set). Click on __Singleband gray__ and switch to __Singleband pseudocolour__ -4. Click on the arrow to the right of the colour ramp. Here you can choose a premade colour ramp -5. You can modify the colour ramp by clicking on the colour ramp itself - -``` {figure} ../../fig/en_30.30.2_raster_data_colour_gradient.png ---- -name: raster data colour gradient -width 750px ---- -Colour Ramp Selector -``` - -In the colour ramp selector, you can adjust each colour step. On the bottom, you can see a plot for the Hue, __Saturation__, __Lightness__ and __Opacity__. Especially latter three are useful to see how your colour ramp will translate. - -> - -## Labels - -- Labels are text that show a specific attribute of features. -- It is useful to add labels to features to easily identify them. For example, the name of a settlement. -- You can change the font, colour and size of labels -- When you create a map you always add labels to help the final user reading the map - -#### Adding labels to a layer ->This is exercise 2 in the PPP - -1. In the styling panel, click on the "Labels" tab. -2. Select *Single Labels*. -3. "Value" is where you choose the attribute that will be displayed as a label. For example "NAME". This will display the "NAME" attribute for each feature. In the example (figure X), *ADM1_EN* will display the English names of Nigerian states. ->change figure number -4. Let's change the font: make it Arial, bold, dark grey, 8 pt -5. Let's add a white buffer around the label. -7. Click Apply and Ok. - -```{figure} ../../fig/en_30.30.2_setting_up_labels ---- -width: 750px -name: Setting up labels ---- -Setting up labels in QGIS 30.30.2 -``` - -#### Adding 2 different label styles to the same layer ->This is exercise 3 in PPP - -Sometimes you will need to create two different label styles for different features of a single layer. In this example, we will create one label style for the *Country Capital*, and another one for the *State Capitals* - -1. Open the styling panel and click on the Labels tab -2. Select __Rule-based Labeling__ -3. Click on the __Add Rule__ button at the bottom (the "+"-sign) and create the first rule -4. For __Value__, select __"NAME"__ (so that the labels will show the name of each city), then click on the "ε"-button next to the "Filter" bar. - -```{figure} ../../fig/en.30.30.2_adding_rule-based_labels ---- -width: 500px -name: adding rule-based labels ---- -To add rule-based labels, you need to enter an expression -``` - -5. In the central column, expand ==__Fields and Values__== to display a list of all the fields in your layer and double-click on _Class__ to add it to the expression frame on the left. -6. In the right column, click on __All unique__ to list all unique values contained in the Class field -7. Click on the "`=`" operator, then doube-click on the _value 1_ (which represent the Country capital in this case). Click OK. -8. Scroll down to *change the label style*. Make it Arial, bold, black, 12pt and add a white buffer. -9. Repeat steps 4 to 9, but select *Value 2* (State capitals) and make the label black, bold, 10pt, no buffer. -10. Click **Apply**, the OK. - -```{figure} ../../fig/en_30.30.2_adding_rule-based_labels_expression_builder.png ---- -width: 500px -name: rule-based labels expression builder ---- -The expression builder: Expression (left); building blocks, operators, fields and values(center); unique values (right) -``` +# Graphical Variables and Symbology + +The representation of geodata in maps is crucial in order to provide useful location-based insights. This subchapter will cover the basics of good map design, how to create a map design in QGIS as well as common mistakes when designing or interpreting maps. + +## Types of maps +>remove probably + +In general, there are two main types of maps: __topographic maps__ and __thematic maps__. + +__Topographic maps__ are intended to be exhaustive, including elements fundamental to localisation (localities, road networks, terrain, hydrography). They represent the physical location of objects in the real world. The representation of elements in topographic maps is done via conventional signs (e.g.: blue for water, green for forests, yellow for agricultural land). + + +```{figure} ../../fig/en_30.30.2_topographic_map_examples.png +--- +width: 500px +name: Topographic Maps Examples +--- +Examples for topographic maps +``` + + +__Thematic maps__ adress the distribution of phenomena, including sometimes statistically processed information, such as population size, disease cases, flooding risk, etc. The representation of elements on thematic maps is decided according to the rules of graphic semiology. + + + +```{figure} ../../fig/en_30.30.2_thematic_maps_examples.png +--- +width: 500px +name: Thematic maps examples +--- +Examples for thematic maps +``` + +## Graphic Semiology + +__Definition__: A set of rules allowing the use of a __graphic sign systems__ to convey information. Graphic semiology uses visual variables to construct a system of signs, allowing the graphic translation of information. + +Our brain is capable of interpreting graphic relationships between entities in just seconds. Semiology attempts to theorise these interpretation to make the map more effective and relevant. + +```{figure} ../../fig/en_30.30.2_graphic_semiology_signs.png +--- +width: 500px +name: Graphic information +--- +Depending on the type of information you want to display, you can use different graphic signs +``` + + +### Visual variables + +Visual variables are the __graphical means for visually transcribing information__. The visual variables are __shape, size, hue, value, texture, and orientation__. You can vary these variables to appropriately represent the data at your disposal. +It allows for the expression of __relationship of difference, order, association, or quantity__ between each element. + +```{figure} ../../fig/en_visual_variables.png +--- +width: 500px +name: Visual variables +--- +Visual variables according to Bertin (1967) +``` + +```{Caution} +Visual perception varies from one person to the next according to various capabilities: +- Physiological (e.g.: colour blindness) +- Transcultural (green = nature, blue = water) +``` + +> Check Uni HD cartography slides + +# Symbology and styling + +Depending on the use case and type of geodata at your disposal, there are multiple ways to visualise geodata in a comprehensive format: + +- You can change the 'styling' and color of the data +- You can add textlabels +- Vector and raster data is visualized differently in GIS-Software. + + +## Styling Panel + +```{figure} ../../fig/en_30.30.2_styling_panel.png +--- +height: 400px +name: styling panel +align: left +--- +Styling panel in QGIS 3.30.2 +``` + +For each layer in QGIS, there is a styling panel where you can change the symbology, colour and label for the features in that layer. There are two ways to open the layer styling options in QGIS: +1. Right click on the layer you wish to style and select properties +2. Open the layer styling panel by enabling it under "View">"Panels">"Layer Styling" + +~~In the styling panel, you can change the symbology (1) and the labels (2).~~ + + +## Symbology + +- Symbology is used to change the look of features on a map +- It makes maps more visually appealing and easier to read +- Colors and styles represent a specific information +- Symbology is applied to layers, but within the same layer we can assign multiple styles to features +- the symbology of a layer can be __changed based on one of its attributes__ + +## Colours + +Colours are arguably the most striking visual variables as they are easily disinguishable. However, depending on the type of data and the information you wish to convey, there are a few things to consider when choosing a colour scheme for your map. The most important variables for colours are the __hue__ and the __value__ (saturation, transparency). +> look for correct words + +Colours schemes can be __categorial, sequential, or diverging__. If you wish to display different types of buildings or roads, the colour schemes should be categorial. Colour gradients, either sequential or diverging, are used for numerical data or data that can be ordered. For example, for the population sizes of districts a sequential colouring schemes is best to show the relative difference between the values. However, if the data has positive __and__ negative values, a diverging colour gradient should be used. + +``` {figure} ../../fig/en_Colour_Gradients_6.png +--- +name: Colouring schemes +width: 750px +--- +Different types of colouring schemes +``` + +When choosing colour gradients, a clear gradient from lighter to darker colours is the best most of the times as the gradation is easily distinguishable and translates well into black and white. In the figure below, example A) and B) are not ideal as it is difficult to make out the gradation and it does not translate into black and white. You can achieve a clear sequence by grading the __saturation__ of the colour gradient. + +``` {figure} ../../fig/en_colour_gradients_saturation +--- +name: colour gradients saturation example +width: 800px +--- +Examples for different colour gradients translated into black and white. Pay attention to the saturation gradient +``` + +Colour gradients can also encompass several hues + +```{figure} ../../fig/Colour_Gradients_2 +--- +name: colour gradient hues +width: 750px +--- +Single hue gradient on the left; Multiple hue gradient on the right +``` + + +### Colour Blindness + +When choosing the colours, you have to keep in mind that colour gradients (especially diverging Red-Green gradients) can be hard or impossible to distinguish for persons with colour blindness. + +``` {figure} ../../fig/Colour_Blindness +--- +name: colour blindness examples +width: 750px +--- +Different Colour schemes for the Colour Vision Impaired; Source: Jenny, Bernhard, and Nathaniel Vaughn Kelso. (2007). Color Design for the Color Vision Impaired. *Cartographic Perspectives*, no. 58 (September 1, 2007): 61-67. https://doi.org/10.14714/CP58.270 +``` + + +## Symbology for Vector data + +You can use graphical variables to style vector data. As we have already learned, vector data can be either points, lines, or polygons. There are different options to symbolize these different types of vector data. + + +``` {figure} ../../fig/en_symbolization_vector_data +--- +name: symbolization for vector data +width: 750px +--- +Symbolization for vector data; Source: White, T. (2017). Symbolization and the Visual Variables. *The Geographic Information Science & Technology Body of Knowledge (2nd Quarter 2017 Edition), John P. Wilson (ed.). DOI: 10.2222/gistbok/2017.2.3 +``` + +--- + +### Symbology for points + +For point data, you can + +### Symbology for lines + +### Symbology for polygons + +## Symbology for raster data + +As we have already learned, raster data are basically a grid of pixels with different (numerical) values. As such, you can't style the shape, fill or outline of raster data. It is only possible to assign colours to the different values of the pixels. + +### Assigning a colour gradient to raster data + +To assign a colour gradient for raster data, you need to: + +1. Open the styling panel for the raster layer +2. Navigate to the Symbology tab +3. By default, the colour scheme is set to Singleband gray (if you only have one colour band in the data set). Click on __Singleband gray__ and switch to __Singleband pseudocolour__ +4. Click on the arrow to the right of the colour ramp. Here you can choose a premade colour ramp +5. You can modify the colour ramp by clicking on the colour ramp itself + +``` {figure} ../../fig/en_30.30.2_raster_data_colour_gradient.png +--- +name: raster data colour gradient +width 750px +--- +Colour Ramp Selector +``` + +In the colour ramp selector, you can adjust each colour step. On the bottom, you can see a plot for the Hue, __Saturation__, __Lightness__ and __Opacity__. Especially latter three are useful to see how your colour ramp will translate. + +> + +## Labels + +- Labels are text that show a specific attribute of features. +- It is useful to add labels to features to easily identify them. For example, the name of a settlement. +- You can change the font, colour and size of labels +- When you create a map you always add labels to help the final user reading the map + +#### Adding labels to a layer +>This is exercise 2 in the PPP + +1. In the styling panel, click on the "Labels" tab. +2. Select *Single Labels*. +3. "Value" is where you choose the attribute that will be displayed as a label. For example "NAME". This will display the "NAME" attribute for each feature. In the example (figure X), *ADM1_EN* will display the English names of Nigerian states. +>change figure number +4. Let's change the font: make it Arial, bold, dark grey, 8 pt +5. Let's add a white buffer around the label. +7. Click Apply and Ok. + +```{figure} ../../fig/en_30.30.2_setting_up_labels +--- +width: 750px +name: Setting up labels +--- +Setting up labels in QGIS 30.30.2 +``` + +#### Adding 2 different label styles to the same layer +>This is exercise 3 in PPP + +Sometimes you will need to create two different label styles for different features of a single layer. In this example, we will create one label style for the *Country Capital*, and another one for the *State Capitals* + +1. Open the styling panel and click on the Labels tab +2. Select __Rule-based Labeling__ +3. Click on the __Add Rule__ button at the bottom (the "+"-sign) and create the first rule +4. For __Value__, select __"NAME"__ (so that the labels will show the name of each city), then click on the "ε"-button next to the "Filter" bar. + +```{figure} ../../fig/en.30.30.2_adding_rule-based_labels +--- +width: 500px +name: adding rule-based labels +--- +To add rule-based labels, you need to enter an expression +``` + +5. In the central column, expand ==__Fields and Values__== to display a list of all the fields in your layer and double-click on _Class__ to add it to the expression frame on the left. +6. In the right column, click on __All unique__ to list all unique values contained in the Class field +7. Click on the "`=`" operator, then doube-click on the _value 1_ (which represent the Country capital in this case). Click OK. +8. Scroll down to *change the label style*. Make it Arial, bold, black, 12pt and add a white buffer. +9. Repeat steps 4 to 9, but select *Value 2* (State capitals) and make the label black, bold, 10pt, no buffer. +10. Click **Apply**, the OK. + +```{figure} ../../fig/en_30.30.2_adding_rule-based_labels_expression_builder.png +--- +width: 500px +name: rule-based labels expression builder +--- +The expression builder: Expression (left); building blocks, operators, fields and values(center); unique values (right) +``` >Add underligned labels and an example on how to add the street names \ No newline at end of file diff --git a/_sources/content/Modul_4/en_qgis_map_design_I_ex1.md b/_sources/content/Modul_4/en_qgis_map_design_I_ex1.md old mode 100755 new mode 100644 index a763e6bca..b405b0e12 --- a/_sources/content/Modul_4/en_qgis_map_design_I_ex1.md +++ b/_sources/content/Modul_4/en_qgis_map_design_I_ex1.md @@ -1,135 +1,135 @@ -# Map design Exercise 1 - - -### Exercise: Change the symbology of a layer ->This is exercise 7 in the PPP. Participants will need the specific data. - -In this exercise, we will apply the same style to all features in the layer. We have the polygons for 3 administrative levels - -1. Add the "Adm0", "Adm1" and "Adm2" shapefiles to your Session 2 project. -2. Order the layers so they are all visible: Put the Adm2 at the bottom, then the Adm1 then Adm0. At first, this might look weird because Adm0 will cover everything. -3. Change the symbology of the Adm0 layer by opening the stlying panel and navigating to the Symbology tab. By default, the symbology type will be __Single Symbol__. This means that the same colours and contours will be applied to all the features in that layer. - -```{figure} ../../fig/en_30.30.2_changing_layer_style_1.png ---- -name: change layer style 1 -height: 400px -align: left ---- -Order the layers and navigate to the styling panel of the topmost layer -``` -```{figure} ../../fig/en_30.30.2_changing_layer_style_2.png ---- -name: change layer style 2 -width: 300 px -align: right ---- -Change the "Simple Fill" -``` - -4. Click on "__Simple Fill__" to open the style options. -5. Expand the "__Fill Color__" menu and check the __Transparent Fill__ option. This will make only the boundaries visible, so __we will be able to see the layer under this one__. -6. Choose a __Stroke color__, and make the __Stroke width__ 0.66 Millimeters. -7. Click OK - -```{figure} ../../fig/en_30.30.2_changing_layer_style_3.png ---- -name: change layer style 3 ---- -The styling of a vector data consists of the colour and the outline -``` - -8. __Repeat the same process__ for the Adm1 layer, using the same colour as for Adm0 (it will be in "Recent colors) and leave the stroke width at 0.26. -9. Now we can see the boundaries of the country and its states, and behind that we cann see the districs (Adm2). -10. Let's make the districs layer's style consistent with the others. -11. Choose a __Fill Color__ -12. Use the same __Stroke color__ as for Adm0 and Adm1, but make the width 0.1 Millimeters and the Stroke Style a __Dash Line__ -13. Click OK and look at yout map: hopefully it's starting to look nicer! - -```{note} -Remember that __the layer's symbology is saved within your project file, not within your shapefile!__ If you share a shapefile with a colleague, it will have a different style when they add it to their own project. -``` - -### Exercise: Use different styles in a single layer - -We can use symbology to __show the difference between features__ in the same layer. For example, it could be different types of buildings, quantities of Covid cases by district, or types of roads. We can choose a specific attribute of a dataset to assign different colors, outlines, or sizes to features: - -1. From your shapefile folder, __drag te ACLED security incidents shapefile onto your map__ -2. Open the layer __Symbology__ and choose __Categorized__ instead of Single Symbol. -> Categorized symbology is used when you have ***discrete*** variables. -```{figure} ../../figure/en_30.30.2_categorized_layer_symbology_1.png ---- -name:categorized layer symbology 1 -width: 500px ---- -Change the symbology type to "categorized" and choose the Value (variable) you wish to display -``` -3. Now we need to __choose which attributes we want to display through the symbology__. In this case, it could be the number of casualtiees, or the actor who perpetrated the act. Let's categorize the features by **event_type** -4. Click on __"Classify" to list all the unique values contained in the event_type field__ (i.e. all the possible types of security incidents recorded in our table) -5. Now we can __change the style of each single value__ -6. Double click on Explosions -7. At the bottom of the __Symbol selector__ window, choose a symbol to make Explosion points stand our -8. Click on OK, then Apply to preview what the layer will look like -9. Click OK again - -``` {figure} ../../fig/en_30.30.2_categorized_layer_symbology_2 ---- -name: categorized layer symbology 2 -width: 500 px ---- -By double clicking on the __unique values__ in the classified list, you can change the symbol for each value -``` - -Now we have a map of Nigeria where you can locate the areas, that are affected by explosions more than others. On the map below, we also added text labels, which will be explained below. - -``` {figure} ../../fig/en_exercise_map_design_example_Nigeria.png ---- -name: map design example regions affected by explosions in Nigeria -width: 500px ---- -Regions affected by explosions in Nigeria -``` - -### Exercise: Style data based on variable ranges - -If a layer contains numeric values that are continuous, they can be organized in intervals. These intervals can be displayed in graduated colours. In this exercise, we assign colours to Adm1 polygons based on the total population of each State. - -> Don't forget to check that they have access to the data - -1. From __Sharepoint__, download the NGA_Adm1_Pop shapefile and save it in your shapefile folder -2. In QGIS, turn off the Adm1 and Adm2 layer, leaving only Adm0 -3. Drag the shapefile you just downloaded into your map -4. Open its Symbology options and choose "__Graduated__" -5. Select the value you want to use to assign colours, in this case, it will be "__population__" - -``` {figure} ../../fig/en_30.30.2_symbology_variable_ranges_1.png ---- -name: symbology of variable ranges 1 -width: 500px ---- -With variable ranges, select __Graduated__ symbology and choose the attribute with continuous values -``` - -6. Click on __Classify__ to list all valued, divided in classes -7. Choose __how many classes__ you want the data to be divided into ‒ let's say 4 -8. By default, the colour ramp will be red. However, red is not the rivht colour to use for population count, as it is generally used to communicate negative elements, such as food insecurity or cholera cases -9. Click on the arrow next to __Color Ramp__ to choose another combination of colours - let's say a color ramp from white to blue -10. Click Apply to preview the look of your layer, then OK - -```{figure} ../../fig/en_30.30.2_symbology_variable_ranges_2.png ---- -name: symbology of variable ranges 2 -width: 500px ---- -You can categorize the continuous values into classes and assign a colour ramp -``` - -The following map shows the most populated States of Nigeria using a graduated colour categorization. - -```{figure} ../../fig/en_map_design_example_variable_ranges ---- -name: map design example_state population Nigeria -width: 500px ---- -An unfinished map showing the population of Nigerian states +# Map design Exercise 1 + + +### Exercise: Change the symbology of a layer +>This is exercise 7 in the PPP. Participants will need the specific data. + +In this exercise, we will apply the same style to all features in the layer. We have the polygons for 3 administrative levels + +1. Add the "Adm0", "Adm1" and "Adm2" shapefiles to your Session 2 project. +2. Order the layers so they are all visible: Put the Adm2 at the bottom, then the Adm1 then Adm0. At first, this might look weird because Adm0 will cover everything. +3. Change the symbology of the Adm0 layer by opening the stlying panel and navigating to the Symbology tab. By default, the symbology type will be __Single Symbol__. This means that the same colours and contours will be applied to all the features in that layer. + +```{figure} ../../fig/en_30.30.2_changing_layer_style_1.png +--- +name: change layer style 1 +height: 400px +align: left +--- +Order the layers and navigate to the styling panel of the topmost layer +``` +```{figure} ../../fig/en_30.30.2_changing_layer_style_2.png +--- +name: change layer style 2 +width: 300 px +align: right +--- +Change the "Simple Fill" +``` + +4. Click on "__Simple Fill__" to open the style options. +5. Expand the "__Fill Color__" menu and check the __Transparent Fill__ option. This will make only the boundaries visible, so __we will be able to see the layer under this one__. +6. Choose a __Stroke color__, and make the __Stroke width__ 0.66 Millimeters. +7. Click OK + +```{figure} ../../fig/en_30.30.2_changing_layer_style_3.png +--- +name: change layer style 3 +--- +The styling of a vector data consists of the colour and the outline +``` + +8. __Repeat the same process__ for the Adm1 layer, using the same colour as for Adm0 (it will be in "Recent colors) and leave the stroke width at 0.26. +9. Now we can see the boundaries of the country and its states, and behind that we cann see the districs (Adm2). +10. Let's make the districs layer's style consistent with the others. +11. Choose a __Fill Color__ +12. Use the same __Stroke color__ as for Adm0 and Adm1, but make the width 0.1 Millimeters and the Stroke Style a __Dash Line__ +13. Click OK and look at yout map: hopefully it's starting to look nicer! + +```{note} +Remember that __the layer's symbology is saved within your project file, not within your shapefile!__ If you share a shapefile with a colleague, it will have a different style when they add it to their own project. +``` + +### Exercise: Use different styles in a single layer + +We can use symbology to __show the difference between features__ in the same layer. For example, it could be different types of buildings, quantities of Covid cases by district, or types of roads. We can choose a specific attribute of a dataset to assign different colors, outlines, or sizes to features: + +1. From your shapefile folder, __drag te ACLED security incidents shapefile onto your map__ +2. Open the layer __Symbology__ and choose __Categorized__ instead of Single Symbol. +> Categorized symbology is used when you have ***discrete*** variables. +```{figure} ../../figure/en_30.30.2_categorized_layer_symbology_1.png +--- +name:categorized layer symbology 1 +width: 500px +--- +Change the symbology type to "categorized" and choose the Value (variable) you wish to display +``` +3. Now we need to __choose which attributes we want to display through the symbology__. In this case, it could be the number of casualtiees, or the actor who perpetrated the act. Let's categorize the features by **event_type** +4. Click on __"Classify" to list all the unique values contained in the event_type field__ (i.e. all the possible types of security incidents recorded in our table) +5. Now we can __change the style of each single value__ +6. Double click on Explosions +7. At the bottom of the __Symbol selector__ window, choose a symbol to make Explosion points stand our +8. Click on OK, then Apply to preview what the layer will look like +9. Click OK again + +``` {figure} ../../fig/en_30.30.2_categorized_layer_symbology_2 +--- +name: categorized layer symbology 2 +width: 500 px +--- +By double clicking on the __unique values__ in the classified list, you can change the symbol for each value +``` + +Now we have a map of Nigeria where you can locate the areas, that are affected by explosions more than others. On the map below, we also added text labels, which will be explained below. + +``` {figure} ../../fig/en_exercise_map_design_example_Nigeria.png +--- +name: map design example regions affected by explosions in Nigeria +width: 500px +--- +Regions affected by explosions in Nigeria +``` + +### Exercise: Style data based on variable ranges + +If a layer contains numeric values that are continuous, they can be organized in intervals. These intervals can be displayed in graduated colours. In this exercise, we assign colours to Adm1 polygons based on the total population of each State. + +> Don't forget to check that they have access to the data + +1. From __Sharepoint__, download the NGA_Adm1_Pop shapefile and save it in your shapefile folder +2. In QGIS, turn off the Adm1 and Adm2 layer, leaving only Adm0 +3. Drag the shapefile you just downloaded into your map +4. Open its Symbology options and choose "__Graduated__" +5. Select the value you want to use to assign colours, in this case, it will be "__population__" + +``` {figure} ../../fig/en_30.30.2_symbology_variable_ranges_1.png +--- +name: symbology of variable ranges 1 +width: 500px +--- +With variable ranges, select __Graduated__ symbology and choose the attribute with continuous values +``` + +6. Click on __Classify__ to list all valued, divided in classes +7. Choose __how many classes__ you want the data to be divided into ‒ let's say 4 +8. By default, the colour ramp will be red. However, red is not the rivht colour to use for population count, as it is generally used to communicate negative elements, such as food insecurity or cholera cases +9. Click on the arrow next to __Color Ramp__ to choose another combination of colours - let's say a color ramp from white to blue +10. Click Apply to preview the look of your layer, then OK + +```{figure} ../../fig/en_30.30.2_symbology_variable_ranges_2.png +--- +name: symbology of variable ranges 2 +width: 500px +--- +You can categorize the continuous values into classes and assign a colour ramp +``` + +The following map shows the most populated States of Nigeria using a graduated colour categorization. + +```{figure} ../../fig/en_map_design_example_variable_ranges +--- +name: map design example_state population Nigeria +width: 500px +--- +An unfinished map showing the population of Nigerian states ``` \ No newline at end of file diff --git a/_sources/content/Modul_4/en_qgis_map_design_I_ex2.md b/_sources/content/Modul_4/en_qgis_map_design_I_ex2.md old mode 100755 new mode 100644 diff --git a/_sources/content/Modul_5/en_qgis_non_spatial_tools.md b/_sources/content/Modul_5/en_qgis_non_spatial_tools.md old mode 100755 new mode 100644 index e563641bc..17bc3c4a2 --- a/_sources/content/Modul_5/en_qgis_non_spatial_tools.md +++ b/_sources/content/Modul_5/en_qgis_non_spatial_tools.md @@ -1,157 +1,157 @@ -# Non-Spatial Geodataprocessing - -#### Introduction: -Non-spatial geodataprocessing in QGIS refers to the manipulation, subsetting and analysis of attribute data within a GIS environment without directly involving spatial components. It involves operations on the non-geometric attributes of geospatial datasets. This can include data cleaning, transformation, enrichment and analysis based on the associated attribute information, such as population statistics, land use classifications or economic indicators. Non-spatial geodataprocessing can be used to perform calculations, generate statistics and gain insights into the non-spatial aspects of geospatial datasets. QGIS offers a variety of tools for non-spatial geodataprocessing to assist users in managing and analyzing attribute data effectively. - -This segment of Module 5 will start with the introduction of table functions. It will then progress into techniques for querying data, ultimately introducing the important concept of non-spatial joins. - -```{figure} /fig/en_attribute_table_large.png ---- -height: 500px -name: attribute_table_all ---- -Screenshot of an attribute table for QGIS version 3.28.4 -``` -## Table functions - -### Add field -The information of a vector layer can be accessed through its attribute table, and it can be enriched by adding new fields to this table. - -```{Attention} -Depending on the information that will be added to the created attribute field, the correct data type must be selected. -``` -__Possible data types:__ -- __Whole number: Integer (32 and 64 bit)__ -- __Decimal number (real)__ -- __Text (string)__ -- Date and Date and time -- Boolean - -The most common data types are the first three. - -````{dropdown} Add a field for population density; the data type should be Decimal number (real) - -```` - -### Delete field -It is also possible to __delete fields__ from the attribute table. A commonly used practice is to __remove all unused or unnecessary fields__ from a layer before starting to work on it. This __makes the dataset much more organized__. - -````{dropdown} Delete all unused/unnecessary fields from the vector layer - -```` - -### Calculate field -An important practice is to calculate the attribute values for a field, e.g., based on the values of other fields. In QGIS, you can __create a new field or update an existing field__. - -```{Note} -It is necessary to __check if the data type of the field__ (new or updated) __and your calculation match__. For example: if you are calculating a ratio (e.g. density), the field should not be of type integer but rather of type decimal number. -``` -An example could be to calculate the population density based on the already existing fields Population and Area. - -A very important tool for such calculations is the __Field Calculator__. It allows you to __perform calculations based on existing attribute values or defined functions__, for example, to calculate the length or area of a geometry feature. The results of these calculations can be written into a new field or update an existing field. - -````{dropdown} Calculate the population density based on the already existing fields Population and Area - -```` - -### Basic statistics for fields -The tool __Basic statistics for fields__ generates statistics for a specific field of the attribute table of a vector layer. The results are generated as an HTML file and can be accessed by using the __file path link__ in the __Results Viewer__. - -````{dropdown} Calculate statistics for the field population density for all the countries. What are the max./min. values, average, etc.? - -```` - -### Statistics by categories -To calculate statistics of a field depending on a parent class you can use the tool __Statistics by catergories__. The parent class is a combination of values from other fields. - -__Questions that need to be considered when doing these calculations:__ -* For which fields should the statistics be calculated in the attribute table? -* Which field in the attribute table contains which information? - -````{dropdown} How many cities per country have more than 300.000 inhabitants? For each country: how many people live in the largest agglomeration? - -```` - - -## Non-spatial queries -In GIS you can __query__ (filter) data based on specific attribute information. Once the filtering is successful, only the desired features that __correspond__ to the chosen attribute are displayed. Data filtering is a valuable technique for creating __subsets__ of features that can be exported as a new layer. - -### Manual selection -It is possible to manually select specific rows by clicking on the number on the left side of it. This can be easily used to select a small number of rows. If they are selected successfully, they will appear in __yellow__. - -````{dropdown} Manual selection of rows - -```` - -### Select by expression -In this dialog, you can build your expressions to query the data. There are several operators that can be used to filter your vector layer. - -::::{tab-set} - -:::{tab-item} Arithmetic operators -| operator | functionality | -|----------|------------------------| -| __+__ | addition | -| __-__ | substraction | -| __*__ | multiplication | -| __/__ | division | -| __%__ | remainder of division | -::: - -:::{tab-item} Comparison operators -| operator | functionality | -|----------|--------------------------| -| __=__ | equals | -| __!=__ | not equal | -| __<__ | less than | -| __>__ | greater than | -| __<=__ | less than or equal to | -| __>=__ | greater than or equal to | -::: - -:::{tab-item} Logical operators -Operators such as AND, OR can be used to combine different queris or criteria -| operator | functionality | -|----------|------------------------| -| __AND__ | logical AND | -| __OR__ | logical OR | -| __NOT__ | logical NOT | -::: - -:::{tab-item} Special operators -| operator | functionality | -|---------------|------------------------------------------------| -| __LIKE__ | pattern matching | -| __IN__ | checks if a value is in a list of values | -| __IS NULL__ | checks for null values | -| __BETWEEN__ | checks if a value is within a specified range | -| __CASE WHEN__ | conditional expressions | -::: - -:::: - -````{dropdown} Build query for the question: Cities that were not yet cities of one million inhabitants in 1950 but already had more than 10 million inhabitants in 2015. - -```` - -## Non-spatial joins -A lot of analysis can be done with just a single layer. But sometimes the necessary information we need for our analysis is __split across__ different datasets/layers. With QGIS, these layers can be __combined__ to perform the analysis we want. The simplest way to combine layers is via an __attribute join__. This operation looks up information from a second data source based on a __shared attribute value__. This value functions as a common unique identifier, also known as an ID, UID or key. - -In QGIS the tool __Join attributes by field value__ is often used for such operations: - -```{figure} /fig/en_join_attributes_by_field_values.png ---- -height: 500px -name: join_attributes_by_field_value ---- -Screenshot of the Join attributes by field value tool -``` - - -```{Attention} -- An attribute join in QGIS only works properly, when the attributes **match exactly**. -- For example: **"S. Sudan"** will not match with **"South Sudan"**. -- Where possible it’s best to **use attributes that have been designed for joining**, such as **P-codes** or **ID's** which are not susceptible to spelling mistakes. -``` - +# Non-Spatial Geodataprocessing + +#### Introduction: +Non-spatial geodataprocessing in QGIS refers to the manipulation, subsetting and analysis of attribute data within a GIS environment without directly involving spatial components. It involves operations on the non-geometric attributes of geospatial datasets. This can include data cleaning, transformation, enrichment and analysis based on the associated attribute information, such as population statistics, land use classifications or economic indicators. Non-spatial geodataprocessing can be used to perform calculations, generate statistics and gain insights into the non-spatial aspects of geospatial datasets. QGIS offers a variety of tools for non-spatial geodataprocessing to assist users in managing and analyzing attribute data effectively. + +This segment of Module 5 will start with the introduction of table functions. It will then progress into techniques for querying data, ultimately introducing the important concept of non-spatial joins. + +```{figure} /fig/en_attribute_table_large.png +--- +height: 500px +name: attribute_table_all +--- +Screenshot of an attribute table for QGIS version 3.28.4 +``` +## Table functions + +### Add field +The information of a vector layer can be accessed through its attribute table, and it can be enriched by adding new fields to this table. + +```{Attention} +Depending on the information that will be added to the created attribute field, the correct data type must be selected. +``` +__Possible data types:__ +- __Whole number: Integer (32 and 64 bit)__ +- __Decimal number (real)__ +- __Text (string)__ +- Date and Date and time +- Boolean + +The most common data types are the first three. + +````{dropdown} Add a field for population density; the data type should be Decimal number (real) + +```` + +### Delete field +It is also possible to __delete fields__ from the attribute table. A commonly used practice is to __remove all unused or unnecessary fields__ from a layer before starting to work on it. This __makes the dataset much more organized__. + +````{dropdown} Delete all unused/unnecessary fields from the vector layer + +```` + +### Calculate field +An important practice is to calculate the attribute values for a field, e.g., based on the values of other fields. In QGIS, you can __create a new field or update an existing field__. + +```{Note} +It is necessary to __check if the data type of the field__ (new or updated) __and your calculation match__. For example: if you are calculating a ratio (e.g. density), the field should not be of type integer but rather of type decimal number. +``` +An example could be to calculate the population density based on the already existing fields Population and Area. + +A very important tool for such calculations is the __Field Calculator__. It allows you to __perform calculations based on existing attribute values or defined functions__, for example, to calculate the length or area of a geometry feature. The results of these calculations can be written into a new field or update an existing field. + +````{dropdown} Calculate the population density based on the already existing fields Population and Area + +```` + +### Basic statistics for fields +The tool __Basic statistics for fields__ generates statistics for a specific field of the attribute table of a vector layer. The results are generated as an HTML file and can be accessed by using the __file path link__ in the __Results Viewer__. + +````{dropdown} Calculate statistics for the field population density for all the countries. What are the max./min. values, average, etc.? + +```` + +### Statistics by categories +To calculate statistics of a field depending on a parent class you can use the tool __Statistics by catergories__. The parent class is a combination of values from other fields. + +__Questions that need to be considered when doing these calculations:__ +* For which fields should the statistics be calculated in the attribute table? +* Which field in the attribute table contains which information? + +````{dropdown} How many cities per country have more than 300.000 inhabitants? For each country: how many people live in the largest agglomeration? + +```` + + +## Non-spatial queries +In GIS you can __query__ (filter) data based on specific attribute information. Once the filtering is successful, only the desired features that __correspond__ to the chosen attribute are displayed. Data filtering is a valuable technique for creating __subsets__ of features that can be exported as a new layer. + +### Manual selection +It is possible to manually select specific rows by clicking on the number on the left side of it. This can be easily used to select a small number of rows. If they are selected successfully, they will appear in __yellow__. + +````{dropdown} Manual selection of rows + +```` + +### Select by expression +In this dialog, you can build your expressions to query the data. There are several operators that can be used to filter your vector layer. + +::::{tab-set} + +:::{tab-item} Arithmetic operators +| operator | functionality | +|----------|------------------------| +| __+__ | addition | +| __-__ | substraction | +| __*__ | multiplication | +| __/__ | division | +| __%__ | remainder of division | +::: + +:::{tab-item} Comparison operators +| operator | functionality | +|----------|--------------------------| +| __=__ | equals | +| __!=__ | not equal | +| __<__ | less than | +| __>__ | greater than | +| __<=__ | less than or equal to | +| __>=__ | greater than or equal to | +::: + +:::{tab-item} Logical operators +Operators such as AND, OR can be used to combine different queris or criteria +| operator | functionality | +|----------|------------------------| +| __AND__ | logical AND | +| __OR__ | logical OR | +| __NOT__ | logical NOT | +::: + +:::{tab-item} Special operators +| operator | functionality | +|---------------|------------------------------------------------| +| __LIKE__ | pattern matching | +| __IN__ | checks if a value is in a list of values | +| __IS NULL__ | checks for null values | +| __BETWEEN__ | checks if a value is within a specified range | +| __CASE WHEN__ | conditional expressions | +::: + +:::: + +````{dropdown} Build query for the question: Cities that were not yet cities of one million inhabitants in 1950 but already had more than 10 million inhabitants in 2015. + +```` + +## Non-spatial joins +A lot of analysis can be done with just a single layer. But sometimes the necessary information we need for our analysis is __split across__ different datasets/layers. With QGIS, these layers can be __combined__ to perform the analysis we want. The simplest way to combine layers is via an __attribute join__. This operation looks up information from a second data source based on a __shared attribute value__. This value functions as a common unique identifier, also known as an ID, UID or key. + +In QGIS the tool __Join attributes by field value__ is often used for such operations: + +```{figure} /fig/en_join_attributes_by_field_values.png +--- +height: 500px +name: join_attributes_by_field_value +--- +Screenshot of the Join attributes by field value tool +``` + + +```{Attention} +- An attribute join in QGIS only works properly, when the attributes **match exactly**. +- For example: **"S. Sudan"** will not match with **"South Sudan"**. +- Where possible it’s best to **use attributes that have been designed for joining**, such as **P-codes** or **ID's** which are not susceptible to spelling mistakes. +``` + Test Test \ No newline at end of file diff --git a/_sources/content/Modul_5/en_qgis_spatial_tools.md b/_sources/content/Modul_5/en_qgis_spatial_tools.md old mode 100755 new mode 100644 index a03f376ec..b829d108a --- a/_sources/content/Modul_5/en_qgis_spatial_tools.md +++ b/_sources/content/Modul_5/en_qgis_spatial_tools.md @@ -1,29 +1,29 @@ -# Spatial Geodataprocessing -**Competences:** - -## Clip - - - -* Clip, Buffer, Dissolve -* Spatial joins -* Clip by extent & mask - -## Clip vector by extent - -This operation clips any vector file to a given extent. This clip extent will be defined by a bounding box that should be used for the vector output file. It also has to be defined in the target CRS coordinates. There are different methods to define the bounding box of which the following is the most prominent: -* Calculate from a layer: this uses the extent of a layer loaded into the current project - -# DROPDOWN HERE OR TABS -Other option are: -* Calculate from layout map: uses the extent of a layout map item in the active project -* Calculate from bookmark: uses the extent of a saved bookmark -* Use map canvas extent -* Draw on canvas: click and drag a rectangle delimiting the area to take into account -* Enter the coordinates as xmin, xmax, ymin, ymax - -## Clip vector by mask layer - -This operation uses a mask polygon layer to clip any vector layer. - +# Spatial Geodataprocessing +**Competences:** + +## Clip + + + +* Clip, Buffer, Dissolve +* Spatial joins +* Clip by extent & mask + +## Clip vector by extent + +This operation clips any vector file to a given extent. This clip extent will be defined by a bounding box that should be used for the vector output file. It also has to be defined in the target CRS coordinates. There are different methods to define the bounding box of which the following is the most prominent: +* Calculate from a layer: this uses the extent of a layer loaded into the current project + +# DROPDOWN HERE OR TABS +Other option are: +* Calculate from layout map: uses the extent of a layout map item in the active project +* Calculate from bookmark: uses the extent of a saved bookmark +* Use map canvas extent +* Draw on canvas: click and drag a rectangle delimiting the area to take into account +* Enter the coordinates as xmin, xmax, ymin, ymax + +## Clip vector by mask layer + +This operation uses a mask polygon layer to clip any vector layer. + # AUCH FÜR RASTER DATEN?? \ No newline at end of file diff --git a/_sources/content/Trainers_corner/en_how_to_training.md b/_sources/content/Trainers_corner/en_how_to_training.md old mode 100755 new mode 100644 diff --git a/_sources/content/Trainers_corner/en_training_plans.md b/_sources/content/Trainers_corner/en_training_plans.md old mode 100755 new mode 100644 diff --git a/_sources/content/Wiki/en_qgis_attribute_table_wiki.md b/_sources/content/Wiki/en_qgis_attribute_table_wiki.md old mode 100755 new mode 100644 index 873aef32d..dd75489a2 --- a/_sources/content/Wiki/en_qgis_attribute_table_wiki.md +++ b/_sources/content/Wiki/en_qgis_attribute_table_wiki.md @@ -1,36 +1,36 @@ -# Attribute Table in QGIS - -The attribute table, a core component of Geographic Information Systems (GIS), organizes and presents detailed information about features in a selected layer. Each row in the table represents a feature, while columns store specific attributes. This table facilitates searching, selection, sorting, filtering, and editing of features. - -## Buttons of Attribute Tabel - -![](/fig/attribute_table.png) - -|Icon|Description|Purpose|Shortcut| -|---|---|-----|---| -| ![](/fig/mActionToggleEditing.png)|Toggle editing mode | Enable editing functionalities|`Ctrl+E`| -| ![](/fig/mActionMultiEdit.png)| Toggle multi-edit mode| Update multiple fields of many features | | -|![](/fig/mActionSaveEdits.png)| Save edits| Save current modifications | | -|![](/fig/mActionRefresh.png)| Reload the table | | | -|![](/fig/mActionNewTableRow.png)| Add feature | Add new geometryless feature | | -|![](/fig/mActionDeleteSelectedFeatures.png)| Delete selected features| Remove selected features from the layer| | -|![](/fig/mActionEditCut.png)| Cut selected features to clipboard | | `Ctrl+X` | -|![](/fig/mActionCopySelected.png)| Copy selected features to clipboard | | `Ctrl+C` | -|![](/fig/mActionEditPaste.png)| Paste features from clipboard| Insert new features from copied ones |`Ctrl+V`| -|![](/fig/mIconExpressionSelect.png)| Select features using an Expression|| | -|![](/fig/mActionSelectAll.png)| Select All| Select all features in the layer|`Ctrl+A` | -|![](/fig/mActionInvertSelection.png)| Invert selection| Invert the current selection in the layer |`Ctrl+R`| -|![](/fig/mActionDeselectActiveLayer.png)| Deselect all| Deselect all features in the current layer|`Ctrl+Shift+A`| -|![](/fig/mActionFilterMap.png)|Filter/Select features using form | |`Ctrl+F`| -|![](/fig/mActionSelectedToTop.png)| Move selected to top| Move selected rows to the top of the table| | -|![](/fig/mActionPanToSelected.png)| Pan map to the selected rows| | `Ctrl+P`| -|![](/fig/mActionZoomToSelected.png)| Zoom map to the selected rows | |`Ctrl+J` | -|![](/fig/mActionNewAttribute.png)| New field | Add a new field to the data source | `Ctrl+W`| -|![](/fig/mActionDeleteAttribute.png)| Delete field | Remove a field from the data source | | -|![](/fig/mActionEditTable.png)| Organize columns | Show/hide fields from the attribute table|| -|![](/fig/mActionCalculateField.png)| Open field calculator| Update field for many features in a row |`Ctrl+I` | -|![](/fig/mActionConditionalFormatting.png)| Conditional formatting | Enable table formatting| | -|![](/fig/dock.png)| Dock attribute table | Allows to dock/undock the attribute table|| -|![](/fig/mAction.png)| Actions | Lists the actions related to the layer | | - - +# Attribute Table in QGIS + +The attribute table, a core component of Geographic Information Systems (GIS), organizes and presents detailed information about features in a selected layer. Each row in the table represents a feature, while columns store specific attributes. This table facilitates searching, selection, sorting, filtering, and editing of features. + +## Buttons of Attribute Tabel + +![](/fig/attribute_table.png) + +|Icon|Description|Purpose|Shortcut| +|---|---|-----|---| +| ![](/fig/mActionToggleEditing.png)|Toggle editing mode | Enable editing functionalities|`Ctrl+E`| +| ![](/fig/mActionMultiEdit.png)| Toggle multi-edit mode| Update multiple fields of many features | | +|![](/fig/mActionSaveEdits.png)| Save edits| Save current modifications | | +|![](/fig/mActionRefresh.png)| Reload the table | | | +|![](/fig/mActionNewTableRow.png)| Add feature | Add new geometryless feature | | +|![](/fig/mActionDeleteSelectedFeatures.png)| Delete selected features| Remove selected features from the layer| | +|![](/fig/mActionEditCut.png)| Cut selected features to clipboard | | `Ctrl+X` | +|![](/fig/mActionCopySelected.png)| Copy selected features to clipboard | | `Ctrl+C` | +|![](/fig/mActionEditPaste.png)| Paste features from clipboard| Insert new features from copied ones |`Ctrl+V`| +|![](/fig/mIconExpressionSelect.png)| Select features using an Expression|| | +|![](/fig/mActionSelectAll.png)| Select All| Select all features in the layer|`Ctrl+A` | +|![](/fig/mActionInvertSelection.png)| Invert selection| Invert the current selection in the layer |`Ctrl+R`| +|![](/fig/mActionDeselectActiveLayer.png)| Deselect all| Deselect all features in the current layer|`Ctrl+Shift+A`| +|![](/fig/mActionFilterMap.png)|Filter/Select features using form | |`Ctrl+F`| +|![](/fig/mActionSelectedToTop.png)| Move selected to top| Move selected rows to the top of the table| | +|![](/fig/mActionPanToSelected.png)| Pan map to the selected rows| | `Ctrl+P`| +|![](/fig/mActionZoomToSelected.png)| Zoom map to the selected rows | |`Ctrl+J` | +|![](/fig/mActionNewAttribute.png)| New field | Add a new field to the data source | `Ctrl+W`| +|![](/fig/mActionDeleteAttribute.png)| Delete field | Remove a field from the data source | | +|![](/fig/mActionEditTable.png)| Organize columns | Show/hide fields from the attribute table|| +|![](/fig/mActionCalculateField.png)| Open field calculator| Update field for many features in a row |`Ctrl+I` | +|![](/fig/mActionConditionalFormatting.png)| Conditional formatting | Enable table formatting| | +|![](/fig/dock.png)| Dock attribute table | Allows to dock/undock the attribute table|| +|![](/fig/mAction.png)| Actions | Lists the actions related to the layer | | + + diff --git a/_sources/content/Wiki/en_qgis_basemaps_wiki.md b/_sources/content/Wiki/en_qgis_basemaps_wiki.md old mode 100755 new mode 100644 index f43f93d40..cd78f3b97 --- a/_sources/content/Wiki/en_qgis_basemaps_wiki.md +++ b/_sources/content/Wiki/en_qgis_basemaps_wiki.md @@ -1,73 +1,73 @@ -# Basemaps - -Basemaps are background maps. They are often very practical since they are easy to use, allow easy orientation on the map canvas and are diverse. - -```{Note} -No interaction with the basemaps is possible. They are only “pictures” in the background! -``` - -## Standard QGIS Basemaps - -You can always add the standard OpenStreetMap as a basemap to your map canvas. - -There are two ways to add the OpenStreetMap as a basemap. - -1. Find in the `Browser` panel `XYZ Tiles`. Open the dropdown by clikcing on it and seletc OpenStreetMap or another basemap. -2. `Layer` -> `Add Layer` -> `Add XYZ layer...` -> Select the OpenStreetMap or another basemap. - -__Add standard OpenStreetMap as Basemap__ - - -### Add Google and Bing Basemaps - -To add additional basemaps without using plugins you have to configure `XYZ Tiles`. -In the `Browser Panel`, right-click on `XYZ Tiles` -> `New Connection`. - -`Name` = The name of the new basemap. - -`URL` = You can use any of the URLs in the table below. - -Name| Info | URL | -| ----- | --- | --- | -|[OpenTopoMap](https://wiki.openstreetmap.org/wiki/OpenTopoMap)|Opensource topographic map based on OSM and SRTM|https://tile.opentopomap.org/{z}/{x}/{y}.png| -|Google Terrain||https://mt1.google.com/vt/lyrs=t&x={x}&y={y}&z={z}| -|Google Hybrid||https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}| -|Google Satellite||https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}| -|Google Road||https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}| -|Google Roads only||https://mt1.google.com/vt/lyrs=h&x={x}&y={y}&z={z}| -|Google alternative Road map||https://mt1.google.com/vt/lyrs=r&x={x}&y={y}&z={z}| -|Bing Aerial||http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1| - -Advantages of using basemaps from XYZ Tile are: -* Load faster -* Support reprojection -* Support printing -* Supported by online applications like [QField]( https://qfield.org/) - -## Basemaps from [QuickMapServices](https://nextgis.com/blog/quickmapservices/) Plugin - -The QuickMapService Plugin allows to access a wide range of basemaps. - -```{Note} -There can be problems when printing some basemaps from the QuickMapServices! -``` -`Web` -> `QuickMapServices` -> select provider e.g. NASA -> select basemap - -__Functionality of QuickMapServices Plugin__ - - -### Configuration of QuickMapServices -After installing the plugin (Plugin Wiki) you need to configure the plugin to access all basemaps. - -`Web` -> `QuickMapService` -> `Settings` -> Use the horizontal arrows to navigate to `More Services` -> `Get Contributed Pack` - -## Navigation on Basemap with OSM Place Search Plugin - -With the OSM Place Search Plugin, you can find places all around the world based on OpenStreetMap. This means the place search is independent from whatever basemap you are using, it is always based on OpenStreetMap. - -```{Tip} -If the plugin is installed and activated but the panel is not visible check Wiki [Move and arrange toolbars and panels]( https://giscience.github.io/gis-training-resource-center/content/Wiki/en_qgis_interface_wiki.html#show-and-hide-displays-and-toolbars) -``` - -__Functionality of OSM Place Search Plugin__ +# Basemaps + +Basemaps are background maps. They are often very practical since they are easy to use, allow easy orientation on the map canvas and are diverse. + +```{Note} +No interaction with the basemaps is possible. They are only “pictures” in the background! +``` + +## Standard QGIS Basemaps + +You can always add the standard OpenStreetMap as a basemap to your map canvas. + +There are two ways to add the OpenStreetMap as a basemap. + +1. Find in the `Browser` panel `XYZ Tiles`. Open the dropdown by clikcing on it and seletc OpenStreetMap or another basemap. +2. `Layer` -> `Add Layer` -> `Add XYZ layer...` -> Select the OpenStreetMap or another basemap. + +__Add standard OpenStreetMap as Basemap__ + + +### Add Google and Bing Basemaps + +To add additional basemaps without using plugins you have to configure `XYZ Tiles`. +In the `Browser Panel`, right-click on `XYZ Tiles` -> `New Connection`. + +`Name` = The name of the new basemap. + +`URL` = You can use any of the URLs in the table below. + +Name| Info | URL | +| ----- | --- | --- | +|[OpenTopoMap](https://wiki.openstreetmap.org/wiki/OpenTopoMap)|Opensource topographic map based on OSM and SRTM|https://tile.opentopomap.org/{z}/{x}/{y}.png| +|Google Terrain||https://mt1.google.com/vt/lyrs=t&x={x}&y={y}&z={z}| +|Google Hybrid||https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}| +|Google Satellite||https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}| +|Google Road||https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}| +|Google Roads only||https://mt1.google.com/vt/lyrs=h&x={x}&y={y}&z={z}| +|Google alternative Road map||https://mt1.google.com/vt/lyrs=r&x={x}&y={y}&z={z}| +|Bing Aerial||http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1| + +Advantages of using basemaps from XYZ Tile are: +* Load faster +* Support reprojection +* Support printing +* Supported by online applications like [QField]( https://qfield.org/) + +## Basemaps from [QuickMapServices](https://nextgis.com/blog/quickmapservices/) Plugin + +The QuickMapService Plugin allows to access a wide range of basemaps. + +```{Note} +There can be problems when printing some basemaps from the QuickMapServices! +``` +`Web` -> `QuickMapServices` -> select provider e.g. NASA -> select basemap + +__Functionality of QuickMapServices Plugin__ + + +### Configuration of QuickMapServices +After installing the plugin (Plugin Wiki) you need to configure the plugin to access all basemaps. + +`Web` -> `QuickMapService` -> `Settings` -> Use the horizontal arrows to navigate to `More Services` -> `Get Contributed Pack` + +## Navigation on Basemap with OSM Place Search Plugin + +With the OSM Place Search Plugin, you can find places all around the world based on OpenStreetMap. This means the place search is independent from whatever basemap you are using, it is always based on OpenStreetMap. + +```{Tip} +If the plugin is installed and activated but the panel is not visible check Wiki [Move and arrange toolbars and panels]( https://giscience.github.io/gis-training-resource-center/content/Wiki/en_qgis_interface_wiki.html#show-and-hide-displays-and-toolbars) +``` + +__Functionality of OSM Place Search Plugin__ \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_categorized_wiki.md b/_sources/content/Wiki/en_qgis_categorized_wiki.md old mode 100755 new mode 100644 diff --git a/_sources/content/Wiki/en_qgis_data_classification_wiki.md b/_sources/content/Wiki/en_qgis_data_classification_wiki.md old mode 100755 new mode 100644 index 3fcdcfca7..d5a8b79d8 --- a/_sources/content/Wiki/en_qgis_data_classification_wiki.md +++ b/_sources/content/Wiki/en_qgis_data_classification_wiki.md @@ -1,5 +1,5 @@ -# Data Classification -## Subsection to be created: -* Single symbol -* Categorized +# Data Classification +## Subsection to be created: +* Single symbol +* Categorized * Graduated \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_data_sources_wiki.md b/_sources/content/Wiki/en_qgis_data_sources_wiki.md old mode 100755 new mode 100644 diff --git a/_sources/content/Wiki/en_qgis_digitalization_wiki.md b/_sources/content/Wiki/en_qgis_digitalization_wiki.md old mode 100755 new mode 100644 diff --git a/_sources/content/Wiki/en_qgis_geodata_types_wiki.md b/_sources/content/Wiki/en_qgis_geodata_types_wiki.md old mode 100755 new mode 100644 index 2248b44e2..408f217c2 --- a/_sources/content/Wiki/en_qgis_geodata_types_wiki.md +++ b/_sources/content/Wiki/en_qgis_geodata_types_wiki.md @@ -1,39 +1,39 @@ -# Types of Geodata - -* Vector data -* Raster data -* Non-spatial data transfomed in geodata - -# Vector data - -Vector data can have the following data formats: - -| Filename extension| Name | Description | -| ----- | --- | --- | -|.shp | Shapefile |Old but still widely used geodataformat. Can only contain one dataset. The file has to consist of at least three different files (.shp, .shx, .dbf)| -|.gpkg| GeoPackage | Very versatile geodata format and the new standard for geodata. Can contain multiple datafiles (vector, raster and not spatial data like tables)| -|.kml |Keyhole Markup Language | Geodata format for use with [Google Earth]( https://earth.google.com/web/)| -| .gpx| GPS Exchange Format|Geodata format for the exchange of coordinates. For example for waypoints of tracks. | -| .geojson|GeoJSON|Similar to shapefiles, but stores all information in a single file. - -# Raster data - -Raster data can have the following data formats: -| Filename extension| Name | Dscription | -| ----- | --- | --- | -|.tif/.tiff/.geotiff|Tag Image File Format|Common raster and image data format. Does not necessarily have georeference information. If a .tif file has georeferenc information it is referred to as GeoTIFF.| -|.nc|netCDF|Standard data format for scientific data like speed or temperature. Can be be a raster file. Can contain multible datasets| -|.asc|Esri ASCII Grid files|Old simple raster file format, always with georeference informations| - -## Text data - - Filename extension| Name | Dscription | -| ----- | --- | --- | -|.csv|comma-separated values|Very common data format which separates data with commas or other delimiters.| -|.xls|EXCEL|Data format used for EXCEL. EXCEL is a widely used spreadsheet program.| - -## Good practices - -The video below gives a good overview of geodata formats and gives tips on file naming and other good practices. - +# Types of Geodata + +* Vector data +* Raster data +* Non-spatial data transfomed in geodata + +# Vector data + +Vector data can have the following data formats: + +| Filename extension| Name | Description | +| ----- | --- | --- | +|.shp | Shapefile |Old but still widely used geodataformat. Can only contain one dataset. The file has to consist of at least three different files (.shp, .shx, .dbf)| +|.gpkg| GeoPackage | Very versatile geodata format and the new standard for geodata. Can contain multiple datafiles (vector, raster and not spatial data like tables)| +|.kml |Keyhole Markup Language | Geodata format for use with [Google Earth]( https://earth.google.com/web/)| +| .gpx| GPS Exchange Format|Geodata format for the exchange of coordinates. For example for waypoints of tracks. | +| .geojson|GeoJSON|Similar to shapefiles, but stores all information in a single file. + +# Raster data + +Raster data can have the following data formats: +| Filename extension| Name | Dscription | +| ----- | --- | --- | +|.tif/.tiff/.geotiff|Tag Image File Format|Common raster and image data format. Does not necessarily have georeference information. If a .tif file has georeferenc information it is referred to as GeoTIFF.| +|.nc|netCDF|Standard data format for scientific data like speed or temperature. Can be be a raster file. Can contain multible datasets| +|.asc|Esri ASCII Grid files|Old simple raster file format, always with georeference informations| + +## Text data + + Filename extension| Name | Dscription | +| ----- | --- | --- | +|.csv|comma-separated values|Very common data format which separates data with commas or other delimiters.| +|.xls|EXCEL|Data format used for EXCEL. EXCEL is a widely used spreadsheet program.| + +## Good practices + +The video below gives a good overview of geodata formats and gives tips on file naming and other good practices. + \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_geodata_wiki.md b/_sources/content/Wiki/en_qgis_geodata_wiki.md old mode 100755 new mode 100644 index 11cb188d8..5fcc7318d --- a/_sources/content/Wiki/en_qgis_geodata_wiki.md +++ b/_sources/content/Wiki/en_qgis_geodata_wiki.md @@ -1,8 +1,8 @@ -# Geodata -## Subsection to be created: -* Import Geodata -* Layer Concept (practical) -* Basemaps -* Projections (practical) -* Attribute Table +# Geodata +## Subsection to be created: +* Import Geodata +* Layer Concept (practical) +* Basemaps +* Projections (practical) +* Attribute Table * Digitalization \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_geoprocessing_wiki.md b/_sources/content/Wiki/en_qgis_geoprocessing_wiki.md old mode 100755 new mode 100644 index bd8818301..b5bc9f9d2 --- a/_sources/content/Wiki/en_qgis_geoprocessing_wiki.md +++ b/_sources/content/Wiki/en_qgis_geoprocessing_wiki.md @@ -1,6 +1,6 @@ -# Geoprocessing -## Subsection to be created: -* Clip -* Buffer -* Dissolve +# Geoprocessing +## Subsection to be created: +* Clip +* Buffer +* Dissolve * .... \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_graduated_wiki.md b/_sources/content/Wiki/en_qgis_graduated_wiki.md old mode 100755 new mode 100644 diff --git a/_sources/content/Wiki/en_qgis_import_geodata_wiki.md b/_sources/content/Wiki/en_qgis_import_geodata_wiki.md old mode 100755 new mode 100644 index 2d76a43aa..ce54ffb1f --- a/_sources/content/Wiki/en_qgis_import_geodata_wiki.md +++ b/_sources/content/Wiki/en_qgis_import_geodata_wiki.md @@ -1,78 +1,78 @@ -# Geodata Import in QGIS - -## Vector data Import - - - -```{Tip} -When importing a shapefile by drag-and-drop you have to use the file with the ending .shp! -``` -### Open vector layer - -#### Open vector data via Layer Tab - -1. "Layer" Tab -> "Vecctor" -2. Select file -3. Click "Add" - - - - -#### Open vector data via drag-and-drop - - -## Raster data Import - -### Open raster data via Layer Tab - -1. "Layer" Tab -> "Raster" -2. Select file -3. Click "Add" - - - - -### Open raster data via drag-and-drop - - - -### Open NetCDF raster files - -1. Layer -> Add Layer -> Add Raster Layer -> Select your file -> click "add" -2. A window will open and you have to select the exact dataset you want to use. -> Click "add Layers" -3. Click on the ? in the Layers window. The window "Coordination Reference System Selectir" will open. -> Select the correct reference system.-> Click “OK” - - - - - -## Text data import - -```{Tip} -To directly load .csv or EXCEL data into QGIS, the datasets need to have columns containing geometry in the form of latitude (Y-field) and longitude (X-field). -``` - -### Open csv. data in QGIS - - - -### Open .xlsx files in QGIS - -1. Drag and drop the .xlsx file in QGIS. -2. If the file contains multible tables, select the table you want to work with. Click "add Layers" -3. click on the "Processing" tab -> Toolbox -> search for the tool "Creat points layer from table" -4. Select you table as "Input Layer" -5. Select the longitude column for "X field" and the latitude column for "Y field" -6. Click "Run" - -```{Tip} -A other option is always to transform the .xlsx file into a .csv, which is eaysier to open in QGIS. -``` - - - - - - -*QGGIS Version 3.22.15* - +# Geodata Import in QGIS + +## Vector data Import + + + +```{Tip} +When importing a shapefile by drag-and-drop you have to use the file with the ending .shp! +``` +### Open vector layer + +#### Open vector data via Layer Tab + +1. "Layer" Tab -> "Vecctor" +2. Select file +3. Click "Add" + + + + +#### Open vector data via drag-and-drop + + +## Raster data Import + +### Open raster data via Layer Tab + +1. "Layer" Tab -> "Raster" +2. Select file +3. Click "Add" + + + + +### Open raster data via drag-and-drop + + + +### Open NetCDF raster files + +1. Layer -> Add Layer -> Add Raster Layer -> Select your file -> click "add" +2. A window will open and you have to select the exact dataset you want to use. -> Click "add Layers" +3. Click on the ? in the Layers window. The window "Coordination Reference System Selectir" will open. -> Select the correct reference system.-> Click “OK” + + + + + +## Text data import + +```{Tip} +To directly load .csv or EXCEL data into QGIS, the datasets need to have columns containing geometry in the form of latitude (Y-field) and longitude (X-field). +``` + +### Open csv. data in QGIS + + + +### Open .xlsx files in QGIS + +1. Drag and drop the .xlsx file in QGIS. +2. If the file contains multible tables, select the table you want to work with. Click "add Layers" +3. click on the "Processing" tab -> Toolbox -> search for the tool "Creat points layer from table" +4. Select you table as "Input Layer" +5. Select the longitude column for "X field" and the latitude column for "Y field" +6. Click "Run" + +```{Tip} +A other option is always to transform the .xlsx file into a .csv, which is eaysier to open in QGIS. +``` + + + + + + +*QGGIS Version 3.22.15* + diff --git a/_sources/content/Wiki/en_qgis_installation_wiki.md b/_sources/content/Wiki/en_qgis_installation_wiki.md old mode 100755 new mode 100644 index 18e9e12e2..1cae5380c --- a/_sources/content/Wiki/en_qgis_installation_wiki.md +++ b/_sources/content/Wiki/en_qgis_installation_wiki.md @@ -1,17 +1,17 @@ -# QGIS installation -QGIS is open source and therefore freely available to everyone at no cost. You can install QGIS for Windows, Mac and Linux computers. In the course we use QGIS 3.22.15 Białowieża (LTR). Generally, we recommend using the latest Long Term Release, because it is the most stable and contains the fewest bugs. -You can download the latest version here: - -https://www.qgis.org/en/site/forusers/download.html - -For our introduction, the standalone installers from OSGeo4W packages are sufficient for Windows. - -**32 Bit or 64 Bit?** - -For Windows operating systems, there is always a 32-bit version and a 64-bit version of each QGIS version available for download. Which version to install depends on your computer and operating system. -If it is not clear how many bits your operating system has, you can easily find out: - -Left-click on the Windows icon at the bottom left of the screen (alternatively, open the Windows search function). -Type "System" on the keyboard -Click on the entry "System" in the search results. -Under the item "System type" you can read the bit number. +# QGIS installation +QGIS is open source and therefore freely available to everyone at no cost. You can install QGIS for Windows, Mac and Linux computers. In the course we use QGIS 3.22.15 Białowieża (LTR). Generally, we recommend using the latest Long Term Release, because it is the most stable and contains the fewest bugs. +You can download the latest version here: + +https://www.qgis.org/en/site/forusers/download.html + +For our introduction, the standalone installers from OSGeo4W packages are sufficient for Windows. + +**32 Bit or 64 Bit?** + +For Windows operating systems, there is always a 32-bit version and a 64-bit version of each QGIS version available for download. Which version to install depends on your computer and operating system. +If it is not clear how many bits your operating system has, you can easily find out: + +Left-click on the Windows icon at the bottom left of the screen (alternatively, open the Windows search function). +Type "System" on the keyboard +Click on the entry "System" in the search results. +Under the item "System type" you can read the bit number. diff --git a/_sources/content/Wiki/en_qgis_interface_wiki.md b/_sources/content/Wiki/en_qgis_interface_wiki.md old mode 100755 new mode 100644 index 0f73c2a99..b1d90120b --- a/_sources/content/Wiki/en_qgis_interface_wiki.md +++ b/_sources/content/Wiki/en_qgis_interface_wiki.md @@ -1,66 +1,66 @@ -# QGIS Interface - -## Overview of QGIS Interface - - -![](/fig/en_QGIS_GUI.png) - -1. __Layers List / Browser Panel:__ The layers list shows all layers/files that are loaded in the project. You can show/hide layers and set other properties. -2. __Toolbars:__ Toolbars are shortcuts to execute frequently used commands. For example, there are special toolbars for vector and raster files, but also general ones for saving your project, etc. The toolbar contains, among other things, a list of all the commands you can use. The toolbar also contains the toolbox, which is used later in many of the wiki videos. -![](/fig/Geschlossene_Toolbox_01.png) -3. __Map view:__ The map view is the central component of every GIS programme. This is where the geodata are displayed. The map view has a projection which does not always have to correspond to the projection of the layers. -4. __Status bar:__ In the status bar you will find central information about the current map view. Here you can set the projection of the map view and the scale. You can read the coordinates of the mouse pointer and thus quickly find out the coordinates of points on the map. You can rotate your map view, e.g. if you want to create a map facing south. -5. __Side Toolbar__: You may see a side toolbar. This is another way to easily open vector and raster files in QGIS. -6. __Locator bar:__ Here you can search for tools and layers. If you don't know where to find a tool, you can try here. - -__Offical QGIS Documentation: [An Overview of the Interface](https://docs.qgis.org/3.4/de/docs/training_manual/introduction/overview.html)__ - -___ - -## Move & Zoom - -### Move the map view - -![](/fig/qgis_move_symbol.png) -* You can also move with the arrow keys - - - -### Zooming in the map view - -![](/fig/qgis_zoom_symbol.png) -* You can also zoom by scrolling -* Or with Ctrl+ or Ctrl- - - -___ - -## Properties - -### Show properties of objects - -```{Note} -Make sure to select the layer you want identify featuers in -``` - - - -## Toolbars - -### Open Toolbox - -![](/fig/Geschlossene_Toolbox_01.png) -* You can also zoom by scrolling -* Or with Ctrl+ or Ctrl- - - - -### Show and hide displays and toolbars - - - -### Move and arrange toolbars and panels - - - +# QGIS Interface + +## Overview of QGIS Interface + + +![](/fig/en_QGIS_GUI.png) + +1. __Layers List / Browser Panel:__ The layers list shows all layers/files that are loaded in the project. You can show/hide layers and set other properties. +2. __Toolbars:__ Toolbars are shortcuts to execute frequently used commands. For example, there are special toolbars for vector and raster files, but also general ones for saving your project, etc. The toolbar contains, among other things, a list of all the commands you can use. The toolbar also contains the toolbox, which is used later in many of the wiki videos. +![](/fig/Geschlossene_Toolbox_01.png) +3. __Map view:__ The map view is the central component of every GIS programme. This is where the geodata are displayed. The map view has a projection which does not always have to correspond to the projection of the layers. +4. __Status bar:__ In the status bar you will find central information about the current map view. Here you can set the projection of the map view and the scale. You can read the coordinates of the mouse pointer and thus quickly find out the coordinates of points on the map. You can rotate your map view, e.g. if you want to create a map facing south. +5. __Side Toolbar__: You may see a side toolbar. This is another way to easily open vector and raster files in QGIS. +6. __Locator bar:__ Here you can search for tools and layers. If you don't know where to find a tool, you can try here. + +__Offical QGIS Documentation: [An Overview of the Interface](https://docs.qgis.org/3.4/de/docs/training_manual/introduction/overview.html)__ + +___ + +## Move & Zoom + +### Move the map view + +![](/fig/qgis_move_symbol.png) +* You can also move with the arrow keys + + + +### Zooming in the map view + +![](/fig/qgis_zoom_symbol.png) +* You can also zoom by scrolling +* Or with Ctrl+ or Ctrl- + + +___ + +## Properties + +### Show properties of objects + +```{Note} +Make sure to select the layer you want identify featuers in +``` + + + +## Toolbars + +### Open Toolbox + +![](/fig/Geschlossene_Toolbox_01.png) +* You can also zoom by scrolling +* Or with Ctrl+ or Ctrl- + + + +### Show and hide displays and toolbars + + + +### Move and arrange toolbars and panels + + + *QGGIS Version 3.22.15* \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_joins_wiki.md b/_sources/content/Wiki/en_qgis_joins_wiki.md old mode 100755 new mode 100644 index 5031899f0..883f437f0 --- a/_sources/content/Wiki/en_qgis_joins_wiki.md +++ b/_sources/content/Wiki/en_qgis_joins_wiki.md @@ -1,4 +1,4 @@ -# Joins -## Subsection to be created: -* Spatial Joins +# Joins +## Subsection to be created: +* Spatial Joins * Non-Spatial Joins \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_layer_concept_wiki.md b/_sources/content/Wiki/en_qgis_layer_concept_wiki.md old mode 100755 new mode 100644 index f7ab5bbff..e65ef5f8d --- a/_sources/content/Wiki/en_qgis_layer_concept_wiki.md +++ b/_sources/content/Wiki/en_qgis_layer_concept_wiki.md @@ -1,40 +1,40 @@ -# Layer Concept - -Geoinformation systems (GIS) visualize data by stacking layers on top of one another to create maps. Every layer represents one set of information. -This is a vital concept to understand since analysis, as well as visualisation of data, is based on it. - -![Layer Concept](/fig/Layer_concept.png) - -## Hide and show layers - -Set a tick in the Layers panel - - - -## Have you "lost" you layer? - -Right click on your layer -> `Zoom to layer(s)` - - - -## Move layers in the hierarchy - -* Move a layer up and down in the Layer panel by drag-and-drop -* Move a layer to the top: Right click on your layer --> `Move To Top` - - - -## Change Layer Name - -Right click on your layer --> `Rename Layer` - - - -## Layer properties - -Each layer has additional properties that you can view and customise. The most important are - -* __Information:__ An overview of the layer name, file format, storage location, spatial extent, number of features (objects),... -* __Symbology:__ Display mode of the layer, style, transparency,... - - +# Layer Concept + +Geoinformation systems (GIS) visualize data by stacking layers on top of one another to create maps. Every layer represents one set of information. +This is a vital concept to understand since analysis, as well as visualisation of data, is based on it. + +![Layer Concept](/fig/Layer_concept.png) + +## Hide and show layers + +Set a tick in the Layers panel + + + +## Have you "lost" you layer? + +Right click on your layer -> `Zoom to layer(s)` + + + +## Move layers in the hierarchy + +* Move a layer up and down in the Layer panel by drag-and-drop +* Move a layer to the top: Right click on your layer --> `Move To Top` + + + +## Change Layer Name + +Right click on your layer --> `Rename Layer` + + + +## Layer properties + +Each layer has additional properties that you can view and customise. The most important are + +* __Information:__ An overview of the layer name, file format, storage location, spatial extent, number of features (objects),... +* __Symbology:__ Display mode of the layer, style, transparency,... + + diff --git a/_sources/content/Wiki/en_qgis_non_spatial_joins_wiki.md b/_sources/content/Wiki/en_qgis_non_spatial_joins_wiki.md old mode 100755 new mode 100644 diff --git a/_sources/content/Wiki/en_qgis_non_spatial_queries_wiki.md b/_sources/content/Wiki/en_qgis_non_spatial_queries_wiki.md old mode 100755 new mode 100644 index a466eded4..cb7601c14 --- a/_sources/content/Wiki/en_qgis_non_spatial_queries_wiki.md +++ b/_sources/content/Wiki/en_qgis_non_spatial_queries_wiki.md @@ -1 +1 @@ -# Non-Spatial Queries +# Non-Spatial Queries diff --git a/_sources/content/Wiki/en_qgis_plugins_wiki.md b/_sources/content/Wiki/en_qgis_plugins_wiki.md old mode 100755 new mode 100644 index 84dd1eea8..2c2fc158f --- a/_sources/content/Wiki/en_qgis_plugins_wiki.md +++ b/_sources/content/Wiki/en_qgis_plugins_wiki.md @@ -1,35 +1,35 @@ -# Plugins - -There are numerous extensions for QGIS, also called plugins, which provide extended functionalities. Usually, if you have a specific task and QGIS does not have the right functionality, look for a plugin. You google or search in the plugin window. - -## Installation of plugins - -To install a plugin `Plugins` -> `Manage and Install Plugins…` -> `All` -> search for the plugin -> `Install Plugin` - - - - -```{Tip} -If you cannot find a specific extension, check your capitalisation and correct use of spaces. If you still cannot find an extension, you may need to allow the experimental extensions in the options (see below). -``` - -## Manage Plugins - -If you are currently not using installed plugins it might be usefull to deacticate these plugins to avoid crowded toolbars and to amny open panels. - - - - -## Allow experimental extensions - -Experimental extensions are either still under development, or they are obsolete extensions that are no longer further optimised/adapted for the newer versions of QGIS. Nevertheless, the use of experimental extensions can be useful: - -* Specific functions are not supported in any other extension. -* Alternative if there are problems with another extension. -* A tutorial makes use of a specific extension. - - - -```{Tip} -Due to the often missing optimisation for the used QGIS version, experimental extensions may cause more error messages or other problems up to a crash of QGIS. Experimental extensions should therefore only be activated for use and then deactivated again. In addition, make sure that the current working progress is saved to avoid data loss when QGIS crashes. +# Plugins + +There are numerous extensions for QGIS, also called plugins, which provide extended functionalities. Usually, if you have a specific task and QGIS does not have the right functionality, look for a plugin. You google or search in the plugin window. + +## Installation of plugins + +To install a plugin `Plugins` -> `Manage and Install Plugins…` -> `All` -> search for the plugin -> `Install Plugin` + + + + +```{Tip} +If you cannot find a specific extension, check your capitalisation and correct use of spaces. If you still cannot find an extension, you may need to allow the experimental extensions in the options (see below). +``` + +## Manage Plugins + +If you are currently not using installed plugins it might be usefull to deacticate these plugins to avoid crowded toolbars and to amny open panels. + + + + +## Allow experimental extensions + +Experimental extensions are either still under development, or they are obsolete extensions that are no longer further optimised/adapted for the newer versions of QGIS. Nevertheless, the use of experimental extensions can be useful: + +* Specific functions are not supported in any other extension. +* Alternative if there are problems with another extension. +* A tutorial makes use of a specific extension. + + + +```{Tip} +Due to the often missing optimisation for the used QGIS version, experimental extensions may cause more error messages or other problems up to a crash of QGIS. Experimental extensions should therefore only be activated for use and then deactivated again. In addition, make sure that the current working progress is saved to avoid data loss when QGIS crashes. ``` \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_projections_wiki.md b/_sources/content/Wiki/en_qgis_projections_wiki.md old mode 100755 new mode 100644 index c65beb350..ccea76c44 --- a/_sources/content/Wiki/en_qgis_projections_wiki.md +++ b/_sources/content/Wiki/en_qgis_projections_wiki.md @@ -1,52 +1,52 @@ -# Projections - -## How to check EPSG-Code - -```{Note} -Always check that the Coordinate Reference System (CRS)/EPSG code of your data is the same as the CRS/EPSG-code of your project! -``` - -The default CRS/EPSG code of every QGIS project is the World Geodetic System 84 (EPSG: 4326). This CRS is optimized for world maps. So not perfect for most applications, because we mostly use maps for small areas. - -### How to check EPSG-Code/CRS of your QGIS Project and change it -```{Note} -To check and adjust the CRS/ EPSG-Code should be the first thing you should do when starting a new QGIS project -``` - -1. Open a QGIS projeckt -2. In the very down right corner of QGIS you find the butten "EPSG". The number next to it is the EPSG Code currently used in the project. Your more information click on the butten. -![](/fig/EPSG_Code.png) -3. The window "Project Properties" will open. Here you can view all availbel CRS/EPSG-Code an there properties. -4. To change the CRS/EPSG-code, select the one you want to use and click "Apply". - - - -### How to check EPSG-Code/CRS of layer/ data -```{Note} -After loading any spatial data in QGIS, check the CRS/EPSG code of the data to make sure it is the same as the CRS/EPSG code of the project. -``` -1. Reight click on the data layer, click on “Properties” -2. The “Layer Properties” Window of the data layer will open. Click on “Information” -3. Under the headline “Coordinate Reference System (CRS)” you find all information about the CRS. The most important are: - - __Name:__ Here you find the EPSG Code - - __Unites:__ Here yiu can find wather it is possible to use meters with this data layer or latitude and longitude - - -## Changing the projection of a vector layer - -1. "Vector" Tab -> "Data Management Tools" -> "Reproject Layer" -2. Select target CRS/ EPSG-Code -3. Save the new file by clicking on th three dots nest to "Reporjected", specify the file name and the location where you want to save the file -Click "Run" - - - -## Changing the projection of a raster layer - -1. "Raster" Tab -> "Projections" -> "Warp (Reproject)" -2. Select target CRS/ EPSG-Code -3. Select resampling method -4. Save the new file by clicking on th three dots nest to "Reporjected", specify the file name and the location where you want to save the file -Click "Run" - - +# Projections + +## How to check EPSG-Code + +```{Note} +Always check that the Coordinate Reference System (CRS)/EPSG code of your data is the same as the CRS/EPSG-code of your project! +``` + +The default CRS/EPSG code of every QGIS project is the World Geodetic System 84 (EPSG: 4326). This CRS is optimized for world maps. So not perfect for most applications, because we mostly use maps for small areas. + +### How to check EPSG-Code/CRS of your QGIS Project and change it +```{Note} +To check and adjust the CRS/ EPSG-Code should be the first thing you should do when starting a new QGIS project +``` + +1. Open a QGIS projeckt +2. In the very down right corner of QGIS you find the butten "EPSG". The number next to it is the EPSG Code currently used in the project. Your more information click on the butten. +![](/fig/EPSG_Code.png) +3. The window "Project Properties" will open. Here you can view all availbel CRS/EPSG-Code an there properties. +4. To change the CRS/EPSG-code, select the one you want to use and click "Apply". + + + +### How to check EPSG-Code/CRS of layer/ data +```{Note} +After loading any spatial data in QGIS, check the CRS/EPSG code of the data to make sure it is the same as the CRS/EPSG code of the project. +``` +1. Reight click on the data layer, click on “Properties” +2. The “Layer Properties” Window of the data layer will open. Click on “Information” +3. Under the headline “Coordinate Reference System (CRS)” you find all information about the CRS. The most important are: + - __Name:__ Here you find the EPSG Code + - __Unites:__ Here yiu can find wather it is possible to use meters with this data layer or latitude and longitude + + +## Changing the projection of a vector layer + +1. "Vector" Tab -> "Data Management Tools" -> "Reproject Layer" +2. Select target CRS/ EPSG-Code +3. Save the new file by clicking on th three dots nest to "Reporjected", specify the file name and the location where you want to save the file +Click "Run" + + + +## Changing the projection of a raster layer + +1. "Raster" Tab -> "Projections" -> "Warp (Reproject)" +2. Select target CRS/ EPSG-Code +3. Select resampling method +4. Save the new file by clicking on th three dots nest to "Reporjected", specify the file name and the location where you want to save the file +Click "Run" + + diff --git a/_sources/content/Wiki/en_qgis_projects_folder_structure_wiki.md b/_sources/content/Wiki/en_qgis_projects_folder_structure_wiki.md old mode 100755 new mode 100644 index 81406595f..ec54f8065 --- a/_sources/content/Wiki/en_qgis_projects_folder_structure_wiki.md +++ b/_sources/content/Wiki/en_qgis_projects_folder_structure_wiki.md @@ -1,57 +1,57 @@ -# Projects and Folder Structure - -In this wiki article, best practices for the creation and management of QGIS projects and geodata is presented. - -## Step-by-step: Setting up a new QGIS project from scratch - -```{Tip} -It is good practice to use a __standard folder structure__ for QGIS projects in which the project, all used geodata, styling files and documentation is stored -``` - -1. Copy the standard folder structure for QGIS projects to the place you want to store your whole project. You can download the standard folder structure *here*. - -2. Open QGIS and create a new project. Click on `Project` -> `New Project` - -__Create a new QGIS Project__ - - - -3. Safe the new project in the `Project` folder in the standard folder structure and git pus. Click on `Project` -> `Save As` -```{Tip} -Do not use spaces ` ` in the name. instet always use underscors `_` -``` -__Save Project__ - - - - - -4. Check the Coordinate Reference System (CRS)/EPSG code of the project to the CRS/EPSG you want to use. For more information check the wiki article on [Projection](https://giscience.github.io/gis-training-resource-center/content/Wiki/en_qgis_projections_wiki.html#how-to-check-epsg-code-crs-of-your-qgis-project-and-change-it). - -__Check and change CRS/EPSG__ - - - -```{Tip} -The layer data used in the project is not saved in the project file. Instead, the project file only contains the file paths where the layer data were located at the time the project was last saved on the PC. If the location of this layer data is subsequently changed, the error message "handle unavailable layers" will appear when the project is opened again. -Good data organisation with a fixed and well thought-out folder structure prevents such problems. -``` - -## Open existing QGIS Projects - -Open QGIS -> `Project` -> `Open` -> Select your project - -__Open QGIS Project__ - - - -## Standard Folder Structure - -The standard folder structure has two principal advantages: -1. By sharing the whole project folder, we can be certain that the project will run without problems on a different computer. -2. The folder structure supports the proper organization of geodata and supports the stable function of a QGIS project. - -The folder structure template can be downloaded [__here__](https://github.com/GIScience/gis-training-resource-center/blob/main/fig/GIS_Project_folder_template.zip). - -![](/fig/Standard_project_folder_structure.drawio.svg) - +# Projects and Folder Structure + +In this wiki article, best practices for the creation and management of QGIS projects and geodata is presented. + +## Step-by-step: Setting up a new QGIS project from scratch + +```{Tip} +It is good practice to use a __standard folder structure__ for QGIS projects in which the project, all used geodata, styling files and documentation is stored +``` + +1. Copy the standard folder structure for QGIS projects to the place you want to store your whole project. You can download the standard folder structure *here*. + +2. Open QGIS and create a new project. Click on `Project` -> `New Project` + +__Create a new QGIS Project__ + + + +3. Safe the new project in the `Project` folder in the standard folder structure and git pus. Click on `Project` -> `Save As` +```{Tip} +Do not use spaces ` ` in the name. instet always use underscors `_` +``` +__Save Project__ + + + + + +4. Check the Coordinate Reference System (CRS)/EPSG code of the project to the CRS/EPSG you want to use. For more information check the wiki article on [Projection](https://giscience.github.io/gis-training-resource-center/content/Wiki/en_qgis_projections_wiki.html#how-to-check-epsg-code-crs-of-your-qgis-project-and-change-it). + +__Check and change CRS/EPSG__ + + + +```{Tip} +The layer data used in the project is not saved in the project file. Instead, the project file only contains the file paths where the layer data were located at the time the project was last saved on the PC. If the location of this layer data is subsequently changed, the error message "handle unavailable layers" will appear when the project is opened again. +Good data organisation with a fixed and well thought-out folder structure prevents such problems. +``` + +## Open existing QGIS Projects + +Open QGIS -> `Project` -> `Open` -> Select your project + +__Open QGIS Project__ + + + +## Standard Folder Structure + +The standard folder structure has two principal advantages: +1. By sharing the whole project folder, we can be certain that the project will run without problems on a different computer. +2. The folder structure supports the proper organization of geodata and supports the stable function of a QGIS project. + +The folder structure template can be downloaded [__here__](https://github.com/GIScience/gis-training-resource-center/blob/main/fig/GIS_Project_folder_template.zip). + +![](/fig/Standard_project_folder_structure.drawio.svg) + diff --git a/_sources/content/Wiki/en_qgis_qgis_basics_wiki.md b/_sources/content/Wiki/en_qgis_qgis_basics_wiki.md old mode 100755 new mode 100644 index a82e891a7..c819ff849 --- a/_sources/content/Wiki/en_qgis_qgis_basics_wiki.md +++ b/_sources/content/Wiki/en_qgis_qgis_basics_wiki.md @@ -1,8 +1,8 @@ -# QGIS Basics -## Subsection to be created: -* Installation of QGIS -* QGIS Interface -* Basemaps -* Projections (practical) -* Plugins +# QGIS Basics +## Subsection to be created: +* Installation of QGIS +* QGIS Interface +* Basemaps +* Projections (practical) +* Plugins * Data sources \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_queries_wiki.md b/_sources/content/Wiki/en_qgis_queries_wiki.md old mode 100755 new mode 100644 index 3321fe33f..6f0c578bf --- a/_sources/content/Wiki/en_qgis_queries_wiki.md +++ b/_sources/content/Wiki/en_qgis_queries_wiki.md @@ -1,4 +1,4 @@ -# Spatial and Non-spatial queries -## Subsection to be created: -* Spatial Queries +# Spatial and Non-spatial queries +## Subsection to be created: +* Spatial Queries * Non-spatial Queries \ No newline at end of file diff --git a/_sources/content/Wiki/en_qgis_single_symbol_wiki.md b/_sources/content/Wiki/en_qgis_single_symbol_wiki.md old mode 100755 new mode 100644 index 8e8071225..d10e9082a --- a/_sources/content/Wiki/en_qgis_single_symbol_wiki.md +++ b/_sources/content/Wiki/en_qgis_single_symbol_wiki.md @@ -1 +1 @@ -# Single Symbol +# Single Symbol diff --git a/_sources/content/Wiki/en_qgis_spatial_joins_wiki.md b/_sources/content/Wiki/en_qgis_spatial_joins_wiki.md old mode 100755 new mode 100644 diff --git a/_sources/content/Wiki/en_qgis_spatial_queries_wiki.md b/_sources/content/Wiki/en_qgis_spatial_queries_wiki.md old mode 100755 new mode 100644 diff --git a/_sources/content/Wiki/en_qgis_table_functions_wiki.md b/_sources/content/Wiki/en_qgis_table_functions_wiki.md old mode 100755 new mode 100644 index 187cad274..209be7ea2 --- a/_sources/content/Wiki/en_qgis_table_functions_wiki.md +++ b/_sources/content/Wiki/en_qgis_table_functions_wiki.md @@ -1,2 +1,2 @@ -# Table function -## Subsection to be created: +# Table function +## Subsection to be created: diff --git a/_sources/content/intro.md b/_sources/content/intro.md old mode 100755 new mode 100644 index 048076e84..77485cd20 --- a/_sources/content/intro.md +++ b/_sources/content/intro.md @@ -1,43 +1,43 @@ - -![Logos](../fig/TRC_RC_Logos.svg) -# Welcome to the GIS Learning Hub for Humanitarian Empowerment - -![GIS Learning Hub](link_to_image) - -🌍 **Explore, Learn, and Empower through Geographic Information Systems (GIS) with QGIS** - -Welcome to the **GIS Learning Hub for Humanitarian Empowerment**! This repository is your gateway to a wealth of knowledge and practical exercises that will enable you to harness the power of Geographic Information Systems (GIS) using the renowned QGIS software. Whether you're an aspiring GIS enthusiast, a seasoned humanitarian worker, or simply curious about spatial data, this repository is designed to provide you with an immersive and hands-on learning experience. - -## What's Inside - -📚 Dive into a curated collection of **markdown files** that serve as comprehensive guides, tutorials, and reference materials. These documents are meticulously crafted to cater to learners at all levels of expertise, from beginners to advanced users. - -🎥 Immerse yourself in the world of **rich media**, including interactive maps, visualizations, and multimedia presentations. These embedded resources will enhance your understanding and make learning a dynamic and engaging process. - -## How to Use - -🚀 To get started, simply navigate through the repository's directories and access the markdown files that pique your interest. Each file is a standalone module focusing on a specific GIS concept, technique, or application. - -💡 **Tip:** If you're new to GIS or QGIS, we recommend beginning with the foundational materials and gradually progressing to more advanced topics. - -## Learning Objectives - -🔍 Our primary aim is to empower you with GIS skills that are tailored for humanitarian purposes. By the end of your journey through this repository, you will be able to: - -- 🗺️ **Understand** the fundamental principles of Geographic Information Systems. -- 📍 **Navigate** the QGIS software confidently and efficiently. -- 🌐 **Analyze** spatial data to extract meaningful insights. -- 📊 **Visualize** data through compelling maps and graphics. -- 🤝 **Contribute** to humanitarian efforts by applying GIS knowledge to real-world scenarios. - -## Join the Community - -🤝 Learning is most enjoyable when shared. Join our vibrant community of GIS enthusiasts, learners, and experts by participating in discussions, asking questions, and sharing your insights. Together, we can leverage the power of GIS to make a positive impact on humanitarian causes around the world. - -**Let's embark on this GIS journey together and create a more informed, empowered, and connected world.** 🌎 - -Happy Mapping! - -[![Join the Community](link_to_community)](link_to_community) - -*Note: Replace "link_to_image", "link_to_community", and other placeholders with actual URLs or references.* + +![Logos](../fig/TRC_RC_Logos.svg) +# Welcome to the GIS Learning Hub for Humanitarian Empowerment + +![GIS Learning Hub](link_to_image) + +🌍 **Explore, Learn, and Empower through Geographic Information Systems (GIS) with QGIS** + +Welcome to the **GIS Learning Hub for Humanitarian Empowerment**! This repository is your gateway to a wealth of knowledge and practical exercises that will enable you to harness the power of Geographic Information Systems (GIS) using the renowned QGIS software. Whether you're an aspiring GIS enthusiast, a seasoned humanitarian worker, or simply curious about spatial data, this repository is designed to provide you with an immersive and hands-on learning experience. + +## What's Inside + +📚 Dive into a curated collection of **markdown files** that serve as comprehensive guides, tutorials, and reference materials. These documents are meticulously crafted to cater to learners at all levels of expertise, from beginners to advanced users. + +🎥 Immerse yourself in the world of **rich media**, including interactive maps, visualizations, and multimedia presentations. These embedded resources will enhance your understanding and make learning a dynamic and engaging process. + +## How to Use + +🚀 To get started, simply navigate through the repository's directories and access the markdown files that pique your interest. Each file is a standalone module focusing on a specific GIS concept, technique, or application. + +💡 **Tip:** If you're new to GIS or QGIS, we recommend beginning with the foundational materials and gradually progressing to more advanced topics. + +## Learning Objectives + +🔍 Our primary aim is to empower you with GIS skills that are tailored for humanitarian purposes. By the end of your journey through this repository, you will be able to: + +- 🗺️ **Understand** the fundamental principles of Geographic Information Systems. +- 📍 **Navigate** the QGIS software confidently and efficiently. +- 🌐 **Analyze** spatial data to extract meaningful insights. +- 📊 **Visualize** data through compelling maps and graphics. +- 🤝 **Contribute** to humanitarian efforts by applying GIS knowledge to real-world scenarios. + +## Join the Community + +🤝 Learning is most enjoyable when shared. Join our vibrant community of GIS enthusiasts, learners, and experts by participating in discussions, asking questions, and sharing your insights. Together, we can leverage the power of GIS to make a positive impact on humanitarian causes around the world. + +**Let's embark on this GIS journey together and create a more informed, empowered, and connected world.** 🌎 + +Happy Mapping! + +[![Join the Community](link_to_community)](link_to_community) + +*Note: Replace "link_to_image", "link_to_community", and other placeholders with actual URLs or references.* diff --git a/_sphinx_design_static/design-style.4045f2051d55cab465a707391d5b2007.min.css b/_sphinx_design_static/design-style.4045f2051d55cab465a707391d5b2007.min.css old mode 100755 new mode 100644 index 57bec30a5..3225661c2 --- a/_sphinx_design_static/design-style.4045f2051d55cab465a707391d5b2007.min.css +++ b/_sphinx_design_static/design-style.4045f2051d55cab465a707391d5b2007.min.css @@ -1 +1 @@ -.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative}details.sd-dropdown .sd-summary-title{font-weight:700;padding-right:3em !important;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary{list-style:none;padding:1em}details.sd-dropdown summary .sd-octicon.no-title{vertical-align:middle}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown summary::-webkit-details-marker{display:none}details.sd-dropdown summary:focus{outline:none}details.sd-dropdown .sd-summary-icon{margin-right:.5em}details.sd-dropdown .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary:hover .sd-summary-up svg,details.sd-dropdown summary:hover .sd-summary-down svg{opacity:1;transform:scale(1.1)}details.sd-dropdown .sd-summary-up svg,details.sd-dropdown .sd-summary-down svg{display:block;opacity:.6}details.sd-dropdown .sd-summary-up,details.sd-dropdown .sd-summary-down{pointer-events:none;position:absolute;right:1em;top:1em}details.sd-dropdown[open]>.sd-summary-title .sd-summary-down{visibility:hidden}details.sd-dropdown:not([open])>.sd-summary-title .sd-summary-up{visibility:hidden}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #007bff;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0069d9;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem} +.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative}details.sd-dropdown .sd-summary-title{font-weight:700;padding-right:3em !important;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary{list-style:none;padding:1em}details.sd-dropdown summary .sd-octicon.no-title{vertical-align:middle}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown summary::-webkit-details-marker{display:none}details.sd-dropdown summary:focus{outline:none}details.sd-dropdown .sd-summary-icon{margin-right:.5em}details.sd-dropdown .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary:hover .sd-summary-up svg,details.sd-dropdown summary:hover .sd-summary-down svg{opacity:1;transform:scale(1.1)}details.sd-dropdown .sd-summary-up svg,details.sd-dropdown .sd-summary-down svg{display:block;opacity:.6}details.sd-dropdown .sd-summary-up,details.sd-dropdown .sd-summary-down{pointer-events:none;position:absolute;right:1em;top:1em}details.sd-dropdown[open]>.sd-summary-title .sd-summary-down{visibility:hidden}details.sd-dropdown:not([open])>.sd-summary-title .sd-summary-up{visibility:hidden}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #007bff;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0069d9;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem} diff --git a/_sphinx_design_static/design-tabs.js b/_sphinx_design_static/design-tabs.js old mode 100755 new mode 100644 index a869cf55f..36b38cf0d --- a/_sphinx_design_static/design-tabs.js +++ b/_sphinx_design_static/design-tabs.js @@ -1,27 +1,27 @@ -var sd_labels_by_text = {}; - -function ready() { - const li = document.getElementsByClassName("sd-tab-label"); - for (const label of li) { - syncId = label.getAttribute("data-sync-id"); - if (syncId) { - label.onclick = onLabelClick; - if (!sd_labels_by_text[syncId]) { - sd_labels_by_text[syncId] = []; - } - sd_labels_by_text[syncId].push(label); - } - } -} - -function onLabelClick() { - // Activate other inputs with the same sync id. - syncId = this.getAttribute("data-sync-id"); - for (label of sd_labels_by_text[syncId]) { - if (label === this) continue; - label.previousElementSibling.checked = true; - } - window.localStorage.setItem("sphinx-design-last-tab", syncId); -} - -document.addEventListener("DOMContentLoaded", ready, false); +var sd_labels_by_text = {}; + +function ready() { + const li = document.getElementsByClassName("sd-tab-label"); + for (const label of li) { + syncId = label.getAttribute("data-sync-id"); + if (syncId) { + label.onclick = onLabelClick; + if (!sd_labels_by_text[syncId]) { + sd_labels_by_text[syncId] = []; + } + sd_labels_by_text[syncId].push(label); + } + } +} + +function onLabelClick() { + // Activate other inputs with the same sync id. + syncId = this.getAttribute("data-sync-id"); + for (label of sd_labels_by_text[syncId]) { + if (label === this) continue; + label.previousElementSibling.checked = true; + } + window.localStorage.setItem("sphinx-design-last-tab", syncId); +} + +document.addEventListener("DOMContentLoaded", ready, false); diff --git a/_static/HeiGIT_Logo_compact.svg b/_static/HeiGIT_Logo_compact.svg old mode 100755 new mode 100644 index d99ec0848..2b0a67090 --- a/_static/HeiGIT_Logo_compact.svg +++ b/_static/HeiGIT_Logo_compact.svg @@ -1,263 +1,263 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_static/_sphinx_javascript_frameworks_compat.js b/_static/_sphinx_javascript_frameworks_compat.js old mode 100755 new mode 100644 diff --git a/_static/basic.css b/_static/basic.css old mode 100755 new mode 100644 index d613287ea..9e364ed34 --- a/_static/basic.css +++ b/_static/basic.css @@ -1,930 +1,930 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 270px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} -nav.contents, -aside.topic, - -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ -nav.contents, -aside.topic, - -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, - -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, - -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -/* Docutils 0.17 and older (footnotes & citations) */ -dl.footnote > dt, -dl.citation > dt { - float: left; - margin-right: 0.5em; -} - -dl.footnote > dd, -dl.citation > dd { - margin-bottom: 0em; -} - -dl.footnote > dd:after, -dl.citation > dd:after { - content: ""; - clear: both; -} - -/* Docutils 0.18+ (footnotes & citations) */ -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -/* Footnotes & citations ends */ - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dt:after { - content: ":"; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 270px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} +nav.contents, +aside.topic, + +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, + +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, + +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +/* Docutils 0.17 and older (footnotes & citations) */ +dl.footnote > dt, +dl.citation > dt { + float: left; + margin-right: 0.5em; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dt:after { + content: ":"; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } } \ No newline at end of file diff --git a/_static/check-solid.svg b/_static/check-solid.svg old mode 100755 new mode 100644 diff --git a/_static/clipboard.min.js b/_static/clipboard.min.js old mode 100755 new mode 100644 diff --git a/_static/copy-button.svg b/_static/copy-button.svg old mode 100755 new mode 100644 diff --git a/_static/copybutton.css b/_static/copybutton.css old mode 100755 new mode 100644 diff --git a/_static/copybutton.js b/_static/copybutton.js old mode 100755 new mode 100644 index f4ec4edcc..2ea7ff3e2 --- a/_static/copybutton.js +++ b/_static/copybutton.js @@ -1,248 +1,248 @@ -// Localization support -const messages = { - 'en': { - 'copy': 'Copy', - 'copy_to_clipboard': 'Copy to clipboard', - 'copy_success': 'Copied!', - 'copy_failure': 'Failed to copy', - }, - 'es' : { - 'copy': 'Copiar', - 'copy_to_clipboard': 'Copiar al portapapeles', - 'copy_success': '¡Copiado!', - 'copy_failure': 'Error al copiar', - }, - 'de' : { - 'copy': 'Kopieren', - 'copy_to_clipboard': 'In die Zwischenablage kopieren', - 'copy_success': 'Kopiert!', - 'copy_failure': 'Fehler beim Kopieren', - }, - 'fr' : { - 'copy': 'Copier', - 'copy_to_clipboard': 'Copier dans le presse-papier', - 'copy_success': 'Copié !', - 'copy_failure': 'Échec de la copie', - }, - 'ru': { - 'copy': 'Скопировать', - 'copy_to_clipboard': 'Скопировать в буфер', - 'copy_success': 'Скопировано!', - 'copy_failure': 'Не удалось скопировать', - }, - 'zh-CN': { - 'copy': '复制', - 'copy_to_clipboard': '复制到剪贴板', - 'copy_success': '复制成功!', - 'copy_failure': '复制失败', - }, - 'it' : { - 'copy': 'Copiare', - 'copy_to_clipboard': 'Copiato negli appunti', - 'copy_success': 'Copiato!', - 'copy_failure': 'Errore durante la copia', - } -} - -let locale = 'en' -if( document.documentElement.lang !== undefined - && messages[document.documentElement.lang] !== undefined ) { - locale = document.documentElement.lang -} - -let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; -if (doc_url_root == '#') { - doc_url_root = ''; -} - -/** - * SVG files for our copy buttons - */ -let iconCheck = ` - ${messages[locale]['copy_success']} - - -` - -// If the user specified their own SVG use that, otherwise use the default -let iconCopy = ``; -if (!iconCopy) { - iconCopy = ` - ${messages[locale]['copy_to_clipboard']} - - - -` -} - -/** - * Set up copy/paste for code blocks - */ - -const runWhenDOMLoaded = cb => { - if (document.readyState != 'loading') { - cb() - } else if (document.addEventListener) { - document.addEventListener('DOMContentLoaded', cb) - } else { - document.attachEvent('onreadystatechange', function() { - if (document.readyState == 'complete') cb() - }) - } -} - -const codeCellId = index => `codecell${index}` - -// Clears selected text since ClipboardJS will select the text when copying -const clearSelection = () => { - if (window.getSelection) { - window.getSelection().removeAllRanges() - } else if (document.selection) { - document.selection.empty() - } -} - -// Changes tooltip text for a moment, then changes it back -// We want the timeout of our `success` class to be a bit shorter than the -// tooltip and icon change, so that we can hide the icon before changing back. -var timeoutIcon = 2000; -var timeoutSuccessClass = 1500; - -const temporarilyChangeTooltip = (el, oldText, newText) => { - el.setAttribute('data-tooltip', newText) - el.classList.add('success') - // Remove success a little bit sooner than we change the tooltip - // So that we can use CSS to hide the copybutton first - setTimeout(() => el.classList.remove('success'), timeoutSuccessClass) - setTimeout(() => el.setAttribute('data-tooltip', oldText), timeoutIcon) -} - -// Changes the copy button icon for two seconds, then changes it back -const temporarilyChangeIcon = (el) => { - el.innerHTML = iconCheck; - setTimeout(() => {el.innerHTML = iconCopy}, timeoutIcon) -} - -const addCopyButtonToCodeCells = () => { - // If ClipboardJS hasn't loaded, wait a bit and try again. This - // happens because we load ClipboardJS asynchronously. - if (window.ClipboardJS === undefined) { - setTimeout(addCopyButtonToCodeCells, 250) - return - } - - // Add copybuttons to all of our code cells - const COPYBUTTON_SELECTOR = 'div.highlight pre'; - const codeCells = document.querySelectorAll(COPYBUTTON_SELECTOR) - codeCells.forEach((codeCell, index) => { - const id = codeCellId(index) - codeCell.setAttribute('id', id) - - const clipboardButton = id => - `` - codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) - }) - -function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string -} - -/** - * Removes excluded text from a Node. - * - * @param {Node} target Node to filter. - * @param {string} exclude CSS selector of nodes to exclude. - * @returns {DOMString} Text from `target` with text removed. - */ -function filterText(target, exclude) { - const clone = target.cloneNode(true); // clone as to not modify the live DOM - if (exclude) { - // remove excluded nodes - clone.querySelectorAll(exclude).forEach(node => node.remove()); - } - return clone.innerText; -} - -// Callback when a copy button is clicked. Will be passed the node that was clicked -// should then grab the text and replace pieces of text that shouldn't be used in output -function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { - var regexp; - var match; - - // Do we check for line continuation characters and "HERE-documents"? - var useLineCont = !!lineContinuationChar - var useHereDoc = !!hereDocDelim - - // create regexp to capture prompt and remaining line - if (isRegexp) { - regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') - } else { - regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') - } - - const outputLines = []; - var promptFound = false; - var gotLineCont = false; - var gotHereDoc = false; - const lineGotPrompt = []; - for (const line of textContent.split('\n')) { - match = line.match(regexp) - if (match || gotLineCont || gotHereDoc) { - promptFound = regexp.test(line) - lineGotPrompt.push(promptFound) - if (removePrompts && promptFound) { - outputLines.push(match[2]) - } else { - outputLines.push(line) - } - gotLineCont = line.endsWith(lineContinuationChar) & useLineCont - if (line.includes(hereDocDelim) & useHereDoc) - gotHereDoc = !gotHereDoc - } else if (!onlyCopyPromptLines) { - outputLines.push(line) - } else if (copyEmptyLines && line.trim() === '') { - outputLines.push(line) - } - } - - // If no lines with the prompt were found then just use original lines - if (lineGotPrompt.some(v => v === true)) { - textContent = outputLines.join('\n'); - } - - // Remove a trailing newline to avoid auto-running when pasting - if (textContent.endsWith("\n")) { - textContent = textContent.slice(0, -1) - } - return textContent -} - - -var copyTargetText = (trigger) => { - var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); - - // get filtered text - let exclude = '.linenos'; - - let text = filterText(target, exclude); - return formatCopyText(text, '', false, true, true, true, '', '') -} - - // Initialize with a callback so we can modify the text before copy - const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) - - // Update UI with error/success messages - clipboard.on('success', event => { - clearSelection() - temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) - temporarilyChangeIcon(event.trigger) - }) - - clipboard.on('error', event => { - temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) - }) -} - +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copier dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +/** + * SVG files for our copy buttons + */ +let iconCheck = ` + ${messages[locale]['copy_success']} + + +` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = ` + ${messages[locale]['copy_to_clipboard']} + + + +` +} + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for a moment, then changes it back +// We want the timeout of our `success` class to be a bit shorter than the +// tooltip and icon change, so that we can hide the icon before changing back. +var timeoutIcon = 2000; +var timeoutSuccessClass = 1500; + +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + el.classList.add('success') + // Remove success a little bit sooner than we change the tooltip + // So that we can use CSS to hide the copybutton first + setTimeout(() => el.classList.remove('success'), timeoutSuccessClass) + setTimeout(() => el.setAttribute('data-tooltip', oldText), timeoutIcon) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, timeoutIcon) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const COPYBUTTON_SELECTOR = 'div.highlight pre'; + const codeCells = document.querySelectorAll(COPYBUTTON_SELECTOR) + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + + // get filtered text + let exclude = '.linenos'; + + let text = filterText(target, exclude); + return formatCopyText(text, '', false, true, true, true, '', '') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/_static/copybutton_funcs.js b/_static/copybutton_funcs.js old mode 100755 new mode 100644 diff --git a/_static/design-style.4045f2051d55cab465a707391d5b2007.min.css b/_static/design-style.4045f2051d55cab465a707391d5b2007.min.css old mode 100755 new mode 100644 index 57bec30a5..3225661c2 --- a/_static/design-style.4045f2051d55cab465a707391d5b2007.min.css +++ b/_static/design-style.4045f2051d55cab465a707391d5b2007.min.css @@ -1 +1 @@ -.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative}details.sd-dropdown .sd-summary-title{font-weight:700;padding-right:3em !important;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary{list-style:none;padding:1em}details.sd-dropdown summary .sd-octicon.no-title{vertical-align:middle}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown summary::-webkit-details-marker{display:none}details.sd-dropdown summary:focus{outline:none}details.sd-dropdown .sd-summary-icon{margin-right:.5em}details.sd-dropdown .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary:hover .sd-summary-up svg,details.sd-dropdown summary:hover .sd-summary-down svg{opacity:1;transform:scale(1.1)}details.sd-dropdown .sd-summary-up svg,details.sd-dropdown .sd-summary-down svg{display:block;opacity:.6}details.sd-dropdown .sd-summary-up,details.sd-dropdown .sd-summary-down{pointer-events:none;position:absolute;right:1em;top:1em}details.sd-dropdown[open]>.sd-summary-title .sd-summary-down{visibility:hidden}details.sd-dropdown:not([open])>.sd-summary-title .sd-summary-up{visibility:hidden}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #007bff;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0069d9;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem} +.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative}details.sd-dropdown .sd-summary-title{font-weight:700;padding-right:3em !important;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary{list-style:none;padding:1em}details.sd-dropdown summary .sd-octicon.no-title{vertical-align:middle}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown summary::-webkit-details-marker{display:none}details.sd-dropdown summary:focus{outline:none}details.sd-dropdown .sd-summary-icon{margin-right:.5em}details.sd-dropdown .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary:hover .sd-summary-up svg,details.sd-dropdown summary:hover .sd-summary-down svg{opacity:1;transform:scale(1.1)}details.sd-dropdown .sd-summary-up svg,details.sd-dropdown .sd-summary-down svg{display:block;opacity:.6}details.sd-dropdown .sd-summary-up,details.sd-dropdown .sd-summary-down{pointer-events:none;position:absolute;right:1em;top:1em}details.sd-dropdown[open]>.sd-summary-title .sd-summary-down{visibility:hidden}details.sd-dropdown:not([open])>.sd-summary-title .sd-summary-up{visibility:hidden}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #007bff;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0069d9;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem} diff --git a/_static/design-tabs.js b/_static/design-tabs.js old mode 100755 new mode 100644 index a869cf55f..36b38cf0d --- a/_static/design-tabs.js +++ b/_static/design-tabs.js @@ -1,27 +1,27 @@ -var sd_labels_by_text = {}; - -function ready() { - const li = document.getElementsByClassName("sd-tab-label"); - for (const label of li) { - syncId = label.getAttribute("data-sync-id"); - if (syncId) { - label.onclick = onLabelClick; - if (!sd_labels_by_text[syncId]) { - sd_labels_by_text[syncId] = []; - } - sd_labels_by_text[syncId].push(label); - } - } -} - -function onLabelClick() { - // Activate other inputs with the same sync id. - syncId = this.getAttribute("data-sync-id"); - for (label of sd_labels_by_text[syncId]) { - if (label === this) continue; - label.previousElementSibling.checked = true; - } - window.localStorage.setItem("sphinx-design-last-tab", syncId); -} - -document.addEventListener("DOMContentLoaded", ready, false); +var sd_labels_by_text = {}; + +function ready() { + const li = document.getElementsByClassName("sd-tab-label"); + for (const label of li) { + syncId = label.getAttribute("data-sync-id"); + if (syncId) { + label.onclick = onLabelClick; + if (!sd_labels_by_text[syncId]) { + sd_labels_by_text[syncId] = []; + } + sd_labels_by_text[syncId].push(label); + } + } +} + +function onLabelClick() { + // Activate other inputs with the same sync id. + syncId = this.getAttribute("data-sync-id"); + for (label of sd_labels_by_text[syncId]) { + if (label === this) continue; + label.previousElementSibling.checked = true; + } + window.localStorage.setItem("sphinx-design-last-tab", syncId); +} + +document.addEventListener("DOMContentLoaded", ready, false); diff --git a/_static/doctools.js b/_static/doctools.js old mode 100755 new mode 100644 diff --git a/_static/documentation_options.js b/_static/documentation_options.js old mode 100755 new mode 100644 index 828e1d213..30637825d --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,14 +1,14 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '', - NAVIGATION_WITH_KEYS: true, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: false, +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '', + NAVIGATION_WITH_KEYS: true, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/_static/file.png b/_static/file.png old mode 100755 new mode 100644 diff --git a/_static/images/logo_binder.svg b/_static/images/logo_binder.svg old mode 100755 new mode 100644 diff --git a/_static/images/logo_colab.png b/_static/images/logo_colab.png old mode 100755 new mode 100644 diff --git a/_static/images/logo_deepnote.svg b/_static/images/logo_deepnote.svg old mode 100755 new mode 100644 diff --git a/_static/images/logo_jupyterhub.svg b/_static/images/logo_jupyterhub.svg old mode 100755 new mode 100644 diff --git a/_static/jquery-3.6.0.js b/_static/jquery-3.6.0.js old mode 100755 new mode 100644 diff --git a/_static/jquery.js b/_static/jquery.js old mode 100755 new mode 100644 diff --git a/_static/language_data.js b/_static/language_data.js old mode 100755 new mode 100644 index 29455f024..2e22b06ab --- a/_static/language_data.js +++ b/_static/language_data.js @@ -1,199 +1,199 @@ -/* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, is available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/locales/ar/LC_MESSAGES/booktheme.mo b/_static/locales/ar/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ar/LC_MESSAGES/booktheme.po b/_static/locales/ar/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/bg/LC_MESSAGES/booktheme.mo b/_static/locales/bg/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/bg/LC_MESSAGES/booktheme.po b/_static/locales/bg/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/bn/LC_MESSAGES/booktheme.mo b/_static/locales/bn/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/bn/LC_MESSAGES/booktheme.po b/_static/locales/bn/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ca/LC_MESSAGES/booktheme.mo b/_static/locales/ca/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ca/LC_MESSAGES/booktheme.po b/_static/locales/ca/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/cs/LC_MESSAGES/booktheme.mo b/_static/locales/cs/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/cs/LC_MESSAGES/booktheme.po b/_static/locales/cs/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/da/LC_MESSAGES/booktheme.mo b/_static/locales/da/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/da/LC_MESSAGES/booktheme.po b/_static/locales/da/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/de/LC_MESSAGES/booktheme.mo b/_static/locales/de/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/de/LC_MESSAGES/booktheme.po b/_static/locales/de/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/el/LC_MESSAGES/booktheme.mo b/_static/locales/el/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/el/LC_MESSAGES/booktheme.po b/_static/locales/el/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/eo/LC_MESSAGES/booktheme.mo b/_static/locales/eo/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/eo/LC_MESSAGES/booktheme.po b/_static/locales/eo/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/es/LC_MESSAGES/booktheme.mo b/_static/locales/es/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/es/LC_MESSAGES/booktheme.po b/_static/locales/es/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/et/LC_MESSAGES/booktheme.mo b/_static/locales/et/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/et/LC_MESSAGES/booktheme.po b/_static/locales/et/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/fi/LC_MESSAGES/booktheme.mo b/_static/locales/fi/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/fi/LC_MESSAGES/booktheme.po b/_static/locales/fi/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/fr/LC_MESSAGES/booktheme.mo b/_static/locales/fr/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/fr/LC_MESSAGES/booktheme.po b/_static/locales/fr/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/hr/LC_MESSAGES/booktheme.mo b/_static/locales/hr/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/hr/LC_MESSAGES/booktheme.po b/_static/locales/hr/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/id/LC_MESSAGES/booktheme.mo b/_static/locales/id/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/id/LC_MESSAGES/booktheme.po b/_static/locales/id/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/it/LC_MESSAGES/booktheme.mo b/_static/locales/it/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/it/LC_MESSAGES/booktheme.po b/_static/locales/it/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/iw/LC_MESSAGES/booktheme.mo b/_static/locales/iw/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/iw/LC_MESSAGES/booktheme.po b/_static/locales/iw/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ja/LC_MESSAGES/booktheme.mo b/_static/locales/ja/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ja/LC_MESSAGES/booktheme.po b/_static/locales/ja/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ko/LC_MESSAGES/booktheme.mo b/_static/locales/ko/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ko/LC_MESSAGES/booktheme.po b/_static/locales/ko/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/lt/LC_MESSAGES/booktheme.mo b/_static/locales/lt/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/lt/LC_MESSAGES/booktheme.po b/_static/locales/lt/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/lv/LC_MESSAGES/booktheme.mo b/_static/locales/lv/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/lv/LC_MESSAGES/booktheme.po b/_static/locales/lv/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ml/LC_MESSAGES/booktheme.mo b/_static/locales/ml/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ml/LC_MESSAGES/booktheme.po b/_static/locales/ml/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/mr/LC_MESSAGES/booktheme.mo b/_static/locales/mr/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/mr/LC_MESSAGES/booktheme.po b/_static/locales/mr/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ms/LC_MESSAGES/booktheme.mo b/_static/locales/ms/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ms/LC_MESSAGES/booktheme.po b/_static/locales/ms/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/nl/LC_MESSAGES/booktheme.mo b/_static/locales/nl/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/nl/LC_MESSAGES/booktheme.po b/_static/locales/nl/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/no/LC_MESSAGES/booktheme.mo b/_static/locales/no/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/no/LC_MESSAGES/booktheme.po b/_static/locales/no/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/pl/LC_MESSAGES/booktheme.mo b/_static/locales/pl/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/pl/LC_MESSAGES/booktheme.po b/_static/locales/pl/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/pt/LC_MESSAGES/booktheme.mo b/_static/locales/pt/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/pt/LC_MESSAGES/booktheme.po b/_static/locales/pt/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ro/LC_MESSAGES/booktheme.mo b/_static/locales/ro/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ro/LC_MESSAGES/booktheme.po b/_static/locales/ro/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ru/LC_MESSAGES/booktheme.mo b/_static/locales/ru/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ru/LC_MESSAGES/booktheme.po b/_static/locales/ru/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/sk/LC_MESSAGES/booktheme.mo b/_static/locales/sk/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/sk/LC_MESSAGES/booktheme.po b/_static/locales/sk/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/sl/LC_MESSAGES/booktheme.mo b/_static/locales/sl/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/sl/LC_MESSAGES/booktheme.po b/_static/locales/sl/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/sr/LC_MESSAGES/booktheme.mo b/_static/locales/sr/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/sr/LC_MESSAGES/booktheme.po b/_static/locales/sr/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/sv/LC_MESSAGES/booktheme.mo b/_static/locales/sv/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/sv/LC_MESSAGES/booktheme.po b/_static/locales/sv/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ta/LC_MESSAGES/booktheme.mo b/_static/locales/ta/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ta/LC_MESSAGES/booktheme.po b/_static/locales/ta/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/te/LC_MESSAGES/booktheme.mo b/_static/locales/te/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/te/LC_MESSAGES/booktheme.po b/_static/locales/te/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/tg/LC_MESSAGES/booktheme.mo b/_static/locales/tg/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/tg/LC_MESSAGES/booktheme.po b/_static/locales/tg/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/th/LC_MESSAGES/booktheme.mo b/_static/locales/th/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/th/LC_MESSAGES/booktheme.po b/_static/locales/th/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/tl/LC_MESSAGES/booktheme.mo b/_static/locales/tl/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/tl/LC_MESSAGES/booktheme.po b/_static/locales/tl/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/tr/LC_MESSAGES/booktheme.mo b/_static/locales/tr/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/tr/LC_MESSAGES/booktheme.po b/_static/locales/tr/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/uk/LC_MESSAGES/booktheme.mo b/_static/locales/uk/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/uk/LC_MESSAGES/booktheme.po b/_static/locales/uk/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/ur/LC_MESSAGES/booktheme.mo b/_static/locales/ur/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/ur/LC_MESSAGES/booktheme.po b/_static/locales/ur/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/vi/LC_MESSAGES/booktheme.mo b/_static/locales/vi/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/vi/LC_MESSAGES/booktheme.po b/_static/locales/vi/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/zh_CN/LC_MESSAGES/booktheme.mo b/_static/locales/zh_CN/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/zh_CN/LC_MESSAGES/booktheme.po b/_static/locales/zh_CN/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/locales/zh_TW/LC_MESSAGES/booktheme.mo b/_static/locales/zh_TW/LC_MESSAGES/booktheme.mo old mode 100755 new mode 100644 diff --git a/_static/locales/zh_TW/LC_MESSAGES/booktheme.po b/_static/locales/zh_TW/LC_MESSAGES/booktheme.po old mode 100755 new mode 100644 diff --git a/_static/minus.png b/_static/minus.png old mode 100755 new mode 100644 diff --git a/_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css b/_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css old mode 100755 new mode 100644 diff --git a/_static/plus.png b/_static/plus.png old mode 100755 new mode 100644 diff --git a/_static/pygments.css b/_static/pygments.css old mode 100755 new mode 100644 index 4d9ab4aae..997797f27 --- a/_static/pygments.css +++ b/_static/pygments.css @@ -1,152 +1,152 @@ -html[data-theme="light"] .highlight pre { line-height: 125%; } -html[data-theme="light"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -html[data-theme="light"] .highlight .hll { background-color: #7971292e } -html[data-theme="light"] .highlight { background: #fefefe; color: #545454 } -html[data-theme="light"] .highlight .c { color: #797129 } /* Comment */ -html[data-theme="light"] .highlight .err { color: #d91e18 } /* Error */ -html[data-theme="light"] .highlight .k { color: #7928a1 } /* Keyword */ -html[data-theme="light"] .highlight .l { color: #797129 } /* Literal */ -html[data-theme="light"] .highlight .n { color: #545454 } /* Name */ -html[data-theme="light"] .highlight .o { color: #008000 } /* Operator */ -html[data-theme="light"] .highlight .p { color: #545454 } /* Punctuation */ -html[data-theme="light"] .highlight .ch { color: #797129 } /* Comment.Hashbang */ -html[data-theme="light"] .highlight .cm { color: #797129 } /* Comment.Multiline */ -html[data-theme="light"] .highlight .cp { color: #797129 } /* Comment.Preproc */ -html[data-theme="light"] .highlight .cpf { color: #797129 } /* Comment.PreprocFile */ -html[data-theme="light"] .highlight .c1 { color: #797129 } /* Comment.Single */ -html[data-theme="light"] .highlight .cs { color: #797129 } /* Comment.Special */ -html[data-theme="light"] .highlight .gd { color: #007faa } /* Generic.Deleted */ -html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */ -html[data-theme="light"] .highlight .gh { color: #007faa } /* Generic.Heading */ -html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */ -html[data-theme="light"] .highlight .gu { color: #007faa } /* Generic.Subheading */ -html[data-theme="light"] .highlight .kc { color: #7928a1 } /* Keyword.Constant */ -html[data-theme="light"] .highlight .kd { color: #7928a1 } /* Keyword.Declaration */ -html[data-theme="light"] .highlight .kn { color: #7928a1 } /* Keyword.Namespace */ -html[data-theme="light"] .highlight .kp { color: #7928a1 } /* Keyword.Pseudo */ -html[data-theme="light"] .highlight .kr { color: #7928a1 } /* Keyword.Reserved */ -html[data-theme="light"] .highlight .kt { color: #797129 } /* Keyword.Type */ -html[data-theme="light"] .highlight .ld { color: #797129 } /* Literal.Date */ -html[data-theme="light"] .highlight .m { color: #797129 } /* Literal.Number */ -html[data-theme="light"] .highlight .s { color: #008000 } /* Literal.String */ -html[data-theme="light"] .highlight .na { color: #797129 } /* Name.Attribute */ -html[data-theme="light"] .highlight .nb { color: #797129 } /* Name.Builtin */ -html[data-theme="light"] .highlight .nc { color: #007faa } /* Name.Class */ -html[data-theme="light"] .highlight .no { color: #007faa } /* Name.Constant */ -html[data-theme="light"] .highlight .nd { color: #797129 } /* Name.Decorator */ -html[data-theme="light"] .highlight .ni { color: #008000 } /* Name.Entity */ -html[data-theme="light"] .highlight .ne { color: #7928a1 } /* Name.Exception */ -html[data-theme="light"] .highlight .nf { color: #007faa } /* Name.Function */ -html[data-theme="light"] .highlight .nl { color: #797129 } /* Name.Label */ -html[data-theme="light"] .highlight .nn { color: #545454 } /* Name.Namespace */ -html[data-theme="light"] .highlight .nx { color: #545454 } /* Name.Other */ -html[data-theme="light"] .highlight .py { color: #007faa } /* Name.Property */ -html[data-theme="light"] .highlight .nt { color: #007faa } /* Name.Tag */ -html[data-theme="light"] .highlight .nv { color: #d91e18 } /* Name.Variable */ -html[data-theme="light"] .highlight .ow { color: #7928a1 } /* Operator.Word */ -html[data-theme="light"] .highlight .pm { color: #545454 } /* Punctuation.Marker */ -html[data-theme="light"] .highlight .w { color: #545454 } /* Text.Whitespace */ -html[data-theme="light"] .highlight .mb { color: #797129 } /* Literal.Number.Bin */ -html[data-theme="light"] .highlight .mf { color: #797129 } /* Literal.Number.Float */ -html[data-theme="light"] .highlight .mh { color: #797129 } /* Literal.Number.Hex */ -html[data-theme="light"] .highlight .mi { color: #797129 } /* Literal.Number.Integer */ -html[data-theme="light"] .highlight .mo { color: #797129 } /* Literal.Number.Oct */ -html[data-theme="light"] .highlight .sa { color: #008000 } /* Literal.String.Affix */ -html[data-theme="light"] .highlight .sb { color: #008000 } /* Literal.String.Backtick */ -html[data-theme="light"] .highlight .sc { color: #008000 } /* Literal.String.Char */ -html[data-theme="light"] .highlight .dl { color: #008000 } /* Literal.String.Delimiter */ -html[data-theme="light"] .highlight .sd { color: #008000 } /* Literal.String.Doc */ -html[data-theme="light"] .highlight .s2 { color: #008000 } /* Literal.String.Double */ -html[data-theme="light"] .highlight .se { color: #008000 } /* Literal.String.Escape */ -html[data-theme="light"] .highlight .sh { color: #008000 } /* Literal.String.Heredoc */ -html[data-theme="light"] .highlight .si { color: #008000 } /* Literal.String.Interpol */ -html[data-theme="light"] .highlight .sx { color: #008000 } /* Literal.String.Other */ -html[data-theme="light"] .highlight .sr { color: #d91e18 } /* Literal.String.Regex */ -html[data-theme="light"] .highlight .s1 { color: #008000 } /* Literal.String.Single */ -html[data-theme="light"] .highlight .ss { color: #007faa } /* Literal.String.Symbol */ -html[data-theme="light"] .highlight .bp { color: #797129 } /* Name.Builtin.Pseudo */ -html[data-theme="light"] .highlight .fm { color: #007faa } /* Name.Function.Magic */ -html[data-theme="light"] .highlight .vc { color: #d91e18 } /* Name.Variable.Class */ -html[data-theme="light"] .highlight .vg { color: #d91e18 } /* Name.Variable.Global */ -html[data-theme="light"] .highlight .vi { color: #d91e18 } /* Name.Variable.Instance */ -html[data-theme="light"] .highlight .vm { color: #797129 } /* Name.Variable.Magic */ -html[data-theme="light"] .highlight .il { color: #797129 } /* Literal.Number.Integer.Long */ -html[data-theme="dark"] .highlight pre { line-height: 125%; } -html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -html[data-theme="dark"] .highlight .hll { background-color: #ffd9002e } -html[data-theme="dark"] .highlight { background: #2b2b2b; color: #f8f8f2 } -html[data-theme="dark"] .highlight .c { color: #ffd900 } /* Comment */ -html[data-theme="dark"] .highlight .err { color: #ffa07a } /* Error */ -html[data-theme="dark"] .highlight .k { color: #dcc6e0 } /* Keyword */ -html[data-theme="dark"] .highlight .l { color: #ffd900 } /* Literal */ -html[data-theme="dark"] .highlight .n { color: #f8f8f2 } /* Name */ -html[data-theme="dark"] .highlight .o { color: #abe338 } /* Operator */ -html[data-theme="dark"] .highlight .p { color: #f8f8f2 } /* Punctuation */ -html[data-theme="dark"] .highlight .ch { color: #ffd900 } /* Comment.Hashbang */ -html[data-theme="dark"] .highlight .cm { color: #ffd900 } /* Comment.Multiline */ -html[data-theme="dark"] .highlight .cp { color: #ffd900 } /* Comment.Preproc */ -html[data-theme="dark"] .highlight .cpf { color: #ffd900 } /* Comment.PreprocFile */ -html[data-theme="dark"] .highlight .c1 { color: #ffd900 } /* Comment.Single */ -html[data-theme="dark"] .highlight .cs { color: #ffd900 } /* Comment.Special */ -html[data-theme="dark"] .highlight .gd { color: #00e0e0 } /* Generic.Deleted */ -html[data-theme="dark"] .highlight .ge { font-style: italic } /* Generic.Emph */ -html[data-theme="dark"] .highlight .gh { color: #00e0e0 } /* Generic.Heading */ -html[data-theme="dark"] .highlight .gs { font-weight: bold } /* Generic.Strong */ -html[data-theme="dark"] .highlight .gu { color: #00e0e0 } /* Generic.Subheading */ -html[data-theme="dark"] .highlight .kc { color: #dcc6e0 } /* Keyword.Constant */ -html[data-theme="dark"] .highlight .kd { color: #dcc6e0 } /* Keyword.Declaration */ -html[data-theme="dark"] .highlight .kn { color: #dcc6e0 } /* Keyword.Namespace */ -html[data-theme="dark"] .highlight .kp { color: #dcc6e0 } /* Keyword.Pseudo */ -html[data-theme="dark"] .highlight .kr { color: #dcc6e0 } /* Keyword.Reserved */ -html[data-theme="dark"] .highlight .kt { color: #ffd900 } /* Keyword.Type */ -html[data-theme="dark"] .highlight .ld { color: #ffd900 } /* Literal.Date */ -html[data-theme="dark"] .highlight .m { color: #ffd900 } /* Literal.Number */ -html[data-theme="dark"] .highlight .s { color: #abe338 } /* Literal.String */ -html[data-theme="dark"] .highlight .na { color: #ffd900 } /* Name.Attribute */ -html[data-theme="dark"] .highlight .nb { color: #ffd900 } /* Name.Builtin */ -html[data-theme="dark"] .highlight .nc { color: #00e0e0 } /* Name.Class */ -html[data-theme="dark"] .highlight .no { color: #00e0e0 } /* Name.Constant */ -html[data-theme="dark"] .highlight .nd { color: #ffd900 } /* Name.Decorator */ -html[data-theme="dark"] .highlight .ni { color: #abe338 } /* Name.Entity */ -html[data-theme="dark"] .highlight .ne { color: #dcc6e0 } /* Name.Exception */ -html[data-theme="dark"] .highlight .nf { color: #00e0e0 } /* Name.Function */ -html[data-theme="dark"] .highlight .nl { color: #ffd900 } /* Name.Label */ -html[data-theme="dark"] .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ -html[data-theme="dark"] .highlight .nx { color: #f8f8f2 } /* Name.Other */ -html[data-theme="dark"] .highlight .py { color: #00e0e0 } /* Name.Property */ -html[data-theme="dark"] .highlight .nt { color: #00e0e0 } /* Name.Tag */ -html[data-theme="dark"] .highlight .nv { color: #ffa07a } /* Name.Variable */ -html[data-theme="dark"] .highlight .ow { color: #dcc6e0 } /* Operator.Word */ -html[data-theme="dark"] .highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */ -html[data-theme="dark"] .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ -html[data-theme="dark"] .highlight .mb { color: #ffd900 } /* Literal.Number.Bin */ -html[data-theme="dark"] .highlight .mf { color: #ffd900 } /* Literal.Number.Float */ -html[data-theme="dark"] .highlight .mh { color: #ffd900 } /* Literal.Number.Hex */ -html[data-theme="dark"] .highlight .mi { color: #ffd900 } /* Literal.Number.Integer */ -html[data-theme="dark"] .highlight .mo { color: #ffd900 } /* Literal.Number.Oct */ -html[data-theme="dark"] .highlight .sa { color: #abe338 } /* Literal.String.Affix */ -html[data-theme="dark"] .highlight .sb { color: #abe338 } /* Literal.String.Backtick */ -html[data-theme="dark"] .highlight .sc { color: #abe338 } /* Literal.String.Char */ -html[data-theme="dark"] .highlight .dl { color: #abe338 } /* Literal.String.Delimiter */ -html[data-theme="dark"] .highlight .sd { color: #abe338 } /* Literal.String.Doc */ -html[data-theme="dark"] .highlight .s2 { color: #abe338 } /* Literal.String.Double */ -html[data-theme="dark"] .highlight .se { color: #abe338 } /* Literal.String.Escape */ -html[data-theme="dark"] .highlight .sh { color: #abe338 } /* Literal.String.Heredoc */ -html[data-theme="dark"] .highlight .si { color: #abe338 } /* Literal.String.Interpol */ -html[data-theme="dark"] .highlight .sx { color: #abe338 } /* Literal.String.Other */ -html[data-theme="dark"] .highlight .sr { color: #ffa07a } /* Literal.String.Regex */ -html[data-theme="dark"] .highlight .s1 { color: #abe338 } /* Literal.String.Single */ -html[data-theme="dark"] .highlight .ss { color: #00e0e0 } /* Literal.String.Symbol */ -html[data-theme="dark"] .highlight .bp { color: #ffd900 } /* Name.Builtin.Pseudo */ -html[data-theme="dark"] .highlight .fm { color: #00e0e0 } /* Name.Function.Magic */ -html[data-theme="dark"] .highlight .vc { color: #ffa07a } /* Name.Variable.Class */ -html[data-theme="dark"] .highlight .vg { color: #ffa07a } /* Name.Variable.Global */ -html[data-theme="dark"] .highlight .vi { color: #ffa07a } /* Name.Variable.Instance */ -html[data-theme="dark"] .highlight .vm { color: #ffd900 } /* Name.Variable.Magic */ +html[data-theme="light"] .highlight pre { line-height: 125%; } +html[data-theme="light"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight .hll { background-color: #7971292e } +html[data-theme="light"] .highlight { background: #fefefe; color: #545454 } +html[data-theme="light"] .highlight .c { color: #797129 } /* Comment */ +html[data-theme="light"] .highlight .err { color: #d91e18 } /* Error */ +html[data-theme="light"] .highlight .k { color: #7928a1 } /* Keyword */ +html[data-theme="light"] .highlight .l { color: #797129 } /* Literal */ +html[data-theme="light"] .highlight .n { color: #545454 } /* Name */ +html[data-theme="light"] .highlight .o { color: #008000 } /* Operator */ +html[data-theme="light"] .highlight .p { color: #545454 } /* Punctuation */ +html[data-theme="light"] .highlight .ch { color: #797129 } /* Comment.Hashbang */ +html[data-theme="light"] .highlight .cm { color: #797129 } /* Comment.Multiline */ +html[data-theme="light"] .highlight .cp { color: #797129 } /* Comment.Preproc */ +html[data-theme="light"] .highlight .cpf { color: #797129 } /* Comment.PreprocFile */ +html[data-theme="light"] .highlight .c1 { color: #797129 } /* Comment.Single */ +html[data-theme="light"] .highlight .cs { color: #797129 } /* Comment.Special */ +html[data-theme="light"] .highlight .gd { color: #007faa } /* Generic.Deleted */ +html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="light"] .highlight .gh { color: #007faa } /* Generic.Heading */ +html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="light"] .highlight .gu { color: #007faa } /* Generic.Subheading */ +html[data-theme="light"] .highlight .kc { color: #7928a1 } /* Keyword.Constant */ +html[data-theme="light"] .highlight .kd { color: #7928a1 } /* Keyword.Declaration */ +html[data-theme="light"] .highlight .kn { color: #7928a1 } /* Keyword.Namespace */ +html[data-theme="light"] .highlight .kp { color: #7928a1 } /* Keyword.Pseudo */ +html[data-theme="light"] .highlight .kr { color: #7928a1 } /* Keyword.Reserved */ +html[data-theme="light"] .highlight .kt { color: #797129 } /* Keyword.Type */ +html[data-theme="light"] .highlight .ld { color: #797129 } /* Literal.Date */ +html[data-theme="light"] .highlight .m { color: #797129 } /* Literal.Number */ +html[data-theme="light"] .highlight .s { color: #008000 } /* Literal.String */ +html[data-theme="light"] .highlight .na { color: #797129 } /* Name.Attribute */ +html[data-theme="light"] .highlight .nb { color: #797129 } /* Name.Builtin */ +html[data-theme="light"] .highlight .nc { color: #007faa } /* Name.Class */ +html[data-theme="light"] .highlight .no { color: #007faa } /* Name.Constant */ +html[data-theme="light"] .highlight .nd { color: #797129 } /* Name.Decorator */ +html[data-theme="light"] .highlight .ni { color: #008000 } /* Name.Entity */ +html[data-theme="light"] .highlight .ne { color: #7928a1 } /* Name.Exception */ +html[data-theme="light"] .highlight .nf { color: #007faa } /* Name.Function */ +html[data-theme="light"] .highlight .nl { color: #797129 } /* Name.Label */ +html[data-theme="light"] .highlight .nn { color: #545454 } /* Name.Namespace */ +html[data-theme="light"] .highlight .nx { color: #545454 } /* Name.Other */ +html[data-theme="light"] .highlight .py { color: #007faa } /* Name.Property */ +html[data-theme="light"] .highlight .nt { color: #007faa } /* Name.Tag */ +html[data-theme="light"] .highlight .nv { color: #d91e18 } /* Name.Variable */ +html[data-theme="light"] .highlight .ow { color: #7928a1 } /* Operator.Word */ +html[data-theme="light"] .highlight .pm { color: #545454 } /* Punctuation.Marker */ +html[data-theme="light"] .highlight .w { color: #545454 } /* Text.Whitespace */ +html[data-theme="light"] .highlight .mb { color: #797129 } /* Literal.Number.Bin */ +html[data-theme="light"] .highlight .mf { color: #797129 } /* Literal.Number.Float */ +html[data-theme="light"] .highlight .mh { color: #797129 } /* Literal.Number.Hex */ +html[data-theme="light"] .highlight .mi { color: #797129 } /* Literal.Number.Integer */ +html[data-theme="light"] .highlight .mo { color: #797129 } /* Literal.Number.Oct */ +html[data-theme="light"] .highlight .sa { color: #008000 } /* Literal.String.Affix */ +html[data-theme="light"] .highlight .sb { color: #008000 } /* Literal.String.Backtick */ +html[data-theme="light"] .highlight .sc { color: #008000 } /* Literal.String.Char */ +html[data-theme="light"] .highlight .dl { color: #008000 } /* Literal.String.Delimiter */ +html[data-theme="light"] .highlight .sd { color: #008000 } /* Literal.String.Doc */ +html[data-theme="light"] .highlight .s2 { color: #008000 } /* Literal.String.Double */ +html[data-theme="light"] .highlight .se { color: #008000 } /* Literal.String.Escape */ +html[data-theme="light"] .highlight .sh { color: #008000 } /* Literal.String.Heredoc */ +html[data-theme="light"] .highlight .si { color: #008000 } /* Literal.String.Interpol */ +html[data-theme="light"] .highlight .sx { color: #008000 } /* Literal.String.Other */ +html[data-theme="light"] .highlight .sr { color: #d91e18 } /* Literal.String.Regex */ +html[data-theme="light"] .highlight .s1 { color: #008000 } /* Literal.String.Single */ +html[data-theme="light"] .highlight .ss { color: #007faa } /* Literal.String.Symbol */ +html[data-theme="light"] .highlight .bp { color: #797129 } /* Name.Builtin.Pseudo */ +html[data-theme="light"] .highlight .fm { color: #007faa } /* Name.Function.Magic */ +html[data-theme="light"] .highlight .vc { color: #d91e18 } /* Name.Variable.Class */ +html[data-theme="light"] .highlight .vg { color: #d91e18 } /* Name.Variable.Global */ +html[data-theme="light"] .highlight .vi { color: #d91e18 } /* Name.Variable.Instance */ +html[data-theme="light"] .highlight .vm { color: #797129 } /* Name.Variable.Magic */ +html[data-theme="light"] .highlight .il { color: #797129 } /* Literal.Number.Integer.Long */ +html[data-theme="dark"] .highlight pre { line-height: 125%; } +html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight .hll { background-color: #ffd9002e } +html[data-theme="dark"] .highlight { background: #2b2b2b; color: #f8f8f2 } +html[data-theme="dark"] .highlight .c { color: #ffd900 } /* Comment */ +html[data-theme="dark"] .highlight .err { color: #ffa07a } /* Error */ +html[data-theme="dark"] .highlight .k { color: #dcc6e0 } /* Keyword */ +html[data-theme="dark"] .highlight .l { color: #ffd900 } /* Literal */ +html[data-theme="dark"] .highlight .n { color: #f8f8f2 } /* Name */ +html[data-theme="dark"] .highlight .o { color: #abe338 } /* Operator */ +html[data-theme="dark"] .highlight .p { color: #f8f8f2 } /* Punctuation */ +html[data-theme="dark"] .highlight .ch { color: #ffd900 } /* Comment.Hashbang */ +html[data-theme="dark"] .highlight .cm { color: #ffd900 } /* Comment.Multiline */ +html[data-theme="dark"] .highlight .cp { color: #ffd900 } /* Comment.Preproc */ +html[data-theme="dark"] .highlight .cpf { color: #ffd900 } /* Comment.PreprocFile */ +html[data-theme="dark"] .highlight .c1 { color: #ffd900 } /* Comment.Single */ +html[data-theme="dark"] .highlight .cs { color: #ffd900 } /* Comment.Special */ +html[data-theme="dark"] .highlight .gd { color: #00e0e0 } /* Generic.Deleted */ +html[data-theme="dark"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="dark"] .highlight .gh { color: #00e0e0 } /* Generic.Heading */ +html[data-theme="dark"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="dark"] .highlight .gu { color: #00e0e0 } /* Generic.Subheading */ +html[data-theme="dark"] .highlight .kc { color: #dcc6e0 } /* Keyword.Constant */ +html[data-theme="dark"] .highlight .kd { color: #dcc6e0 } /* Keyword.Declaration */ +html[data-theme="dark"] .highlight .kn { color: #dcc6e0 } /* Keyword.Namespace */ +html[data-theme="dark"] .highlight .kp { color: #dcc6e0 } /* Keyword.Pseudo */ +html[data-theme="dark"] .highlight .kr { color: #dcc6e0 } /* Keyword.Reserved */ +html[data-theme="dark"] .highlight .kt { color: #ffd900 } /* Keyword.Type */ +html[data-theme="dark"] .highlight .ld { color: #ffd900 } /* Literal.Date */ +html[data-theme="dark"] .highlight .m { color: #ffd900 } /* Literal.Number */ +html[data-theme="dark"] .highlight .s { color: #abe338 } /* Literal.String */ +html[data-theme="dark"] .highlight .na { color: #ffd900 } /* Name.Attribute */ +html[data-theme="dark"] .highlight .nb { color: #ffd900 } /* Name.Builtin */ +html[data-theme="dark"] .highlight .nc { color: #00e0e0 } /* Name.Class */ +html[data-theme="dark"] .highlight .no { color: #00e0e0 } /* Name.Constant */ +html[data-theme="dark"] .highlight .nd { color: #ffd900 } /* Name.Decorator */ +html[data-theme="dark"] .highlight .ni { color: #abe338 } /* Name.Entity */ +html[data-theme="dark"] .highlight .ne { color: #dcc6e0 } /* Name.Exception */ +html[data-theme="dark"] .highlight .nf { color: #00e0e0 } /* Name.Function */ +html[data-theme="dark"] .highlight .nl { color: #ffd900 } /* Name.Label */ +html[data-theme="dark"] .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +html[data-theme="dark"] .highlight .nx { color: #f8f8f2 } /* Name.Other */ +html[data-theme="dark"] .highlight .py { color: #00e0e0 } /* Name.Property */ +html[data-theme="dark"] .highlight .nt { color: #00e0e0 } /* Name.Tag */ +html[data-theme="dark"] .highlight .nv { color: #ffa07a } /* Name.Variable */ +html[data-theme="dark"] .highlight .ow { color: #dcc6e0 } /* Operator.Word */ +html[data-theme="dark"] .highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */ +html[data-theme="dark"] .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +html[data-theme="dark"] .highlight .mb { color: #ffd900 } /* Literal.Number.Bin */ +html[data-theme="dark"] .highlight .mf { color: #ffd900 } /* Literal.Number.Float */ +html[data-theme="dark"] .highlight .mh { color: #ffd900 } /* Literal.Number.Hex */ +html[data-theme="dark"] .highlight .mi { color: #ffd900 } /* Literal.Number.Integer */ +html[data-theme="dark"] .highlight .mo { color: #ffd900 } /* Literal.Number.Oct */ +html[data-theme="dark"] .highlight .sa { color: #abe338 } /* Literal.String.Affix */ +html[data-theme="dark"] .highlight .sb { color: #abe338 } /* Literal.String.Backtick */ +html[data-theme="dark"] .highlight .sc { color: #abe338 } /* Literal.String.Char */ +html[data-theme="dark"] .highlight .dl { color: #abe338 } /* Literal.String.Delimiter */ +html[data-theme="dark"] .highlight .sd { color: #abe338 } /* Literal.String.Doc */ +html[data-theme="dark"] .highlight .s2 { color: #abe338 } /* Literal.String.Double */ +html[data-theme="dark"] .highlight .se { color: #abe338 } /* Literal.String.Escape */ +html[data-theme="dark"] .highlight .sh { color: #abe338 } /* Literal.String.Heredoc */ +html[data-theme="dark"] .highlight .si { color: #abe338 } /* Literal.String.Interpol */ +html[data-theme="dark"] .highlight .sx { color: #abe338 } /* Literal.String.Other */ +html[data-theme="dark"] .highlight .sr { color: #ffa07a } /* Literal.String.Regex */ +html[data-theme="dark"] .highlight .s1 { color: #abe338 } /* Literal.String.Single */ +html[data-theme="dark"] .highlight .ss { color: #00e0e0 } /* Literal.String.Symbol */ +html[data-theme="dark"] .highlight .bp { color: #ffd900 } /* Name.Builtin.Pseudo */ +html[data-theme="dark"] .highlight .fm { color: #00e0e0 } /* Name.Function.Magic */ +html[data-theme="dark"] .highlight .vc { color: #ffa07a } /* Name.Variable.Class */ +html[data-theme="dark"] .highlight .vg { color: #ffa07a } /* Name.Variable.Global */ +html[data-theme="dark"] .highlight .vi { color: #ffa07a } /* Name.Variable.Instance */ +html[data-theme="dark"] .highlight .vm { color: #ffd900 } /* Name.Variable.Magic */ html[data-theme="dark"] .highlight .il { color: #ffd900 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/sbt-webpack-macros.html b/_static/sbt-webpack-macros.html old mode 100755 new mode 100644 diff --git a/_static/scripts/bootstrap.js b/_static/scripts/bootstrap.js old mode 100755 new mode 100644 diff --git a/_static/scripts/bootstrap.js.LICENSE.txt b/_static/scripts/bootstrap.js.LICENSE.txt old mode 100755 new mode 100644 diff --git a/_static/scripts/bootstrap.js.map b/_static/scripts/bootstrap.js.map old mode 100755 new mode 100644 diff --git a/_static/scripts/pydata-sphinx-theme.js b/_static/scripts/pydata-sphinx-theme.js old mode 100755 new mode 100644 diff --git a/_static/scripts/pydata-sphinx-theme.js.map b/_static/scripts/pydata-sphinx-theme.js.map old mode 100755 new mode 100644 diff --git a/_static/scripts/sphinx-book-theme.js b/_static/scripts/sphinx-book-theme.js old mode 100755 new mode 100644 diff --git a/_static/scripts/sphinx-book-theme.js.map b/_static/scripts/sphinx-book-theme.js.map old mode 100755 new mode 100644 diff --git a/_static/searchtools.js b/_static/searchtools.js old mode 100755 new mode 100644 diff --git a/_static/sphinx-thebe.css b/_static/sphinx-thebe.css old mode 100755 new mode 100644 diff --git a/_static/sphinx-thebe.js b/_static/sphinx-thebe.js old mode 100755 new mode 100644 diff --git a/_static/styles/bootstrap.css b/_static/styles/bootstrap.css old mode 100755 new mode 100644 diff --git a/_static/styles/pydata-sphinx-theme.css b/_static/styles/pydata-sphinx-theme.css old mode 100755 new mode 100644 diff --git a/_static/styles/sphinx-book-theme.css b/_static/styles/sphinx-book-theme.css old mode 100755 new mode 100644 diff --git a/_static/styles/theme.css b/_static/styles/theme.css old mode 100755 new mode 100644 diff --git a/_static/togglebutton.css b/_static/togglebutton.css old mode 100755 new mode 100644 diff --git a/_static/togglebutton.js b/_static/togglebutton.js old mode 100755 new mode 100644 diff --git a/_static/underscore-1.13.1.js b/_static/underscore-1.13.1.js old mode 100755 new mode 100644 diff --git a/_static/underscore.js b/_static/underscore.js old mode 100755 new mode 100644 diff --git a/_static/vendor/fontawesome/6.1.2/LICENSE.txt b/_static/vendor/fontawesome/6.1.2/LICENSE.txt old mode 100755 new mode 100644 diff --git a/_static/vendor/fontawesome/6.1.2/css/all.min.css b/_static/vendor/fontawesome/6.1.2/css/all.min.css old mode 100755 new mode 100644 diff --git a/_static/vendor/fontawesome/6.1.2/js/all.min.js b/_static/vendor/fontawesome/6.1.2/js/all.min.js new file mode 100644 index 000000000..f504685da --- /dev/null +++ b/_static/vendor/fontawesome/6.1.2/js/all.min.js @@ -0,0 +1,2 @@ +/*! For license information please see all.min.js.LICENSE.txt */ +!function(){"use strict";var C={},c={};try{"undefined"!=typeof window&&(C=window),"undefined"!=typeof document&&(c=document)}catch(C){}var z=void 0===(s=(C.navigator||{}).userAgent)?"":s,l=C,e=c;function a(C,c){var z,l=Object.keys(C);return Object.getOwnPropertySymbols&&(z=Object.getOwnPropertySymbols(C),c&&(z=z.filter((function(c){return Object.getOwnPropertyDescriptor(C,c).enumerable}))),l.push.apply(l,z)),l}function M(C){for(var c=1;cC.length)&&(c=C.length);for(var z=0,l=new Array(c);zC.length)&&(c=C.length);for(var z=0,l=new Array(c);zC.length)&&(c=C.length);for(var z=0,l=new Array(c);zC.length)&&(c=C.length);for(var z=0,l=new Array(c);z>>0;z--;)c[z]=C[z];return c}function K(C){return C.classList?G(C.classList):(C.getAttribute("class")||"").split(" ").filter((function(C){return C}))}function $(C){return"".concat(C).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function J(C){return Object.keys(C||{}).reduce((function(c,z){return c+"".concat(z,": ").concat(C[z].trim(),";")}),"")}function Z(C){return C.size!==X.size||C.x!==X.x||C.y!==X.y||C.rotate!==X.rotate||C.flipX||C.flipY}function CC(){var C,c,z=u,l=F.familyPrefix,e=F.replacementClass,a=':host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Solid";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Regular";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Light";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Thin";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}';return"fa"===l&&e===z||(C=new RegExp("\\.".concat("fa","\\-"),"g"),c=new RegExp("\\--".concat("fa","\\-"),"g"),z=new RegExp("\\.".concat(z),"g"),a=a.replace(C,".".concat(l,"-")).replace(c,"--".concat(l,"-")).replace(z,".".concat(e))),a}var cC=!1;function zC(){F.autoAddCss&&!cC&&(function(C){if(C&&v){var c=n.createElement("style");c.setAttribute("type","text/css"),c.innerHTML=C;for(var z=n.head.childNodes,l=null,e=z.length-1;-1").concat(e.map(LC).join(""),"")}function VC(C,c,z){if(C&&C[c]&&C[c][z])return{prefix:c,iconName:z,icon:C[c][z]}}function HC(C,c,z,l){for(var e,a,M=Object.keys(C),L=M.length,V=void 0!==l?tC(c,l):c,H=void 0===z?(e=1,C[M[0]]):(e=0,z);e - - - - - - - - - About :) — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

About :)

- -
-
- -
-
-
- - - - -
- -
-

About :)#

-

This QGIS training is made by people who believe GIS can help humanitarians to serve people in need better. ❤️ -The idea for this training platform originated from a group of people from the German Red Cross, British Red Cross and Netherlands Red Cross. 💡📣 -A group of dedicated student assistants and employees of the Heidelberg Institute for Geoinformation Technology (HeiGIT) are working to put together the materials on this platform. 🔨

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + About :) — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

About :)

+ +
+
+ +
+
+
+ + + + +
+ +
+

About :)#

+

This QGIS training is made by people who believe GIS can help humanitarians to serve people in need better. ❤️ +The idea for this training platform originated from a group of people from the German Red Cross, British Red Cross and Netherlands Red Cross. 💡📣 +A group of dedicated student assistants and employees of the Heidelberg Institute for Geoinformation Technology (HeiGIT) are working to put together the materials on this platform. 🔨

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Glossary/en_glossary_1.html b/content/Glossary/en_glossary_1.html old mode 100755 new mode 100644 index 47024f69b..3733ca46d --- a/content/Glossary/en_glossary_1.html +++ b/content/Glossary/en_glossary_1.html @@ -1,552 +1,557 @@ - - - - - - - - - - - - Glossary — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Glossary

- -
-
- -
-
-
- - - - -
- -
-

Glossary#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Glossary — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Glossary

+ +
+
+ +
+
+
+ + + + +
+ +
+

Glossary#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/ModuL_6/en_qgis_data_analysis_theorie.html b/content/ModuL_6/en_qgis_data_analysis_theorie.html old mode 100755 new mode 100644 index 206c8685b..84e66a2e7 --- a/content/ModuL_6/en_qgis_data_analysis_theorie.html +++ b/content/ModuL_6/en_qgis_data_analysis_theorie.html @@ -1,546 +1,551 @@ - - - - - - - - - - - - Data analysis theorie — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Data analysis theorie

- -
-
- -
-
-
- - - - -
- -
-

Data analysis theorie#

-

Competences:

-
    -
  • General understanding of data/spatial analysis

  • -
-
- - - - -
- - - - -
- -
- -
-
-
- -
- -
- -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Data analysis theorie — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Data analysis theorie

+ +
+
+ +
+
+
+ + + + +
+ +
+

Data analysis theorie#

+

Competences:

+
    +
  • General understanding of data/spatial analysis

  • +
+
+ + + + +
+ + + + +
+ +
+ +
+
+
+ +
+ +
+ +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_1/en_gis_theorie.html b/content/Modul_1/en_gis_theorie.html old mode 100755 new mode 100644 index e912b032a..1a10c6a17 --- a/content/Modul_1/en_gis_theorie.html +++ b/content/Modul_1/en_gis_theorie.html @@ -1,973 +1,1315 @@ - - - - - - - - - - - - What is GIS? (Theory) — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

What is GIS? (Theory)#

-
-

General Information:#

-
    -
  • A Geographic Information System (GIS) is a digital system that connects data to maps.

  • -
  • Geoinformatics in general focus on the visualisation, organisation and processing of spatial data.

  • -
  • Spatial analyses furthermore allow to reveal circumstances and connections between spatial data features:

    -
      -
    • by making use of their spatial location, information layers (or features within a layer) can be analyzed in regard to each other to obtain new information.

    • -
    -
  • -
-
-
-

Why are Spatial Analyses important?#

-
-

Note

-

Discuss in groups:

-
-
    -
  • Situations in which you benefitted from spatial analyses.

  • -
  • Situations in which you could may be have benefitted from spatial analyses.

  • -
  • Main areas where you see potential for spatial analyses in your work.

  • -
-
-
-

Introduction to GIS:#

-
-

We use GIS for:#

-
    -
  • Creating interactive queries (Querying)

  • -
  • Analysing spatial information (Spatial analysis)

  • -
  • Editing and visualizing data in maps (Editing)

  • -
  • Present the results of all these operations (Map making)

  • -
-
-
-

GIS in Humanitarian Responses#

-

GIS has many applications in the humanitarian field:

-
    -
  • Refugee/IDP camp planning

  • -
  • Mapping remote areas to facilitate access

  • -
  • Keep track of field operations

  • -
  • Support security decisions

  • -
  • Support operations planning

  • -
  • Identify areas most affected by disasters

  • -
-
-

Tip

-

A few examples:

-
- -
-
-
-

A Galaxy of Tools#

-

GIS comes with a galaxy of tools that are constantly evolving. An increasing number of traditional tools are now capable of supporting geographic information (Excel, Power BI, Adobe Illustrator…)

-
-

An Overview:#

-
    -
  • Mobile Data Collection Tools

  • -
-

The latter make it possible to collect data via mobile or tablet, and often to visualize and exchange it with other platforms according to a common format.

-
    -
  • Mapping Tools

  • -
-

These tools provide a simple vizualisation of geographic data, and allow for the production of maps.

-
    -
  • GIS Tools

  • -
-

As opposed to the previous ones, these more advanced tools are very comprehensive and allow for advanced analyses to be carried out on the geographical components of data.

-
    -
  • Webmapping Tools

  • -
-

These tools make it possible to manipulate and create maps online in a very simple way directly in a web browser.

-
-
-
-

Paper Maps and Cartography#

-
-

What is Spatial Analysis?#

-
    -
  • Spatial analysis studies entities and events using their topological, geometric, or geographic properties.

  • -
  • It includes a variety of techniques to analyse geographic data.

  • -
  • Data can be added to a map as layers and they can interact with each other.

  • -
  • GIS enables you to work with these layers to explore critically important questions and find answers to those questions.

  • -
-
-

An Example from the Past: John Snows’ Cholera Map#

-

In 1854 an outbreak of cholera occurred in London, England. The most common theory was that the disease was spread through the air. Dr.John Snow believed that the danger was in the water. He made a map to analyse the number of deaths in Soho per house block. He added the location of water pumps on the map. -He found a correlation between one specific water pump and the number of infections.

-

Dr. Snow’s map of the Cholera outbreak of 1854, and the reports that it accompanied, won over the predominant “Miasma Theory” that the disease was spread through the air. Residents were now warned to boil their water, and so ended the last Cholera outbreak London has seen.

-

John Snows' Map John Snows’ Map

-

Using GIS, several measures of spatial central tendency have been applied to the dataset, revealing that the Spatial Mean (the geographic center of the distribution of deaths) of the outbreak lies within 35 meters of the Broad Street Pump, identified as the source of contamination in the 1854 outbreak.

-
-

Tip

-

Further information:

-
- -
-
-
-
-

GIS vs Cartography#

-
    -
  • Cartography is the study and practice of making maps.

  • -
  • A GIS is a modern extension of traditional cartography.

  • -
  • Both contain examples of a base map to which additional data can be added.

  • -
  • The differences are that there is no limit to the amount of additional data that can be added to a GIS map.

  • -
  • Cartographic maps are often extremely simplified as there are limits to the amount of data that can be physically and meaningfully stored on a small map.

  • -
  • GIS uses analysis and statistics to present data in support of particular arguments which a cartographic map cannot do.

  • -
  • You can use GIS for cartography.

  • -
-

-

GIS vs Cartography GIS vs Cartography

-
-

General Reference Maps#

-
    -
  • Show important physical features of an area

  • -
  • Include natural and man-made features

  • -
  • Usually meant to help for navigation or discovery of locations

  • -
  • Usually fairly simple

  • -
  • Can be stylized based on the intended audience

  • -
-

-

Reference map of Iraq Reference map of Iraq

-
-
-

Infrastructure Maps#

-
    -
  • Display relevant features and structures in a specific area

  • -
  • Help planning and navigation

  • -
  • High level of detail

  • -
  • Produced after field data collection

  • -
-

-

Infrastructure map of Nigeria -Infrastructure map of Nigeria

-
-
-

Thematic Maps#

-
    -
  • Focus on a specific theme or subject

  • -
  • Features on the map represent the subject being mapped

  • -
  • Use colours and shapes to display quantitative and qualitative data

  • -
  • Rise awareness about a specific subject

  • -
-

-

Thematic map of Africa Thematic map of Africa

-
-
-

Analysis Maps#

-
    -
  • Analyse data in respect to their geographic location

  • -
  • Create new layers of information from the interaction between multiple features

  • -
  • Use colours and shapes to help users understand specific events

  • -
  • Support decision makers

  • -
  • Generally display a greater level of detail

  • -
-

-

Analysis map of Yemen Analysis map of Yemen

-
-
-

Situation/Descriptive Maps#

-
    -
  • Used to better visualize a specific ongoing and/or past situation

  • -
  • Maps can include narrative and graphic elements

  • -
  • Can be used in reports and/or to raise awareness on a specific event

  • -
-

-

Situation map from Tilkaif to MosulSituation map from Tilkaif to Mosul

-
-
-
-

Web GIS platforms#

-
-

GIS Applications#

-
    -
  • You can use GIS through multiple applications, from desktop software, to online platforms, to mobile apps.

  • -
  • At a basic level, you can perform limited geospatial tasks with apps such as Google Earth or Google Maps.

  • -
  • As a GIS professional, you will mostly use a desktop software, which could be either: Proprietary or Open source.

  • -
  • Open Street Maps (OSM): -https://www.openstreetmap.org/#map=14/49.4192/8.7235 -An open geographic database updated and maintained by a community of volunteers via open collaboration. It works using a tag system (each feature is categorized through tags).

  • -
  • uMap: https://umap.openstreetmap.fr/en/ -Online tool to create maps using OSM layers.

  • -
  • Felt: https://felt.com/ -An easy tool to create maps. You can draw, create feature and upload shapefiles.

  • -
  • Wikimapia: https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w -Online editable map service. Updated and maintained by contributors all over the world. It uses local knowledge, making it particularly useful in remote areas.

  • -
  • Google Maps: https://www.google.com/maps/d/ -Limited, but it allows to upload layers, create and export features, share simple maps.

  • -
-
-
-

Geo Mobile Apps Overview (General Understanding)#

-
    -
  • Qfield: https://docs.qfield.org/ -Through QFieldCloud, you can open your QGIS projects on Qfield on your mobile device. Any edit made on the map in the app can then be synced and displayed in QGIS.

  • -
  • OsmAnd: https://osmand.net/ -Using OSM basemap, it’s a good app for offline navigation. You can upload kml-files to display on the map, as well as recording your trips and then export them to kml.

  • -
  • GeoODK: http://geoodk.com/index.html -Combines ODK with a geo app. You can collect data through ODK surveys and display them on a map, in addition to easily create polygons and add information to them.

  • -
-

-
-
-
-

Non-Spatial Analyses in QGIS#

-
-

Geoprocessing Tools - Overview and Selection#

-

Geoprocessing icons

-

Geoprocessing tools

-
-

Tip

-

Example for a clip:

-
-

Creates a selection based on the spatial relationship between each feature in the input layer and the features in an additional layer.

-

Step by step:

-
    -
  • Input Layer: Layer from which the selection is clipped

  • -
  • Overlay Layer: Area of interest that the input layer will be clipped to

  • -
-

-

Clip

-
-

Tip

-

Example for a buffer:

-
-
    -
  • Computes (a) buffer area(s) for all the features in an input layer, using a specified distance

  • -
-

Step by step:

-
    -
  • Input Layer: Layer around which features the buffer(s) are to be created

  • -
  • Distance: Choose a value and unit (make sure that your input data is projected)

  • -
  • Segments: Add value

  • -
  • Mark „Dissolve result“ to automatically dissolve the buffer outputs

  • -
  • If individual buffers are needed, leave blank

  • -
-

-

Buffer

-
-

Tip

-

Examples for buffer usage:

-
-

Philippines: Taal Volcano, Base surge hazard map -https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg

-

Taal Volcano

-

Nepal: Earthquake, april 2015 -https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf

-

Nepal Earthquake

-

Fukushima: may 2011, Integrated doce results
-https://www.emsics.com/five-years-fukushima-incident-management-considerations/

-

Aerial measuring results

-
-
-

Buffer: with and without “Dissolve”#

-

With dissolve results:

-

With dissolve results

-

Without dissolve results:

-

Without dissolve results

-
-
-
-

Non-Spatial Joins in QGIS#

-
    -
  • Choose “Join Attributes by Field Value” Tool (use search tool):

  • -
  • Adds attributes of a non-spatial table to the layer

  • -
  • Enables join using a field/column that is present in both data sets

  • -
-

Step by step:

-
    -
  • Input layer: Vector layer

  • -
  • Table field: Field/ column that exists in both data sets (name of column in vector layer)

  • -
  • Input layer 2: Text/csv/xls data

  • -
  • Table field 2: Field/ column that exists in both data sets (name of column in text/csv/xls)

  • -
  • Join type: Select „Take attributes of the first matching feature only (one-to-one)“.

  • -
  • Define output layer name and destination or leave at temporary layer

  • -
-

-

Join attributes by field value

-
-

Tip

-

Hint

-
-

If a table join does not work via the “Join Attributes by Field Value” tool, a join can also be performed via the layer properties (right-click, Properties) under the Join tab.

-

-

Add vector join

-
-
-

Spatial Joins in QGIS#

-

Choose “Join Attributes by Location” Tool:

-
    -
  • Adds additional attributes of the join layer to the input layer based on the spatial relationship

  • -
  • Input Layer: Dataset you want to enrich

  • -
  • Join layer: Dataset with additional information/attributes -(you can specify which fields of the join layer should be added)

  • -
-

-

Spatial joins

-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + What is GIS? (Theory) — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ + + +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

What is GIS? (Theory)#

+
+

General information:#

+
    +
  • Geoinformatics in general focus on the visualisation, organisation and processing of spatial data.

  • +
  • Spatial analyses furthermore allow to reveal circumstances and connections between spatial data features:

    +
      +
    • by making use of their spatial location, information layers (or features within a layer) can be analyzed in regard to each other to obtain new information.

    • +
    +
  • +
+
+
+

Why are spatial analyses important?#

+
+

Note

+

Discuss in groups:

+
+
    +
  • Situations in which you benefitted from spatial analyses.

  • +
  • Situations in which you could may be have benefitted from spatial analyses.

  • +
  • Main areas where you see potential for spatial analyses in your work.

  • +
+
+
+

Introduction to GIS:#

+
+

An informal definition#

+
    +
  • Geographic Information System (GIS) uses maps to show complex information clearly and efficiently.

  • +
  • For example, in an emergency context, GIS can be used to visualize on a map what is happening, where, how many people are affected, and what their main needs are.

  • +
  • It can help to summarize information from many different sources.

  • +
  • This helps peoples to quickly understand the situation and make better informed decisions.

  • +
+
+
+

A formal definition#

+
    +
  • A Geographic Information System (GIS) is a digital system that connects data to maps.

  • +
  • It allows us to collect, manage, analyse, and visualise data assigning them a position on Earth’s surface.

  • +
  • GIS reveals deeper insights into data, clearly demonstrating patterns and helping us to understand geographic context.

  • +
  • Benefits include more insightful analysis, improved communication, and ultimately better evidence-based decision-making.

  • +
  • It’s rooted in geography, the field of science devoted to the study of the lands, features, inhabitants, and phenomena of the Earth.

  • +
  • GIS software can display multiple types of data on a map.

  • +
+
+
+

GIS components#

+
    +
  • Hardware

  • +
  • Software

  • +
  • Data

  • +
  • People

  • +
  • Workflows

  • +
+
+
+

We use GIS for:#

+
    +
  • Creating interactive queries (Querying)

  • +
  • Analysing spatial information (Spatial analysis)

  • +
  • Editing and visualizing data in maps (Editing)

  • +
  • Present the results of all these operations (Map making)

  • +
+
+
+

GIS in humanitarian responses#

+

GIS has many applications in the humanitarian field:

+
    +
  • Refugee/IDP camp planning

  • +
  • Mapping remote areas to facilitate access

  • +
  • Keep track of field operations

  • +
  • Support security decisions

  • +
  • Support operations planning

  • +
  • Identify areas most affected by disasters

  • +
+
+

Tip

+

A few examples:

+
+ +
+
+
+
+

Paper maps and cartography#

+
+

What is spatial analysis?#

+
    +
  • Spatial analysis studies entities and events using their topological, geometric, or geographic properties.

  • +
  • It includes a variety of techniques to analyse geographic data.

  • +
  • Data can be added to a map as layers and they can interact with each other.

  • +
  • GIS enables you to work with these layers to explore critically important questions and find answers to those questions.

  • +
+
+
+

An example from the past: John Snow’s Cholera map#

+

In 1854 an outbreak of cholera occurred in London, England. The most common theory was that the disease was spread through the air. Dr.John Snow believed that the danger was in the water. He made a map to analyse the number of deaths in Soho per house block. He added the location of water pumps on the map. +He found a correlation between one specific water pump and the number of infections.

+
+

Tip

+

Example:

+
+ +
+
+

GIS vs Cartography#

+
    +
  • Cartography is the study and practice of making maps.

  • +
  • A GIS is a modern extension of traditional cartography.

  • +
  • Both contain examples of a base map to which additional data can be added.

  • +
  • The differences are that there is no limit to the amount of additional data that can be added to a GIS map.

  • +
  • Cartographic maps are often extremely simplified as there are limits to the amount of data that can be physically and meaningfully stored on a small map.

  • +
  • GIS uses analysis and statistics to present data in support of particular arguments which a cartographic map cannot do.

  • +
  • You can use GIS for cartography.

  • +
+

+

GIS vs Cartography GIS vs Cartography

+
+
+

General reference maps#

+
    +
  • Show important physical features of an area

  • +
  • Include natural and man-made features

  • +
  • Usually meant to help for navigation or discovery of locations

  • +
  • Usually fairly simple

  • +
  • Can be stylized based on the intended audience

  • +
+

+

Reference map of Iraq Reference map of Iraq

+
+
+

Infrastructure maps#

+
    +
  • Display relevant features and structures in a specific area

  • +
  • Help planning and navigation

  • +
  • High level of detail

  • +
  • Produced after field data collection

  • +
+

+

Infrastructure map of Nigeria +Infrastructure map of Nigeria

+
+
+

Thematic maps#

+
    +
  • Focus on a specific theme or subject

  • +
  • Features on the map represent the subject being mapped

  • +
  • Use colours and shapes to display quantitative and qualitative data

  • +
  • Rise awareness about a specific subject

  • +
+

+

Thematic map of Africa Thematic map of Africa

+
+
+

Analysis maps#

+
    +
  • Analyse data in respect to their geographic location

  • +
  • Create new layers of information from the interaction between multiple features

  • +
  • Use colours and shapes to help users understand specific events

  • +
  • Support decision makers

  • +
  • Generally display a greater level of detail

  • +
+

+

Analysis map of Yemen Analysis map of Yemen

+
+
+

Situation/Descriptive maps#

+
    +
  • Used to better visualize a specific ongoing and/or past situation

  • +
  • Maps can include narrative and graphic elements

  • +
  • Can be used in reports and/or to raise awareness on a specific event

  • +
+

+

Situation map from Tilkaif to MosulSituation map from Tilkaif to Mosul

+
+
+

Mapping and GIS#

+
    +
  • Mapping focuses on representing spatial phenomena statically (paper formats) or dynamically (web formats) It is a major component of GIS.

  • +
  • Geographic Information Systems refer to a set of systems related to the processing of geographic information (spatial data) GIS have their own unique software capable of storing, processing, representing and analysing geographical data.

  • +
+

+

Structure GIS System Structure GIS System

+

Data behind the Map Data behind the Map

+

Mapping and GIS - Spreadsheet Mapping and GIS-Spreadsheet

+

Graphic information Graphic information

+

For further information have a look here:

+

Share link:

+

PDF documentation Mapping and GIS, p. 6 - 10

+ +Mapping and GIS, p. 6 - 10 +
+
+

Examples for GIS created maps#

+
The battle against Malaria - Burundi -- Coordination in camps - Bangladesh
+
+
+
+

Malaria#

+
    +
  • A fatal, mosquito-borne (vector) disease, killing over 620,000 people in 2020 (WHO).

  • +
+
+
+

The battle against Malaria#

+

2 methods for the control of vector-borne diseases

+
    +
  • Use of insecticide-treated nets

  • +
  • Insecticides for indoor residual spraying

  • +
+
+
+

Indoor Residual Spraying (IRS)#

+

This involves spraying the inside of houses, usually once or twice a year. However, in order to obtain significant community protection, a high level of coverage is required. IRS provides community protection when at least 85% of homes in a targeted area are sprayed.

+
+
+

Gis for coordination in the camps#

+
    +
  • The mega refugee camp in Bangladesh in 2018

  • +
  • Navigational aid: +to help field teams move around in such a huge camp without getting lost

  • +
  • Planning support: +Population estimate, distribution of tents and infrastructure, risk assessment, …

  • +
+

Share link:

+

For further information have a look here:

+

PDF documentation Examples for GIS created maps, p. 45 - 53

+

Examples for GIS created maps, p. 45 - 53

+
+

Tip

+

Some more examples:

+
+

The examples presented below illustrate some more map productions by indentiying the need, software, key steps and deliverables associated with them. They are not exhaustive but allow to have a vision of the different possibilities of cartographic rendering through different requests and various tools discussed in the toolbox.

+ +

For further information have a look here:

+

Share link:

+

PDF documentation Mobilizing mapping and GIS

+

Mobilizing mapping and GIS

+
+
+
+
+

Web GIS platforms#

+
+

GIS Applications#

+
    +
  • You can use GIS through multiple applications, from desktop software, to online platforms, to mobile apps.

  • +
  • At a basic level, you can perform limited geospatial tasks with apps such as Google Earth or Google Maps.

  • +
  • As a GIS professional, you will mostly use a desktop software, which could be either: Proprietary or Open source.

  • +
  • Open Street Maps (OSM): +https://www.openstreetmap.org/#map=14/49.4192/8.7235 +An open geographic database updated and maintained by a community of volunteers via open collaboration. It works using a tag system (each feature is categorized through tags).

  • +
  • uMap: https://umap.openstreetmap.fr/en/ +Online tool to create maps using OSM layers.

  • +
  • Felt: https://felt.com/ +An easy tool to create maps. You can draw, create feature and upload shapefiles.

  • +
  • Wikimapia: https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w +Online editable map service. Updated and maintained by contributors all over the world. It uses local knowledge, making it particularly useful in remote areas.

  • +
  • Google Maps: https://www.google.com/maps/d/ +Limited, but it allows to upload layers, create and export features, share simple maps.

  • +
+
+
+

Geo mobile apps#

+
    +
  • Qfield: https://docs.qfield.org/ +Through QFieldCloud, you can open your QGIS projects on Qfield on your mobile device. Any edit made on the map in the app can then be synced and displayed in QGIS.

  • +
  • OsmAnd: https://osmand.net/. +Using OSM basemap, it’s a good app for offline navigation. You can upload kml-files to display on the map, as well as recording your trips and then export them to kml.

  • +
  • GeoODK: http://geoodk.com/index.html +Combines ODK with a geo app. You can collect data through ODK surveys and display them on a map, in addition to easily create polygons and add information to them.

  • +
+

See also:

+

Share link:

+

PDF documentation Webmapping tools

+

Webmapping tools

+
+
+
+

Geo Mobile Apps overview (general understanding)#

+
+

Why are spatial analyses so important?#

+
+

Tip

+

Discuss in groups:

+
+
    +
  • Situations in which you benefitted from spatial analyses

  • +
  • Situations in which you could maybe have benefitted from spatial analyses

  • +
  • Main areas where you see potential for spatial analyses in your work

  • +
+
+
+

Spatial analyses in QGIS#

+
+

Manual selection of features in QGIS#

+
    +
  • Click on the respective features directly in the map: Selection when highlighted in the map and in the attribute table

  • +
  • Select feature by polygon: Choose „Select feature by polygon“ tool and draw a polygon around the feature of interest

  • +
+

+

Select Feature

+
+
+

Save selection (same for all selection types)#

+
    +
  • Save selected features as new layer/ file:

    +
      +
    • Right click on layer, choose „Export“ and „Save selected features as… “

    • +
    • Choose location where the data should be saved in,

    • +
    • Make sure that the mark at „Save only selected features“ is set

    • +
    +
  • +
+

+

Save vector layer

+
+
+

Select by Location Tool#

+
    +
  • Select all features that meet one or more criteria with regard to a spatial reference

  • +
+

+

Select by location

+
    +
  • All features that meet one or more criteria with regard to a spatial reference

    +
      +
    • Example: Select all features in the Dakar and Thies region.

    • +
    +
  • +
+

Step by step:

+
    +
  • Select features from input layer (in example select “healthsites”)

  • +
  • Check all geometric predicates that are relevant

  • +
  • Select second input layer (in example “Dakar_Thies”)

  • +
  • Create new selection

  • +
+

+

Research tools

+

Combination of spatial queries by choosing in dropdown menu („Modify current selection by“, if multiple selections are conducted in a row)

+
    +
  • Adding to current selection (OR)

    +
      +
    • Example: To identify and select all features that meet only one of the selected criteria

    • +
    +
  • +
  • Selecting within current selection (AND)

    +
      +
    • Example: To identify and select all features that meet all of the selected criteria

    • +
    +
  • +
  • Remove from current selection (AND NOT)

    +
      +
    • Example: To identify and select all features that meet one of the selected criteria but not the other

    • +
    +
  • +
+
+
+
+

Non-Spatial Analyses in QGIS#

+
+

Manual selection:#

+
    +
  • Clicking on the respective features directly in the attribute table:

  • +
+

Selection attribute table

+

region indication

+
+
+

Select feature by expression:#

+
    +
  • Open the attribute table and open the „Select features using an expression“ window:

  • +
+

+

Select features using an expression

+
    +
  • Different kinds of operators to choose from: +Arithmetic operators: >, < , =, !=

    +
      +
    • Example: Select all health facilities in Senegal which have more than one nurse as staff.

    • +
    +
  • +
+

Step by step:

+
    +
  • Under “Fields and Values”: Select column name “staff_nurs”

  • +
  • Under “Operators”: Select ”>“

  • +
  • Under “Fields and Values”: Click again on selected column name to see all unique values (right bottom, click on “All Unique”)

  • +
  • Select the respective unique value (here: ‘1’)

  • +
  • Click on “Select features”

  • +
+

+

Select by expression

+
    +
  • Different kinds of operators to choose from: +String operators:

    +
      +
    • For example “LIKE“: Select all health facilities that are doctors

    • +
    +
  • +
+

Step by step:

+
    +
  • Under “Fields and Values”: Select column name “amenity”

  • +
  • Unser “Operators”: Select ”LIKE“

  • +
  • Under “Fields and Values”: Click again on selected column name to see all unique values (right bottom, click on “All Unique”)

  • +
  • Select the respective unique value (here: ‘doctors’)

  • +
  • Click on “Select features”

  • +
+

+

Select by unique value

+
    +
  • Different kinds of operators to choose from: +Logical operators: “AND“ and “OR“ → Enable to combine different queries/criteria

  • +
+

+

Logical operators

+
+
+
+

Table Functions#

+

Similar to what you can do in a spreadsheet.

+
    +
  • Create Field: add a new attribute and manually insert values

  • +
  • Delete Field: remove attributes that are redundant or attributes you will not work with

  • +
  • Calculate Field: e.g. calculate new attribute population density

  • +
+

+

Table fields

+
+

Table Functions - Delete Fields#

+

Step by step:

+
    +
  • Start edit mode

  • +
  • Click on delete fields button

  • +
  • Save and stop edit mode

  • +
+

+

Delete table fields

+

Delete table fields table display

+
+
+

Table Functions - Field Calculator#

+
    +
  • Calculate area in square meters first and then divide by 1,000,000 to get square kilometers

  • +
  • Calculate population density as people per square kilometer

  • +
+

+

Field calculator view a

+

Field calculator view b

+

Field calculator view c

+

Geoprocessing Tools (Selection) in QGIS

+
+
+
+

Geoprocessing Tools - Overview#

+

Geoprocessing icons

+

Geoprocessing tools

+
+

Tip

+

Example for a clip:

+
+

Creates a selection based on the spatial relationship between each feature in the input layer and the features in an additional layer.

+

Step by step:

+
    +
  • Input Layer: Layer from which the selection is clipped

  • +
  • Overlay Layer: Area of interest that the input layer will be clipped to

  • +
+

+

Clip

+
+

Tip

+

Example for a buffer:

+
+
    +
  • Computes (a) buffer area(s) for all the features in an input layer, using a specified distance

  • +
+

Step by step:

+
    +
  • Input Layer: Layer around which features the buffer(s) are to be created

  • +
  • Distance: Choose a value and unit (make sure that your input data is projected)

  • +
  • Segments: Add value

  • +
  • Mark „Dissolve result“ to automatically dissolve the buffer outputs

  • +
  • If individual buffers are needed, leave blank

  • +
+

+

Buffer

+
+

Tip

+

Examples for buffer usage:

+
+

Philippines: Taal Volcano, Base surge hazard map +https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg

+

Taal Volcano

+

Nepal: Earthquake, april 2015 +https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf

+

Nepal Earthquake

+

Fukushima: may 2011, Integrated doce results
+https://www.emsics.com/five-years-fukushima-incident-management-considerations/

+

Aerial measuring results

+
+
+

Buffer: with and without “dissolve”#

+

With dissolve results:

+

With dissolve results

+

Without dissolve results:

+

Without dissolve results

+
+
+

Non-Spatial Joins in QGIS#

+
    +
  • Choose “Join Attributes by Field Value” Tool (use search tool):

  • +
  • Adds attributes of a non-spatial table to the layer

  • +
  • Enables join using a field/column that is present in both data sets

  • +
+

Step by step:

+
    +
  • Input layer: Vector layer

  • +
  • Table field: Field/ column that exists in both data sets (name of column in vector layer)

  • +
  • Input layer 2: Text/csv/xls data

  • +
  • Table field 2: Field/ column that exists in both data sets (name of column in text/csv/xls)

  • +
  • Join type: Select „Take attributes of the first matching feature only (one-to-one)“.

  • +
  • Define output layer name and destination or leave at temporary layer

  • +
+

+

Join attributes by field value

+
+

Tip

+

Hint

+
+

If a table join does not work via the “Join Attributes by Field Value” tool, a join can also be performed via the layer properties (right-click, Properties) under the Join tab.

+

+

Add vector join

+
+
+

Spatial Joins in QGIS#

+

Choose “Join Attributes by Location” Tool:

+
    +
  • Adds additional attributes of the join layer to the input layer based on the spatial relationship

  • +
  • Input Layer: Dataset you want to enrich

  • +
  • Join layer: Dataset with additional information/attributes +(you can specify which fields of the join layer should be added)

  • +
+

+

Spatial joins

+
+
+

A galaxy of tools#

+

GIS comes with a galaxy of tools that are constantly evolving. An increasing number of traditional tools are now capable of supporting geographic information (Excel, Power BI, Adobe Illustrator…)

+
+

An overview:#

+
    +
  • Mobile data collection tools

  • +
+

The latter make it possible to collect data via mobile or tablet, and often to visualize and exchange it with other platforms according to a common format.

+
    +
  • Mapping tools

  • +
+

These tools provide a simple vizualisation of geographic data, and allow for the production of maps.

+
    +
  • GIS tools

  • +
+

As opposed to the previous ones, these more advanced tools are very comprehensive and allow for advanced analyses to be carried out on the geographical components of data.

+
    +
  • Webmapping tools

  • +
+

These tools make it possible to manipulate and create maps online in a very simple way directly in a web browser.

+

For further detalied information have a look here:

+

Share link:

+

PDF documentation GIS-related tools, p. 36 -41

+

GIS-related tools, p. 36 -41

+
+
+
+
+
+ + + + +
+ + + + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_1/en_qgis_fuer_johannes.html b/content/Modul_1/en_qgis_fuer_johannes.html deleted file mode 100755 index 6457ea769..000000000 --- a/content/Modul_1/en_qgis_fuer_johannes.html +++ /dev/null @@ -1,674 +0,0 @@ - - - - - - - - - - - - Non-Spatial Analyses in QGIS — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Non-Spatial Analyses in QGIS#

-
-

Geoprocessing Tools - Overview and Selection#

-

Geoprocessing icons

-

Geoprocessing tools

-
-

Tip

-

Example for a clip:

-
-

Creates a selection based on the spatial relationship between each feature in the input layer and the features in an additional layer.

-

Step by step:

-
    -
  • Input Layer: Layer from which the selection is clipped

  • -
  • Overlay Layer: Area of interest that the input layer will be clipped to

  • -
-

-

Clip

-
-

Tip

-

Example for a buffer:

-
-
    -
  • Computes (a) buffer area(s) for all the features in an input layer, using a specified distance

  • -
-

Step by step:

-
    -
  • Input Layer: Layer around which features the buffer(s) are to be created

  • -
  • Distance: Choose a value and unit (make sure that your input data is projected)

  • -
  • Segments: Add value

  • -
  • Mark „Dissolve result“ to automatically dissolve the buffer outputs

  • -
  • If individual buffers are needed, leave blank

  • -
-

-

Buffer

-
-

Tip

-

Examples for buffer usage:

-
-

Philippines: Taal Volcano, Base surge hazard map -https://www.phivolcs.dost.gov.ph/vault/1BaseSurge_Layout-Jan2020_A0_v5.jpg

-

Taal Volcano

-

Nepal: Earthquake, april 2015 -https://reliefweb.int/sites/reliefweb.int/files/resources/reach_npl_map_earthquakeaffected_27apr2015_a3.pdf

-

Nepal Earthquake

-

Fukushima: may 2011, Integrated doce results
-https://www.emsics.com/five-years-fukushima-incident-management-considerations/

-

Aerial measuring results

-
-
-

Buffer: with and without “Dissolve”#

-

With dissolve results:

-

With dissolve results

-

Without dissolve results:

-

Without dissolve results

-
-
-
-

Non-Spatial Joins in QGIS#

-
    -
  • Choose “Join Attributes by Field Value” Tool (use search tool):

  • -
  • Adds attributes of a non-spatial table to the layer

  • -
  • Enables join using a field/column that is present in both data sets

  • -
-

Step by step:

-
    -
  • Input layer: Vector layer

  • -
  • Table field: Field/ column that exists in both data sets (name of column in vector layer)

  • -
  • Input layer 2: Text/csv/xls data

  • -
  • Table field 2: Field/ column that exists in both data sets (name of column in text/csv/xls)

  • -
  • Join type: Select „Take attributes of the first matching feature only (one-to-one)“.

  • -
  • Define output layer name and destination or leave at temporary layer

  • -
-

-

Join attributes by field value

-
-

Tip

-

Hint

-
-

If a table join does not work via the “Join Attributes by Field Value” tool, a join can also be performed via the layer properties (right-click, Properties) under the Join tab.

-

-

Add vector join

-
-
-

Spatial Joins in QGIS#

-

Choose “Join Attributes by Location” Tool:

-
    -
  • Adds additional attributes of the join layer to the input layer based on the spatial relationship

  • -
  • Input Layer: Dataset you want to enrich

  • -
  • Join layer: Dataset with additional information/attributes -(you can specify which fields of the join layer should be added)

  • -
-

-

Spatial joins

-
- - - - -
- - - - -
- -
- -
-
-
- -
- -
- -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- - \ No newline at end of file diff --git a/content/Modul_1/en_qgis_installation.html b/content/Modul_1/en_qgis_installation.html old mode 100755 new mode 100644 index 88b8ff364..7a38b1235 --- a/content/Modul_1/en_qgis_installation.html +++ b/content/Modul_1/en_qgis_installation.html @@ -1,652 +1,646 @@ - - - - - - - - - - - - QGIS Installation — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

QGIS Installation

- -
- -
-
- - - - -
- -
-

QGIS Installation#

-

QGIS is open source and therefore freely available to everyone at no cost. You can install QGIS for Windows, Mac and Linux computers. The actual Long Term Release is QGIS 3.28.11 Firenze. Generally we recommend to use the latest Long Term Release, because it is the most stable and contains the fewest bugs. You can download the latest version here: https://www.qgis.org/en/site/forusers/download.html

-

For our introduction, the standalone installers from OSGeo4W packages are sufficient for Windows.

-
-

QGIS tutorial: QGIS 3.28 - installation and basic setup#

-

QGIS 3.28 - installation and basic setup

-
-
-

Windows#

-
-

32 Bit or 64 Bit?#

-

For Windows operating systems, there is always a 32-bit version and a 64-bit version of each QGIS version available for download. Which version to install depends on your computer and operating system. If it is not clear how many bits your operating system has, you can easily find out: Left-click on the Windows icon at the bottom left of the screen (alternatively, open the Windows search function). Type “System” on the keyboard, click on the entry “System” in the search results. Under the item “System type” you can read the bit number.

-
-
-

Installation#

-

For the installation under Windows we use the OSGeo4W network installer. OSGeo4W is a project that offers Open Geo related software for Windows easy to install. Visit the project page https://trac.osgeo.org/osgeo4w/ select there Download the ​OSGeo4W network installer.

-
    -
  • Make sure to select Advanced Install / Fortgeschrittene Installation during the installation process.

    -
      -
    • QGIS Desktop

    • -
    • GRASS GIS

    • -
    • SAGA

    • -
    -
  • -
-

Video tutorial: https://www.youtube.com/watch?v=pja_EX0tVZA

-

The selected software is then downloaded via the Internet and installed on-the-fly.

-
-
-
-

Mac#

-

From version 3.30 SAGA must be integrated via plugin

-

At https://qgis.org/en/site/forusers/download.html select Download for macOS. Then use the link Download QGIS.

-

More about how to install and activate plugins in QGIS can be found here: -qgis-Interface#erweiterungen-plugins-installieren

-
-
-

Linux#

-

From version 3.30 SAGA must be integrated via plugin

-

For installation on Linux systems with apt you can install QGIS:

-
sudo apt install qgis qgis-plugin-grass
-
-
-

In the conventional apt package sources, an older version of QGIS will probably be installed. If you are using the package source Ubuntugis, observe the following installation notes on https://qgis.org/en/site/forusers/alldownloads.html#repositories

-

If you install a QGIS version >3.30 you have to install the plugin Processing Saga NextGen Provider .

-

More about how to install and activate plugins in QGIS can be found here: -qgis-Interface#erweiterungen-plugins-installieren

-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + QGIS Installation — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

QGIS Installation

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

QGIS Installation#

+

QGIS is open source and therefore freely available to everyone at no cost. You can install QGIS for Windows, Mac and Linux computers. The actual Long Term Release is QGIS 3.28.11 Firenze. Generally we recommend to use the latest Long Term Release, because it is the most stable and contains the fewest bugs. You can download the latest version here: https://www.qgis.org/en/site/forusers/download.html

+

For our introduction, the standalone installers from OSGeo4W packages are sufficient for Windows.

+
+

Windows#

+
+

32 Bit or 64 Bit?#

+

For Windows operating systems, there is always a 32-bit version and a 64-bit version of each QGIS version available for download. Which version to install depends on your computer and operating system. If it is not clear how many bits your operating system has, you can easily find out: Left-click on the Windows icon at the bottom left of the screen (alternatively, open the Windows search function). Type “System” on the keyboard, click on the entry “System” in the search results. Under the item “System type” you can read the bit number.

+
+
+

Installation#

+

For the installation under Windows we use the OSGeo4W network installer. OSGeo4W is a project that offers Open Geo related software for Windows easy to install. Visit the project page https://trac.osgeo.org/osgeo4w/ select there Download the ​OSGeo4W network installer.

+
    +
  • Make sure to select Advanced Install / Fortgeschrittene Installation during the installation process.

    +
      +
    • QGIS Desktop

    • +
    • GRASS GIS

    • +
    • SAGA

    • +
    +
  • +
+

Video tutorial: https://www.youtube.com/watch?v=pja_EX0tVZA

+

The selected software is then downloaded via the Internet and installed on-the-fly.

+
+
+
+

Mac#

+

From version 3.30 SAGA must be integrated via plugin

+

At https://qgis.org/en/site/forusers/download.html select Download for macOS. Then use the link Download QGIS.

+

More about how to install and activate plugins in QGIS can be found here: +qgis-Interface#erweiterungen-plugins-installieren

+
+
+

Linux#

+

From version 3.30 SAGA must be integrated via plugin

+

For installation on Linux systems with apt you can install QGIS:

+
sudo apt install qgis qgis-plugin-grass
+
+
+

In the conventional apt package sources, an older version of QGIS will probably be installed. If you are using the package source Ubuntugis, observe the following installation notes on https://qgis.org/en/site/forusers/alldownloads.html#repositories

+

If you install a QGIS version >3.30 you have to install the plugin Processing Saga NextGen Provider .

+

More about how to install and activate plugins in QGIS can be found here: +qgis-Interface#erweiterungen-plugins-installieren

+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_1/en_qgis_installation_ex1.html b/content/Modul_1/en_qgis_installation_ex1.html old mode 100755 new mode 100644 index 435e20496..1ae80b3d4 --- a/content/Modul_1/en_qgis_installation_ex1.html +++ b/content/Modul_1/en_qgis_installation_ex1.html @@ -1,544 +1,549 @@ - - - - - - - - - - - - Getting started with QGIS — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Getting started with QGIS

- -
-
- -
-
-
- - - - -
- -
-

Getting started with QGIS#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Getting started with QGIS — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ + + +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Getting started with QGIS

+ +
+
+ +
+
+
+ + + + +
+ +
+

Getting started with QGIS#

+
+ + + + +
+ + + + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_1/en_qgis_start.html b/content/Modul_1/en_qgis_start.html old mode 100755 new mode 100644 index 9c24425b0..6b6ee6c5c --- a/content/Modul_1/en_qgis_start.html +++ b/content/Modul_1/en_qgis_start.html @@ -1,749 +1,749 @@ - - - - - - - - - - - - Getting started with QGIS — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Getting started with QGIS#

-
-

Intro QGIS concept#

-
-

What is QGIS?#

-

QGIS is an open source geoinformation system software. That means the source code is available for everyone, making QGIS a free application. -You may view, edit, capture and analyze spatial data or create printable maps with it. QGIS was created in 2002 and is a project of volunteers. And it is constantly changing.

-
-
-
-

Introducing QGIS#

-
    -
  • QGIS is a desktop software: that means you get a program that opens up on your computer as a window with buttons you can click, forms you can fill out to do tasks, and it’s generally a visual interactive experience.

  • -
  • QGIS is backed by a large community of users, so it’s easy to find solutions to technical issues by using QGIS forums, blog and subreddit.

  • -
-
-

Overview of QGIS Interface#

-

QGIS_User_Interface -User interface

-
    -
  1. Layers List / Browser Panel: The layers list shows all layers/files that are loaded in the project. You can show/hide layers and set other properties.

  2. -
  3. Toolsbars: __ Toolbars are shortcuts to execute frequently used commands. For example, there are special toolbars for vector and raster files, but also general ones for saving your project, etc. The toolbar contains, among other things, a list of all the commands you can use. The toolbar also contains the toolbox, which is used later in many of the wiki videos.

  4. -
-

-

Alt text -
- -Toolbox

-
    -
  1. Map View: The map view is the central component of every GIS programme. This is where the geodata are displayed. The map view has a projection which does not always have to correspond to the projection of the layers.

  2. -
  3. Status bar: In the status bar you will find central information about the current map view. Here you can set the projection of the map view and the scale. You can read the coordinates of the mouse pointer and thus quickly find out the coordinates of points on the map. You can rotate your map view, e.g. if you want to create a map facing south.

  4. -
  5. Side Toolbar. You may see a side toolbar. This is another way to easily open vector and raster files in QGIS.

  6. -
  7. Locator bar. Here you can search for tools and layers. If you don’t know where to find a tool, you can try here.

  8. -
-
-

Tip

-

Exercise: Create a new QGIS project

-
-
    -
  • In your “GIS_Training” folder, create a subfolder called “Projects”

  • -
  • Open QGIS

  • -
  • Click on New Empty Project

  • -
  • In the top-left corner, click on Project

  • -
  • Click on Save as, browse to your Projects folder and save the project as “Session1”

  • -
  • Open your “Projects” folder and check the .qgzfile that you just created

  • -
-

-

Project template -Project template

-
-
-

Further Functionalities#

-
-

Moving the map view#

-

-
    -
  • You can also move with the arrow keys

  • -
-

-
-
-

Zooming in the map view#

-

-
    -
  • You can also zoom by scrolling

  • -
  • Or with Ctrl+ or Ctrl-

  • -
-

-
-
-

Show properties of objects#

-

-
    -
  • Make sure to select the layer you want identify features in

  • -
-
-
-

Set the projection of the map view (project CRS)#

-

-
    -
  • Geodata concepts are explained in detail in module 2

  • -
-
-
-

Open Project#

- -
-
-

Save Project#

-

-
    -
  • The layer data used in the project are not saved in the project file. Instead, the project file only contains the file paths where the layer data were located at the time the project was last saved on the PC. If the location of this layer data is subsequently changed, the error message “handle unavailable layers” will appear when the project is opened again. -Good data organisation with a fixed and well thought-out folder structure prevents such problems.

  • -
-
-
-

Open Toolbox#

-

-
    -
  • You can also zoom by scrolling

  • -
  • Or with Ctrl+ or Ctrl-

  • -
-

-
-
-

Show and hide displays and toolbars#

-

-
-
-

Move and arrange toolbars#

-

-

-
    -
  • At each toolbar there is a field of two dotted lines. If you move the mouse pointer over it until an arrow cross appears and then hold down the left mouse button, you can move the toolbar. This allows an individualised arrangement of your own tools. By compressing all toolbars into a few lines, the map view window can also be enlarged.

  • -
-

See also: -corresponding page in the Wiki

-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Getting started with QGIS — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Getting started with QGIS#

+
+

Intro QGIS concept#

+
+

What is QGIS?#

+

QGIS is an open source geoinformation system software. That means the source code is available for everyone, making QGIS a free application. +You may view, edit, capture and analyze spatial data or create printable maps with it. QGIS was created in 2002 and is a project of volunteers. And it is constantly changing.

+
+
+
+

Introducing QGIS#

+
    +
  • QGIS is a desktop software: that means you get a program that opens up on your computer as a window with buttons you can click, forms you can fill out to do tasks, and it’s generally a visual interactive experience.

  • +
  • QGIS is backed by a large community of users, so it’s easy to find solutions to technical issues by using QGIS forums, blog and subreddit.

  • +
+
+

Overview of QGIS Interface#

+

QGIS_User_Interface +User interface

+
    +
  1. Layers List / Browser Panel: The layers list shows all layers/files that are loaded in the project. You can show/hide layers and set other properties.

  2. +
  3. Toolsbars: __ Toolbars are shortcuts to execute frequently used commands. For example, there are special toolbars for vector and raster files, but also general ones for saving your project, etc. The toolbar contains, among other things, a list of all the commands you can use. The toolbar also contains the toolbox, which is used later in many of the wiki videos.

  4. +
+

+

Alt text +
+ +Toolbox

+
    +
  1. Map View: The map view is the central component of every GIS programme. This is where the geodata are displayed. The map view has a projection which does not always have to correspond to the projection of the layers.

  2. +
  3. Status bar: In the status bar you will find central information about the current map view. Here you can set the projection of the map view and the scale. You can read the coordinates of the mouse pointer and thus quickly find out the coordinates of points on the map. You can rotate your map view, e.g. if you want to create a map facing south.

  4. +
  5. Side Toolbar. You may see a side toolbar. This is another way to easily open vector and raster files in QGIS.

  6. +
  7. Locator bar. Here you can search for tools and layers. If you don’t know where to find a tool, you can try here.

  8. +
+
+

Tip

+

Exercise: Create a new QGIS project

+
+
    +
  • In your “GIS_Training” folder, create a subfolder called “Projects”

  • +
  • Open QGIS

  • +
  • Click on New Empty Project

  • +
  • In the top-left corner, click on Project

  • +
  • Click on Save as, browse to your Projects folder and save the project as “Session1”

  • +
  • Open your “Projects” folder and check the .qgzfile that you just created

  • +
+

+

Project template +Project template

+
+
+

Further Functionalities#

+
+

Moving the map view#

+

+
    +
  • You can also move with the arrow keys

  • +
+

+
+
+

Zooming in the map view#

+

+
    +
  • You can also zoom by scrolling

  • +
  • Or with Ctrl+ or Ctrl-

  • +
+

+
+
+

Show properties of objects#

+

+
    +
  • Make sure to select the layer you want identify features in

  • +
+
+
+

Set the projection of the map view (project CRS)#

+

+
    +
  • Geodata concepts are explained in detail in module 2

  • +
+
+
+

Open Project#

+ +
+
+

Save Project#

+

+
    +
  • The layer data used in the project are not saved in the project file. Instead, the project file only contains the file paths where the layer data were located at the time the project was last saved on the PC. If the location of this layer data is subsequently changed, the error message “handle unavailable layers” will appear when the project is opened again. +Good data organisation with a fixed and well thought-out folder structure prevents such problems.

  • +
+
+
+

Open Toolbox#

+

+
    +
  • You can also zoom by scrolling

  • +
  • Or with Ctrl+ or Ctrl-

  • +
+

+
+
+

Show and hide displays and toolbars#

+

+
+
+

Move and arrange toolbars#

+

+

+
    +
  • At each toolbar there is a field of two dotted lines. If you move the mouse pointer over it until an arrow cross appears and then hold down the left mouse button, you can move the toolbar. This allows an individualised arrangement of your own tools. By compressing all toolbars into a few lines, the map view window can also be enlarged.

  • +
+

See also: +corresponding page in the Wiki

+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_1/en_qgis_theorie.html b/content/Modul_1/en_qgis_theorie.html old mode 100755 new mode 100644 index 7f5ee9a9a..2b7bd4883 --- a/content/Modul_1/en_qgis_theorie.html +++ b/content/Modul_1/en_qgis_theorie.html @@ -1,863 +1,865 @@ - - - - - - - - - - - - What is GIS? (Theory) — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

What is GIS? (Theory)#

-
-

General Information:#

-
    -
  • A Geographic Information System (GIS) is a digital system that connects data to maps.

  • -
  • Geoinformatics in general focus on the visualisation, organisation and processing of spatial data.

  • -
  • Spatial analyses furthermore allow to reveal circumstances and connections between spatial data features:

    -
      -
    • by making use of their spatial location, information layers (or features within a layer) can be analyzed in regard to each other to obtain new information.

    • -
    -
  • -
-
-
-

Why are Spatial Analyses important?#

-
-

Note

-

Discuss in groups:

-
-
    -
  • Situations in which you benefitted from spatial analyses.

  • -
  • Situations in which you could may be have benefitted from spatial analyses.

  • -
  • Main areas where you see potential for spatial analyses in your work.

  • -
-
-
-

Introduction to GIS:#

-
-

We use GIS for:#

-
    -
  • Creating interactive queries (Querying)

  • -
  • Analysing spatial information (Spatial analysis)

  • -
  • Editing and visualizing data in maps (Editing)

  • -
  • Present the results of all these operations (Map making)

  • -
-
-
-

GIS in Humanitarian Responses#

-

GIS has many applications in the humanitarian field:

-
    -
  • Refugee/IDP camp planning

  • -
  • Mapping remote areas to facilitate access

  • -
  • Keep track of field operations

  • -
  • Support security decisions

  • -
  • Support operations planning

  • -
  • Identify areas most affected by disasters

  • -
-
-

Tip

-

A few examples:

-
- -
-
-
-

A Galaxy of Tools#

-

GIS comes with a galaxy of tools that are constantly evolving. An increasing number of traditional tools are now capable of supporting geographic information (Excel, Power BI, Adobe Illustrator…)

-
-

An Overview:#

-
    -
  • Mobile Data Collection Tools

  • -
-

The latter make it possible to collect data via mobile or tablet, and often to visualize and exchange it with other platforms according to a common format.

-
    -
  • Mapping Tools

  • -
-

These tools provide a simple vizualisation of geographic data, and allow for the production of maps.

-
    -
  • GIS Tools

  • -
-

As opposed to the previous ones, these more advanced tools are very comprehensive and allow for advanced analyses to be carried out on the geographical components of data.

-
    -
  • Webmapping Tools

  • -
-

These tools make it possible to manipulate and create maps online in a very simple way directly in a web browser.

-
-
-
-

Paper Maps and Cartography#

-
-

What is Spatial Analysis?#

-
    -
  • Spatial analysis studies entities and events using their topological, geometric, or geographic properties.

  • -
  • It includes a variety of techniques to analyse geographic data.

  • -
  • Data can be added to a map as layers and they can interact with each other.

  • -
  • GIS enables you to work with these layers to explore critically important questions and find answers to those questions.

  • -
-
-

An Example from the Past: John Snows’ Cholera Map#

-

In 1854 an outbreak of cholera occurred in London, England. The most common theory was that the disease was spread through the air. Dr.John Snow believed that the danger was in the water. He made a map to analyse the number of deaths in Soho per house block. He added the location of water pumps on the map. -He found a correlation between one specific water pump and the number of infections.

-

Dr. Snow’s map of the Cholera outbreak of 1854, and the reports that it accompanied, won over the predominant “Miasma Theory” that the disease was spread through the air. Residents were now warned to boil their water, and so ended the last Cholera outbreak London has seen.

-

John Snows' Map John Snows’ Map

-

Using GIS, several measures of spatial central tendency have been applied to the dataset, revealing that the Spatial Mean (the geographic center of the distribution of deaths) of the outbreak lies within 35 meters of the Broad Street Pump, identified as the source of contamination in the 1854 outbreak.

-
-

Tip

-

Further information:

-
- -
-
-
-
-

GIS vs Cartography#

-
    -
  • Cartography is the study and practice of making maps.

  • -
  • A GIS is a modern extension of traditional cartography.

  • -
  • Both contain examples of a base map to which additional data can be added.

  • -
  • The differences are that there is no limit to the amount of additional data that can be added to a GIS map.

  • -
  • Cartographic maps are often extremely simplified as there are limits to the amount of data that can be physically and meaningfully stored on a small map.

  • -
  • GIS uses analysis and statistics to present data in support of particular arguments which a cartographic map cannot do.

  • -
  • You can use GIS for cartography.

  • -
-

-

GIS vs Cartography GIS vs Cartography

-
-

General Reference Maps#

-
    -
  • Show important physical features of an area

  • -
  • Include natural and man-made features

  • -
  • Usually meant to help for navigation or discovery of locations

  • -
  • Usually fairly simple

  • -
  • Can be stylized based on the intended audience

  • -
-

-

Reference map of Iraq Reference map of Iraq

-
-
-

Infrastructure Maps#

-
    -
  • Display relevant features and structures in a specific area

  • -
  • Help planning and navigation

  • -
  • High level of detail

  • -
  • Produced after field data collection

  • -
-

-

Infrastructure map of Nigeria -Infrastructure map of Nigeria

-
-
-

Thematic Maps#

-
    -
  • Focus on a specific theme or subject

  • -
  • Features on the map represent the subject being mapped

  • -
  • Use colours and shapes to display quantitative and qualitative data

  • -
  • Rise awareness about a specific subject

  • -
-

-

Thematic map of Africa Thematic map of Africa

-
-
-

Analysis Maps#

-
    -
  • Analyse data in respect to their geographic location

  • -
  • Create new layers of information from the interaction between multiple features

  • -
  • Use colours and shapes to help users understand specific events

  • -
  • Support decision makers

  • -
  • Generally display a greater level of detail

  • -
-

-

Analysis map of Yemen Analysis map of Yemen

-
-
-

Situation/Descriptive Maps#

-
    -
  • Used to better visualize a specific ongoing and/or past situation

  • -
  • Maps can include narrative and graphic elements

  • -
  • Can be used in reports and/or to raise awareness on a specific event

  • -
-

-

Situation map from Tilkaif to MosulSituation map from Tilkaif to Mosul

-
-
-
-

Web GIS platforms#

-
-

GIS Applications#

-
    -
  • You can use GIS through multiple applications, from desktop software, to online platforms, to mobile apps.

  • -
  • At a basic level, you can perform limited geospatial tasks with apps such as Google Earth or Google Maps.

  • -
  • As a GIS professional, you will mostly use a desktop software, which could be either: Proprietary or Open source.

  • -
  • Open Street Maps (OSM): -https://www.openstreetmap.org/#map=14/49.4192/8.7235 -An open geographic database updated and maintained by a community of volunteers via open collaboration. It works using a tag system (each feature is categorized through tags).

  • -
  • uMap: https://umap.openstreetmap.fr/en/ -Online tool to create maps using OSM layers.

  • -
  • Felt: https://felt.com/ -An easy tool to create maps. You can draw, create feature and upload shapefiles.

  • -
  • Wikimapia: https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w -Online editable map service. Updated and maintained by contributors all over the world. It uses local knowledge, making it particularly useful in remote areas.

  • -
  • Google Maps: https://www.google.com/maps/d/ -Limited, but it allows to upload layers, create and export features, share simple maps.

  • -
-
-
-

Geo Mobile Apps Overview (General Understanding)#

-
    -
  • Qfield: https://docs.qfield.org/ -Through QFieldCloud, you can open your QGIS projects on Qfield on your mobile device. Any edit made on the map in the app can then be synced and displayed in QGIS.

  • -
  • OsmAnd: https://osmand.net/ -Using OSM basemap, it’s a good app for offline navigation. You can upload kml-files to display on the map, as well as recording your trips and then export them to kml.

  • -
  • GeoODK: http://geoodk.com/index.html -Combines ODK with a geo app. You can collect data through ODK surveys and display them on a map, in addition to easily create polygons and add information to them.

  • -
-

-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + What is GIS? (Theory) — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

What is GIS? (Theory)#

+
+

General Information:#

+
    +
  • A Geographic Information System (GIS) is a digital system that connects data to maps.

  • +
  • Geoinformatics in general focus on the visualisation, organisation and processing of spatial data.

  • +
  • Spatial analyses furthermore allow to reveal circumstances and connections between spatial data features:

    +
      +
    • by making use of their spatial location, information layers (or features within a layer) can be analyzed in regard to each other to obtain new information.

    • +
    +
  • +
+
+
+

Why are Spatial Analyses important?#

+
+

Note

+

Discuss in groups:

+
+
    +
  • Situations in which you benefitted from spatial analyses.

  • +
  • Situations in which you could may be have benefitted from spatial analyses.

  • +
  • Main areas where you see potential for spatial analyses in your work.

  • +
+
+
+

Introduction to GIS:#

+
+

We use GIS for:#

+
    +
  • Creating interactive queries (Querying)

  • +
  • Analysing spatial information (Spatial analysis)

  • +
  • Editing and visualizing data in maps (Editing)

  • +
  • Present the results of all these operations (Map making)

  • +
+
+
+

GIS in Humanitarian Responses#

+

GIS has many applications in the humanitarian field:

+
    +
  • Refugee/IDP camp planning

  • +
  • Mapping remote areas to facilitate access

  • +
  • Keep track of field operations

  • +
  • Support security decisions

  • +
  • Support operations planning

  • +
  • Identify areas most affected by disasters

  • +
+
+

Tip

+

A few examples:

+
+ +
+
+
+

A Galaxy of Tools#

+

GIS comes with a galaxy of tools that are constantly evolving. An increasing number of traditional tools are now capable of supporting geographic information (Excel, Power BI, Adobe Illustrator…)

+
+

An Overview:#

+
    +
  • Mobile Data Collection Tools

  • +
+

The latter make it possible to collect data via mobile or tablet, and often to visualize and exchange it with other platforms according to a common format.

+
    +
  • Mapping Tools

  • +
+

These tools provide a simple vizualisation of geographic data, and allow for the production of maps.

+
    +
  • GIS Tools

  • +
+

As opposed to the previous ones, these more advanced tools are very comprehensive and allow for advanced analyses to be carried out on the geographical components of data.

+
    +
  • Webmapping Tools

  • +
+

These tools make it possible to manipulate and create maps online in a very simple way directly in a web browser.

+
+
+
+

Paper Maps and Cartography#

+
+

What is Spatial Analysis?#

+
    +
  • Spatial analysis studies entities and events using their topological, geometric, or geographic properties.

  • +
  • It includes a variety of techniques to analyse geographic data.

  • +
  • Data can be added to a map as layers and they can interact with each other.

  • +
  • GIS enables you to work with these layers to explore critically important questions and find answers to those questions.

  • +
+
+

An Example from the Past: John Snows’ Cholera Map#

+

In 1854 an outbreak of cholera occurred in London, England. The most common theory was that the disease was spread through the air. Dr.John Snow believed that the danger was in the water. He made a map to analyse the number of deaths in Soho per house block. He added the location of water pumps on the map. +He found a correlation between one specific water pump and the number of infections.

+

Dr. Snow’s map of the Cholera outbreak of 1854, and the reports that it accompanied, won over the predominant “Miasma Theory” that the disease was spread through the air. Residents were now warned to boil their water, and so ended the last Cholera outbreak London has seen.

+

John Snows' Map John Snows’ Map

+

Using GIS, several measures of spatial central tendency have been applied to the dataset, revealing that the Spatial Mean (the geographic center of the distribution of deaths) of the outbreak lies within 35 meters of the Broad Street Pump, identified as the source of contamination in the 1854 outbreak.

+
+

Tip

+

Further information:

+
+ +
+
+
+
+

GIS vs Cartography#

+
    +
  • Cartography is the study and practice of making maps.

  • +
  • A GIS is a modern extension of traditional cartography.

  • +
  • Both contain examples of a base map to which additional data can be added.

  • +
  • The differences are that there is no limit to the amount of additional data that can be added to a GIS map.

  • +
  • Cartographic maps are often extremely simplified as there are limits to the amount of data that can be physically and meaningfully stored on a small map.

  • +
  • GIS uses analysis and statistics to present data in support of particular arguments which a cartographic map cannot do.

  • +
  • You can use GIS for cartography.

  • +
+

+

GIS vs Cartography GIS vs Cartography

+
+

General Reference Maps#

+
    +
  • Show important physical features of an area

  • +
  • Include natural and man-made features

  • +
  • Usually meant to help for navigation or discovery of locations

  • +
  • Usually fairly simple

  • +
  • Can be stylized based on the intended audience

  • +
+

+

Reference map of Iraq Reference map of Iraq

+
+
+

Infrastructure Maps#

+
    +
  • Display relevant features and structures in a specific area

  • +
  • Help planning and navigation

  • +
  • High level of detail

  • +
  • Produced after field data collection

  • +
+

+

Infrastructure map of Nigeria +Infrastructure map of Nigeria

+
+
+

Thematic Maps#

+
    +
  • Focus on a specific theme or subject

  • +
  • Features on the map represent the subject being mapped

  • +
  • Use colours and shapes to display quantitative and qualitative data

  • +
  • Rise awareness about a specific subject

  • +
+

+

Thematic map of Africa Thematic map of Africa

+
+
+

Analysis Maps#

+
    +
  • Analyse data in respect to their geographic location

  • +
  • Create new layers of information from the interaction between multiple features

  • +
  • Use colours and shapes to help users understand specific events

  • +
  • Support decision makers

  • +
  • Generally display a greater level of detail

  • +
+

+

Analysis map of Yemen Analysis map of Yemen

+
+
+

Situation/Descriptive Maps#

+
    +
  • Used to better visualize a specific ongoing and/or past situation

  • +
  • Maps can include narrative and graphic elements

  • +
  • Can be used in reports and/or to raise awareness on a specific event

  • +
+

+

Situation map from Tilkaif to MosulSituation map from Tilkaif to Mosul

+
+
+
+

Web GIS platforms#

+
+

GIS Applications#

+
    +
  • You can use GIS through multiple applications, from desktop software, to online platforms, to mobile apps.

  • +
  • At a basic level, you can perform limited geospatial tasks with apps such as Google Earth or Google Maps.

  • +
  • As a GIS professional, you will mostly use a desktop software, which could be either: Proprietary or Open source.

  • +
  • Open Street Maps (OSM): +https://www.openstreetmap.org/#map=14/49.4192/8.7235 +An open geographic database updated and maintained by a community of volunteers via open collaboration. It works using a tag system (each feature is categorized through tags).

  • +
  • uMap: https://umap.openstreetmap.fr/en/ +Online tool to create maps using OSM layers.

  • +
  • Felt: https://felt.com/ +An easy tool to create maps. You can draw, create feature and upload shapefiles.

  • +
  • Wikimapia: https://wikimapia.org/#lang=de&lat=49.402500&lon=8.633100&z=12&m=w +Online editable map service. Updated and maintained by contributors all over the world. It uses local knowledge, making it particularly useful in remote areas.

  • +
  • Google Maps: https://www.google.com/maps/d/ +Limited, but it allows to upload layers, create and export features, share simple maps.

  • +
+
+
+

Geo Mobile Apps Overview (General Understanding)#

+
    +
  • Qfield: https://docs.qfield.org/ +Through QFieldCloud, you can open your QGIS projects on Qfield on your mobile device. Any edit made on the map in the app can then be synced and displayed in QGIS.

  • +
  • OsmAnd: https://osmand.net/ +Using OSM basemap, it’s a good app for offline navigation. You can upload kml-files to display on the map, as well as recording your trips and then export them to kml.

  • +
  • GeoODK: http://geoodk.com/index.html +Combines ODK with a geo app. You can collect data through ODK surveys and display them on a map, in addition to easily create polygons and add information to them.

  • +
+

+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_1/geodatenbeschaffung.html b/content/Modul_1/geodatenbeschaffung.html old mode 100755 new mode 100644 index 8e746a883..962190eff --- a/content/Modul_1/geodatenbeschaffung.html +++ b/content/Modul_1/geodatenbeschaffung.html @@ -1,650 +1,655 @@ - - - - - - - - - - - - Geodatenbeschaffung — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Geodatenbeschaffung

- -
- -
-
- - - - -
- -
-

Geodatenbeschaffung#

-

Für die Analysen im Tutorium nutzen wir eine vielzahl unterschiedlicher Datensätze aus verschiedenen Quellen. Auch für eure Abschlussaufgabe werdet ihr Geodaten von unterschiedlichen Websites, Behörden, Open-Data-Portalen, etc. beziehen.

-

Hier findet eine unvollständige Liste, wo ihr Geodaten herunterladen könnt.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Welche Datensätze (u.a.)

Bundesamt für Kartographie und Geodäsie

z.B. Verwaltungsgebiete für Deutschland

USGS Earth Explorer

z.B. Landsat, Sentinel, SRTM, Aster, Land Cover

Humanitarian Data Exchange

Infrastruktur, Bevölkerung, Wirtschaft

Free GIS Data

eine Sammlung mit Links zu sehr vielen Themenbereichen

Pangaea

Freie Daten zu umweltwissenschaftlichen Themen

SRTM Data

SRTM Höhendaten mit 90m Auflösung

OpenAerialMap

Luft- und Sattelitenbilder weltweit (z.B. HD mit 46m Auflösung)

Copernicus & Land Monitoring Service der EU

Hoch aufgelöste, europaweite Rasterdaten zu Besiedelung, Land Cover, Wäldern, uvm.

-
-

Deutschland und Europa#

- -
-
-

Grenzen#

- -
-
-

OpenStreetMap#

- -
-
-

Physische Geographie#

- -
-
-

Humangeographie#

- -
-
-

Online Werkzeuge#

- -
-
- - - - -
- - - - -
- -
- -
-
-
- -
- -
- -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodatenbeschaffung — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ + + +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Geodatenbeschaffung

+ +
+ +
+
+ + + + +
+ +
+

Geodatenbeschaffung#

+

Für die Analysen im Tutorium nutzen wir eine vielzahl unterschiedlicher Datensätze aus verschiedenen Quellen. Auch für eure Abschlussaufgabe werdet ihr Geodaten von unterschiedlichen Websites, Behörden, Open-Data-Portalen, etc. beziehen.

+

Hier findet eine unvollständige Liste, wo ihr Geodaten herunterladen könnt.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

Welche Datensätze (u.a.)

Bundesamt für Kartographie und Geodäsie

z.B. Verwaltungsgebiete für Deutschland

USGS Earth Explorer

z.B. Landsat, Sentinel, SRTM, Aster, Land Cover

Humanitarian Data Exchange

Infrastruktur, Bevölkerung, Wirtschaft

Free GIS Data

eine Sammlung mit Links zu sehr vielen Themenbereichen

Pangaea

Freie Daten zu umweltwissenschaftlichen Themen

SRTM Data

SRTM Höhendaten mit 90m Auflösung

OpenAerialMap

Luft- und Sattelitenbilder weltweit (z.B. HD mit 46m Auflösung)

Copernicus & Land Monitoring Service der EU

Hoch aufgelöste, europaweite Rasterdaten zu Besiedelung, Land Cover, Wäldern, uvm.

+
+

Deutschland und Europa#

+ +
+
+

Grenzen#

+ +
+
+

OpenStreetMap#

+ +
+
+

Physische Geographie#

+ +
+
+

Humangeographie#

+ +
+
+

Online Werkzeuge#

+ +
+
+ + + + +
+ + + + + + +
+ +
+
+
+ +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_1/geodatenformate.html b/content/Modul_1/geodatenformate.html old mode 100755 new mode 100644 index 8551b5b6b..39c8d1e95 --- a/content/Modul_1/geodatenformate.html +++ b/content/Modul_1/geodatenformate.html @@ -1,664 +1,669 @@ - - - - - - - - - - - - Geodatenformate — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Geodatenformate#

-

Auf dieser Seite werden die für dieses Tutorium wichtigsten Geodatenformate behandelt, um einen allgemeinen Überblick für die Teilnehmenden zu schaffen. Dabei werden folgende Themen angesprochen:

-
    -
  • Unterschiede bei der Arbeit mit Raster- und Vektordaten

  • -
  • verschiedene Vektordatenformate (Shapefiles und GeoJSON)

  • -
  • Rasterdatenformate (GeoTiff)

  • -
  • Datenformate für Raster- und Vektordaten (Geopackage), und

  • -
  • Web Map Service (WMS)

  • -
-
-
-

Unterschiede bei der Arbeit mit Raster- und Vektordaten#

-

Tools für Vektordaten sind nicht für die Verarbeitung von Rasterdaten geeignet, und umgekehrt.

-
-
-

Vektordatenformate#

-
-

Shapefiles#

-

Shapefiles werden in mehreren verschiedenen Dateien aufgeteilt gespeichert. Dabei trägt jede “Teil-Datei” ganz bestimmte Informationen, wie in der Darstellung hier gesehen werden kann. Dateien mit der Endung .shp, zum Beispiel, sind die hauptsächliche Datei und beinhalten die Geometrien, während dbf-Dateien die Attributtabelle enthalten.

-

Shapefile_Dateiformate_1

-

Shapefiles können immer nur einen Geometrietyp beinhalten, das heißt sie enthalten entweder ausschließlich Punkt, Linien, oder Polygon Features, niemals eine Mischung der drei.

-
-
-

Textuelle Austauschformate, wie z.B. GeoJSON#

-

Vektordaten können auch in textuellen Austauschformaten, wie zum Beispiel GeoJSON, vorhanden sein. -GeoJSON ist ein offenes Standardaustauschformat für räumliche Daten und basiert auf JSON (JavaScript Object Notation). Daten, die in diesem Format dargestellt werden, beziehen sich auf das geographische Koordinatenbezugssystem “World Geodetic System 1984”. Zur Veranschaulichung finden sich in der folgenden Darstellung Beispiele für gültige GeoJSON-Dateien.

-

GeoJSON_Dateiformat

-

Quelle: ArcGIS Online. o.J. GeoJSON. Online unter: https://doc.arcgis.com/de/arcgis-online/reference/geojson.htm, abgerufen am 19.10.2020.

-

Weitere Informationen zu GeoJSON und der Verwendung in GIS finden sich unter: https://doc.arcgis.com/de/arcgis-online/reference/geojson.htm.

-

GeoJSON-Daten können zudem unter der Adresse geojson.io leicht selbst erstellt werden.

-
-
-
-

Rasterdatenformate#

-
-

GeoTiff#

-
    -
  • GeoTiffs beinhalten georeferenzierte Bilddateien, zum Beispiel Luft- oder Satellitenbilder.

  • -
  • GeoTiff (Geographic Tagged Image File Format) wird heute nahezu standardmäßig als Speicherformat für Rasterdaten verwendet.

  • -
  • In die Bilddatei eingebettete Metadaten enthalten Informationen zur Georeferenz des Bildes, wie etwa Koordinaten zur Georeferenzierung oder das Koordinatenbezugssystem.

  • -
-

Weitere Informationen finden sich unter folgendem Link des OGC (Open Geospatial Consortium): http://docs.opengeospatial.org/is/19-008r4/19-008r4.html#_geotiff.

-
-
-
-

Datenformate für Raster- und Vektordaten#

-
-

Geopackages#

-

Ein Geopackage (standardisiert durch das Open Geospatial Consortium (OGC)) ist ein Format zur Speicherung von Vektor- und Rasterdaten, das von den meisten GIS unterstützt wird.

-
    -
  • Idee: Eine dateibasierte Datenbank (SQLite), in welcher auf standardisierte Weise alle Daten gespeichert werden.

  • -
  • Dateibasierte Datenbank = eine Datei, welche in strukturierter Weise abgefragt werden kann

  • -
-

Probleme mit Geopackages:

-

Beim Arbeiten mit Geopackages kann es zuweilen zu dem Dateiformat spezifischen Problemen kommen. So kann die Verarbeitung mit Tools wie Clip, oder anderen Wekrzeugen, besonders wenn Änderungen in der Attributtabelle vorgenommen werden, Fehlermeldungen hervorrufen. Lösen lässt sich dieses Problem, wenn das Dateiformat Geopackage nur zum Speichern, also zum Exportieren ausgewählt wird (der Vorteil liegt hier besonders im Vergleich zu Shapefiles darin, dass ein Geopackage nur aus einer Datei, und nicht mehreren besteht und so keine Teildatei verloren gehen kann). Während der Arbeit im Projekt, sollte dagegen besser mit GeoTiffs oder Shapefiles gearbeitet werden, um Fehlerquellen zu minimieren.

-

Herunterladen werden können leere Geopackages zum Weiterverarbeiten unter folgendem Link: http://www.geopackage.org/data/empty.gpkg

-
-
-
-

Web Map Service (WMS)#

-

Web Map Services (WMS) erlauben es euch, Geodaten aus dem Web mit eurem GIS zu verknüpfen und abzurufen. Als Ergebnis wird euch dabei dann ein georeferenziertes Kartenbild angezeigt. Dieses Prinzip wird beispielsweise auch bei Basemaps angewendet. Im zugehörigen Wikibeitrag finden sich Informationen darüber, wie sich WMS Daten in QGIS hereinladen lassen, und welche Funktionen genutzt werden können.

-

Further Resources: Weitere Informationen zu WMS finden sich auch unter: https://www.ogc.org/standards/wms.

-
- - - - -
- - - - -
- -
- -
-
-
- -
- -
- -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodatenformate — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ + + +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Geodatenformate#

+

Auf dieser Seite werden die für dieses Tutorium wichtigsten Geodatenformate behandelt, um einen allgemeinen Überblick für die Teilnehmenden zu schaffen. Dabei werden folgende Themen angesprochen:

+
    +
  • Unterschiede bei der Arbeit mit Raster- und Vektordaten

  • +
  • verschiedene Vektordatenformate (Shapefiles und GeoJSON)

  • +
  • Rasterdatenformate (GeoTiff)

  • +
  • Datenformate für Raster- und Vektordaten (Geopackage), und

  • +
  • Web Map Service (WMS)

  • +
+
+
+

Unterschiede bei der Arbeit mit Raster- und Vektordaten#

+

Tools für Vektordaten sind nicht für die Verarbeitung von Rasterdaten geeignet, und umgekehrt.

+
+
+

Vektordatenformate#

+
+

Shapefiles#

+

Shapefiles werden in mehreren verschiedenen Dateien aufgeteilt gespeichert. Dabei trägt jede “Teil-Datei” ganz bestimmte Informationen, wie in der Darstellung hier gesehen werden kann. Dateien mit der Endung .shp, zum Beispiel, sind die hauptsächliche Datei und beinhalten die Geometrien, während dbf-Dateien die Attributtabelle enthalten.

+

Shapefile_Dateiformate_1

+

Shapefiles können immer nur einen Geometrietyp beinhalten, das heißt sie enthalten entweder ausschließlich Punkt, Linien, oder Polygon Features, niemals eine Mischung der drei.

+
+
+

Textuelle Austauschformate, wie z.B. GeoJSON#

+

Vektordaten können auch in textuellen Austauschformaten, wie zum Beispiel GeoJSON, vorhanden sein. +GeoJSON ist ein offenes Standardaustauschformat für räumliche Daten und basiert auf JSON (JavaScript Object Notation). Daten, die in diesem Format dargestellt werden, beziehen sich auf das geographische Koordinatenbezugssystem “World Geodetic System 1984”. Zur Veranschaulichung finden sich in der folgenden Darstellung Beispiele für gültige GeoJSON-Dateien.

+

GeoJSON_Dateiformat

+

Quelle: ArcGIS Online. o.J. GeoJSON. Online unter: https://doc.arcgis.com/de/arcgis-online/reference/geojson.htm, abgerufen am 19.10.2020.

+

Weitere Informationen zu GeoJSON und der Verwendung in GIS finden sich unter: https://doc.arcgis.com/de/arcgis-online/reference/geojson.htm.

+

GeoJSON-Daten können zudem unter der Adresse geojson.io leicht selbst erstellt werden.

+
+
+
+

Rasterdatenformate#

+
+

GeoTiff#

+
    +
  • GeoTiffs beinhalten georeferenzierte Bilddateien, zum Beispiel Luft- oder Satellitenbilder.

  • +
  • GeoTiff (Geographic Tagged Image File Format) wird heute nahezu standardmäßig als Speicherformat für Rasterdaten verwendet.

  • +
  • In die Bilddatei eingebettete Metadaten enthalten Informationen zur Georeferenz des Bildes, wie etwa Koordinaten zur Georeferenzierung oder das Koordinatenbezugssystem.

  • +
+

Weitere Informationen finden sich unter folgendem Link des OGC (Open Geospatial Consortium): http://docs.opengeospatial.org/is/19-008r4/19-008r4.html#_geotiff.

+
+
+
+

Datenformate für Raster- und Vektordaten#

+
+

Geopackages#

+

Ein Geopackage (standardisiert durch das Open Geospatial Consortium (OGC)) ist ein Format zur Speicherung von Vektor- und Rasterdaten, das von den meisten GIS unterstützt wird.

+
    +
  • Idee: Eine dateibasierte Datenbank (SQLite), in welcher auf standardisierte Weise alle Daten gespeichert werden.

  • +
  • Dateibasierte Datenbank = eine Datei, welche in strukturierter Weise abgefragt werden kann

  • +
+

Probleme mit Geopackages:

+

Beim Arbeiten mit Geopackages kann es zuweilen zu dem Dateiformat spezifischen Problemen kommen. So kann die Verarbeitung mit Tools wie Clip, oder anderen Wekrzeugen, besonders wenn Änderungen in der Attributtabelle vorgenommen werden, Fehlermeldungen hervorrufen. Lösen lässt sich dieses Problem, wenn das Dateiformat Geopackage nur zum Speichern, also zum Exportieren ausgewählt wird (der Vorteil liegt hier besonders im Vergleich zu Shapefiles darin, dass ein Geopackage nur aus einer Datei, und nicht mehreren besteht und so keine Teildatei verloren gehen kann). Während der Arbeit im Projekt, sollte dagegen besser mit GeoTiffs oder Shapefiles gearbeitet werden, um Fehlerquellen zu minimieren.

+

Herunterladen werden können leere Geopackages zum Weiterverarbeiten unter folgendem Link: http://www.geopackage.org/data/empty.gpkg

+
+
+
+

Web Map Service (WMS)#

+

Web Map Services (WMS) erlauben es euch, Geodaten aus dem Web mit eurem GIS zu verknüpfen und abzurufen. Als Ergebnis wird euch dabei dann ein georeferenziertes Kartenbild angezeigt. Dieses Prinzip wird beispielsweise auch bei Basemaps angewendet. Im zugehörigen Wikibeitrag finden sich Informationen darüber, wie sich WMS Daten in QGIS hereinladen lassen, und welche Funktionen genutzt werden können.

+

Further Resources: Weitere Informationen zu WMS finden sich auch unter: https://www.ogc.org/standards/wms.

+
+ + + + +
+ + + + + + +
+ +
+
+
+ +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_1/ger_qgis_installation.html b/content/Modul_1/ger_qgis_installation.html old mode 100755 new mode 100644 index 909fea899..28a0442ad --- a/content/Modul_1/ger_qgis_installation.html +++ b/content/Modul_1/ger_qgis_installation.html @@ -1,606 +1,615 @@ - - - - - - - - - - - - Installation — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Installation

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Installation#

-

QGIS ist Open Source und daher frei und ohne Kosten für jeden verfügbar. Ihr könnt QGIS für Windows, Mac und Linux Rechner installieren.

-
-

Windows#

-

Für die Installation unter Windows verwenden wir den OSGeo4W Netzwerkinstaller. OSGeo4W ist ein Projekt, das Open Geo bezogene Software für Windows einfach zu installieren anbietet. Besucht die Projektseite https://trac.osgeo.org/osgeo4w/ und klickt dort auf den link Download the ​OSGeo4W network installer.

-
    -
  • Achtet darauf während des Installationsprozesses Advanced Install / Fortgeschrittene Installation zu wählen. Nur dann können die für diesen Kurs relevante Software präzise wählen:

    -
      -
    • QGIS Desktop

    • -
    • GRASS GIS

    • -
    • SAGA

    • -
    -
  • -
-

Videotutorial: https://www.youtube.com/watch?v=pja_EX0tVZA

-

Die gewählte Software wird dann über das Internet heruntergeladen und on-the-fly installiert.

-
-
-

Mac#

-

Ab Version 3.30 muss SAGA per plugin eingebunden werden

-

Unter https://qgis.org/en/site/forusers/download.html Download for macOS wählen. Dann den Link Download QGIS nutzen.

-

In QGIS dann das Plugin Processing Saga NextGen Provider installieren.

-

Mehr zu wie man Plugins in QGIS installiert und aktiviert findet ihr hier: -qgis-Interface#erweiterungen-plugins-installieren

-
-
-

Linux#

-

Ab Version 3.30 muss SAGA per plugin eingebunden werden

-

Für die installation unter Linux Systemen mit apt könnt ihr QGIS installieren:

-
sudo apt install qgis qgis-plugin-grass
-
-
-

In den herkömmlichen apt Paketquellen wird vermutlich eine ältere Version von QGIS installiert sein. Solltet ihr die Paketquelle Ubuntugis nutzen, beachtet die folgenden installations Hinweise auf https://qgis.org/en/site/forusers/alldownloads.html#repositories

-

Solltet ihr hierüber eine QGIS Version >3.30 installieren müsst ihr das Plugin Processing Saga NextGen Provider noch installieren.

-

Mehr zu wie man Plugins in QGIS installiert und aktiviert findet ihr hier: -qgis-Interface#erweiterungen-plugins-installieren

-
-
- - - - -
- - - - -
- -
- -
-
-
- -
- -
- -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Installation — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ + + +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Installation

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Installation#

+

QGIS ist Open Source und daher frei und ohne Kosten für jeden verfügbar. Ihr könnt QGIS für Windows, Mac und Linux Rechner installieren.

+
+

Windows#

+

Für die Installation unter Windows verwenden wir den OSGeo4W Netzwerkinstaller. OSGeo4W ist ein Projekt, das Open Geo bezogene Software für Windows einfach zu installieren anbietet. Besucht die Projektseite https://trac.osgeo.org/osgeo4w/ und klickt dort auf den link Download the ​OSGeo4W network installer.

+
    +
  • Achtet darauf während des Installationsprozesses Advanced Install / Fortgeschrittene Installation zu wählen. Nur dann können die für diesen Kurs relevante Software präzise wählen:

    +
      +
    • QGIS Desktop

    • +
    • GRASS GIS

    • +
    • SAGA

    • +
    +
  • +
+

Videotutorial: https://www.youtube.com/watch?v=pja_EX0tVZA

+

Die gewählte Software wird dann über das Internet heruntergeladen und on-the-fly installiert.

+
+
+

Mac#

+

Ab Version 3.30 muss SAGA per plugin eingebunden werden

+

Unter https://qgis.org/en/site/forusers/download.html Download for macOS wählen. Dann den Link Download QGIS nutzen.

+

In QGIS dann das Plugin Processing Saga NextGen Provider installieren.

+

Mehr zu wie man Plugins in QGIS installiert und aktiviert findet ihr hier: +qgis-Interface#erweiterungen-plugins-installieren

+
+
+

Linux#

+

Ab Version 3.30 muss SAGA per plugin eingebunden werden

+

Für die installation unter Linux Systemen mit apt könnt ihr QGIS installieren:

+
sudo apt install qgis qgis-plugin-grass
+
+
+

In den herkömmlichen apt Paketquellen wird vermutlich eine ältere Version von QGIS installiert sein. Solltet ihr die Paketquelle Ubuntugis nutzen, beachtet die folgenden installations Hinweise auf https://qgis.org/en/site/forusers/alldownloads.html#repositories

+

Solltet ihr hierüber eine QGIS Version >3.30 installieren müsst ihr das Plugin Processing Saga NextGen Provider noch installieren.

+

Mehr zu wie man Plugins in QGIS installiert und aktiviert findet ihr hier: +qgis-Interface#erweiterungen-plugins-installieren

+
+
+ + + + +
+ + + + + + +
+ +
+
+
+ +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_2/en_data_sources.html b/content/Modul_2/en_data_sources.html old mode 100755 new mode 100644 index 8c0bd8f55..7e9789d88 --- a/content/Modul_2/en_data_sources.html +++ b/content/Modul_2/en_data_sources.html @@ -1,570 +1,570 @@ - - - - - - - - - - - - Data Sources — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Data Sources

- -
-
- -
-
-
- - - - -
- -
-

Data Sources#

-

override turbo

-
-
-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Data Sources — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Data Sources

+ +
+
+ +
+
+
+ + + + +
+ +
+

Data Sources#

+

override turbo

+
+
+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_2/en_qgis_basic_data_processing.html b/content/Modul_2/en_qgis_basic_data_processing.html old mode 100755 new mode 100644 index 543275384..ea6d34ef8 --- a/content/Modul_2/en_qgis_basic_data_processing.html +++ b/content/Modul_2/en_qgis_basic_data_processing.html @@ -1,656 +1,656 @@ - - - - - - - - - - - - Geodata and Geodata processing — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Geodata and Geodata processing#

-

Competences:

-
    -
  • Data Import

  • -
  • Geo features and attributes

  • -
  • Feature selection

  • -
  • Basemap selection

  • -
-
-

Data import#

-

Before you can start visualizing and analysing in QGIS, you need to import your data. Here you can look up, where to find different data sources. -Depending on which file format you want to import, the process differs slightly.

-
-

Vector data import#

-

The possible data formats are listed here. add link to heading
-Go to the data source manager and choose vector on the right. By clicking on the three dots you can browse your files and choose the ones you want to import.

-

datasource manager

-

import vector data

-
-
-

Raster data import#

-

Go to the data source manager and choose vector on the right. By clicking on the three dots you can browse your files and choose the ones you want to import.

-

datasource manager

-

import raster data

-
-
-

Delimited Text import#

-
-
-

GeoPackage import#

-
-
-

Adding basemap#

-
-
-
-

Geo features and attributes#

-
-
-

Feature selection#

-
-
-

Basemap selection#

-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodata and Geodata processing — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Geodata and Geodata processing#

+

Competences:

+
    +
  • Data Import

  • +
  • Geo features and attributes

  • +
  • Feature selection

  • +
  • Basemap selection

  • +
+
+

Data import#

+

Before you can start visualizing and analysing in QGIS, you need to import your data. Here you can look up, where to find different data sources. +Depending on which file format you want to import, the process differs slightly.

+
+

Vector data import#

+

The possible data formats are listed here. add link to heading
+Go to the data source manager and choose vector on the right. By clicking on the three dots you can browse your files and choose the ones you want to import.

+

datasource manager

+

import vector data

+
+
+

Raster data import#

+

Go to the data source manager and choose vector on the right. By clicking on the three dots you can browse your files and choose the ones you want to import.

+

datasource manager

+

import raster data

+
+
+

Delimited Text import#

+
+
+

GeoPackage import#

+
+
+

Adding basemap#

+
+
+
+

Geo features and attributes#

+
+
+

Feature selection#

+
+
+

Basemap selection#

+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_2/en_qgis_basic_data_processing_ex1.html b/content/Modul_2/en_qgis_basic_data_processing_ex1.html old mode 100755 new mode 100644 index 28c09cc92..580cc35df --- a/content/Modul_2/en_qgis_basic_data_processing_ex1.html +++ b/content/Modul_2/en_qgis_basic_data_processing_ex1.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Basic Geodata processing Exercise 1 — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Basic Geodata processing Exercise 1

- -
-
- -
-
-
- - - - -
- -
-

Basic Geodata processing Exercise 1#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Basic Geodata processing Exercise 1 — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Basic Geodata processing Exercise 1

+ +
+
+ +
+
+
+ + + + +
+ +
+

Basic Geodata processing Exercise 1#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_2/en_qgis_data_sources_ex1.html b/content/Modul_2/en_qgis_data_sources_ex1.html old mode 100755 new mode 100644 index 506c848eb..bd8b34082 --- a/content/Modul_2/en_qgis_data_sources_ex1.html +++ b/content/Modul_2/en_qgis_data_sources_ex1.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Data Sources Exercise 1 — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Data Sources Exercise 1

- -
-
- -
-
-
- - - - -
- -
-

Data Sources Exercise 1#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Data Sources Exercise 1 — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Data Sources Exercise 1

+ +
+
+ +
+
+
+ + + + +
+ +
+

Data Sources Exercise 1#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_2/en_qgis_geodata_concept.html b/content/Modul_2/en_qgis_geodata_concept.html old mode 100755 new mode 100644 index 736ebb536..99e9e62d2 --- a/content/Modul_2/en_qgis_geodata_concept.html +++ b/content/Modul_2/en_qgis_geodata_concept.html @@ -1,754 +1,755 @@ - - - - - - - - - - - - Geodata concept — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Geodata concept

- -
- -
-
- - - - -
- -
-

Geodata concept#

-

Competences:

-
    -
  • Projections

  • -
  • Layer concept

  • -
  • Vector and raster data (basic concepts)

  • -
  • Vector file formats

  • -
-
-

Projections#

-
-

Theory#

-

The earth is a sphere and cannot be represented on a flat map without being distorted. To able able to display the earth on a flat map for example as a rectangle it needs to be projected. For further explanation, watch this video.

-

For this translation, from a curved on a flat surface, thousands of different methods exist. These are called Coordinate Reference Systems (CRS).

-

Different Coordinate Reference Systems

-

Every projection comes with a trade-off in shape, direction, distance and area. That’s why it is important to choose different types of CRS for different use cases. -For example, Mercator projections don´t represent the area correctly. Google Maps still uses the Mercator to be able to represent streets correctly, since it works well on a small scale. On a big scale, the shape of the countries stay the same but the area is mispresented. You can check the true size in comparison to different placements on the map on this website. A popular example is Greenland in comparison with Africa, which seem on the map to be about the same size, but in reality Africa is a lot bigger.

-

Comparison Greenland - Africa

-

It’s important to work with the right projections, if not we will produce wrong results!

-

This table shows an overview on which projections to use for which needed characteristic:

- - - - - - - - - - - - - - - - - - - - - -

Mercator (cylindrical)

Lambert cylindrical

Albers conic

[x] shape

[ ] shape

[x] shape

[x] rotation

[x] rotation

[ ] rotation

[ ] area

[x] area

[x] area

-

For smaller areas local projections should be used, since they give a more accurate display at the expense of more distortion at the global level.

-

Local Coordinate Reference Systems

-
-
-

Application#

-

You can find all the projections and their CRS code at this website.

-

To change the projection of a vector file, click on Vector, Data Management Tools, Reproject Layer. Select your input layer and the target crs. Click on the three dots to Save to File… and click Run. For a detailed instruction click on this video.

-

To change the projection of a raster file, clickclick on Raster, Projections, Warp (Reproject). Choose your input layer and target crs. Click on the three dots to Save to File… and click Run. For a detailed instruction click on this video.

-

It is crucial that you are aware of the difference in data projection and project projection. They should always be the same, or else you will get wrong results! You can change the data projection by following the steps explained above. The project projection is on the bottom left corner, as seen here. -QGIS Interface -The interface then will be the same and by searching for the right EPSG you can change the projection.

-
-
-
-

Excercises#

-

Now it’s your turn!

-

You can apply your knowledge on this excercise by getting used to the interface and changing the projections.

-

Exercise 1 -–> in future link to HeiCloud

-

==explain and show often made mistakes?==

-

This Website provides explanations und solutions for often made mistakes.

-

In the Wiki are further tips.

-
-
-

Layer concept#

-

Geodata represents a real-world object on a map as a feature. A feature consists of two types of information: the location and attributes, f. e. name or ID. Those informations are collected in layers. A layer can only consist of geographic objects of the same type. [1]

-

By superpositioning different layers, you build your map and can obtain information of different sources. With those you then can perform analyses or adapt the representation by using symbols and colors.

-

Layer concept

-
-
-

Vector and raster data#

-

There are two file types of geographic data: vector and raster.

-

Vector and raster data

-
-

Vector
-Vector data contains a shape or a geometry. By using geometry objects (points, lines and polygons) the real world is represented. Each object stores the location (as adress or coordinates) and further attributes, f. e. name or ID. Which geometry is used, depends on the feature it represents. -Geometry vector data

-
-

Examples: buildings, streets

-
-
-
-

Raster
-Raster data are images which contain a matrix of pixels. Each pixel stores a value. -Since a raster is based on an image, the resolution is crucial. It defines the accuracy of the data and size of the pixels. -Raster data quality

-
-

Examples (stored as a value): elevation, temperature, land cover

-
-
-

In this picture you can see the same location, on the left as vector data, visualising streets and urban area, and on the right hand as raster data (satellite image), showing the land cover.

- - - - - - - - - - - -

vector

raster

same location as vector data

same location as raster data

-
-
-

Vector file formats#

-

Vector data can have the following data formats:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Filename extension

Name

Description

.shp

Shapefile

Old but still widely used geodataformat. Can only contain one dataset. The file has to consist of at least three different files (.shp, .shx, .dbf)

.gpkg

GeoPackage

Very versatile geodata format and the new standard for geodata. Can contain multiple datafiles (vector, raster and not spatial data like tables)

.kml

Keyhole Markup Language

Geodata format for use with Google Earth

.gpx

GPS Exchange Format

Geodata format for the exchange of coordinates. For example for waypoints of tracks.

.geojson

GeoJSON

Similar to shapefiles, but stores all information in a single file.

-

data formats

-
- -
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodata concept — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Geodata concept

+ +
+ +
+
+ + + + +
+ +
+

Geodata concept#

+

Competences:

+
    +
  • Projections

  • +
  • Layer concept

  • +
  • Vector and raster data (basic concepts)

  • +
  • Vector file formats

  • +
+
+

Projections#

+
+

Theory#

+

The earth is a sphere and cannot be represented on a flat map without being distorted. To able able to display the earth on a flat map for example as a rectangle it needs to be projected. For further explanation, watch this video. +preview video

+

For this translation, from a curved on a flat surface, thousands of different methods exist. These are called Coordinate Reference Systems (CRS).

+

Different Coordinate Reference Systems

+

Every projection comes with a trade-off in shape, direction, distance and area. That’s why it is important to choose different types of CRS for different use cases. +For example, Mercator projections don´t represent the area correctly. Google Maps still uses the Mercator to be able to represent streets correctly, since it works well on a small scale. On a big scale, the shape of the countries stay the same but the area is mispresented. You can check the true size in comparison to different placements on the map on this website. A popular example is Greenland in comparison with Africa, which seem on the map to be about the same size, but in reality Africa is a lot bigger.

+

Comparison Greenland - Africa

+

It’s important to work with the right projections, if not we will produce wrong results!

+

This table shows an overview on which projections to use for which needed characteristic:

+ + + + + + + + + + + + + + + + + + + + + +

Mercator (cylindrical)

Lambert cylindrical

Albers conic

[x] shape

[ ] shape

[x] shape

[x] rotation

[x] rotation

[ ] rotation

[ ] area

[x] area

[x] area

+

For smaller areas local projections should be used, since they give a more accurate display at the expense of more distortion at the global level.

+

Local Coordinate Reference Systems

+
+
+

Application#

+

You can find all the projections and their CRS code at this website.

+

To change the projection of a vector file, click on Vector, Data Management Tools, Reproject Layer. Select your input layer and the target crs. Click on the three dots to Save to File… and click Run. For a detailed instruction click on this video. +

+

To change the projection of a raster file, clickclick on Raster, Projections, Warp (Reproject). Choose your input layer and target crs. Click on the three dots to Save to File… and click Run. For a detailed instruction click on this video.

+

It is crucial that you are aware of the difference in data projection and project projection. They should always be the same, or else you will get wrong results! You can change the data projection by following the steps explained above. The project projection is on the bottom left corner, as seen here.

+

The interface then will be the same and by searching for the right EPSG you can change the projection.

+
+
+
+

Excercises#

+

Now it’s your turn!

+

You can apply your knowledge on this excercise by getting used to the interface and changing the projections.

+

Exercise 1 +–> in future link to HeiCloud

+

==explain and show often made mistakes?==

+

This Website provides explanations und solutions for often made mistakes.

+

In the Wiki are further tips.

+
+
+

Layer concept#

+

Geodata represents a real-world object on a map as a feature. A feature consists of two types of information: the location and attributes, f. e. name or ID. Those informations are collected in layers. A layer can only consist of geographic objects of the same type. [1]

+

By superpositioning different layers, you build your map and can obtain information of different sources. With those you then can perform analyses or adapt the representation by using symbols and colors.

+

Layer concept

+
+
+

Vector and raster data#

+

There are two file types of geographic data: vector and raster.

+

Vector and raster data

+
+

Vector
+Vector data contains a shape or a geometry. By using geometry objects (points, lines and polygons) the real world is represented. Each object stores the location (as adress or coordinates) and further attributes, f. e. name or ID. Which geometry is used, depends on the feature it represents. +Geometry vector data

+
+

Examples: buildings, streets

+
+
+
+

Raster
+Raster data are images which contain a matrix of pixels. Each pixel stores a value. +Since a raster is based on an image, the resolution is crucial. It defines the accuracy of the data and size of the pixels. +Raster data quality

+
+

Examples (stored as a value): elevation, temperature, land cover

+
+
+

In this picture you can see the same location, on the left as vector data, visualising streets and urban area, and on the right hand as raster data (satellite image), showing the land cover.

+ + + + + + + + + + + +

vector

raster

same location as vector data

same location as raster data

+
+
+

Vector file formats#

+

Vector data can have the following data formats:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename extension

Name

Description

.shp

Shapefile

Old but still widely used geodataformat. Can only contain one dataset. The file has to consist of at least three different files (.shp, .shx, .dbf)

.gpkg

GeoPackage

Very versatile geodata format and the new standard for geodata. Can contain multiple datafiles (vector, raster and not spatial data like tables)

.kml

Keyhole Markup Language

Geodata format for use with Google Earth

.gpx

GPS Exchange Format

Geodata format for the exchange of coordinates. For example for waypoints of tracks.

.geojson

GeoJSON

Similar to shapefiles, but stores all information in a single file.

+

data formats

+
+ +
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_2/en_qgis_geodata_concept_ex1.html b/content/Modul_2/en_qgis_geodata_concept_ex1.html old mode 100755 new mode 100644 index 372548b00..5d974d358 --- a/content/Modul_2/en_qgis_geodata_concept_ex1.html +++ b/content/Modul_2/en_qgis_geodata_concept_ex1.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Geodata Concept Exercise 1 — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Geodata Concept Exercise 1

- -
-
- -
-
-
- - - - -
- -
-

Geodata Concept Exercise 1#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodata Concept Exercise 1 — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Geodata Concept Exercise 1

+ +
+
+ +
+
+
+ + + + +
+ +
+

Geodata Concept Exercise 1#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_3/en_qgis_classification_ex1.html b/content/Modul_3/en_qgis_classification_ex1.html old mode 100755 new mode 100644 index 583b7cef8..e688ac074 --- a/content/Modul_3/en_qgis_classification_ex1.html +++ b/content/Modul_3/en_qgis_classification_ex1.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Geodata Classification Exercise 1 — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Geodata Classification Exercise 1

- -
-
- -
-
-
- - - - -
- -
-

Geodata Classification Exercise 1#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodata Classification Exercise 1 — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Geodata Classification Exercise 1

+ +
+
+ +
+
+
+ + + + +
+ +
+

Geodata Classification Exercise 1#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_3/en_qgis_data_classification.html b/content/Modul_3/en_qgis_data_classification.html old mode 100755 new mode 100644 index 04738ad36..302081e25 --- a/content/Modul_3/en_qgis_data_classification.html +++ b/content/Modul_3/en_qgis_data_classification.html @@ -1,668 +1,668 @@ - - - - - - - - - - - - Geodata Classification — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Geodata Classification#

-
-

Data Styling/ Classification#

-

Data classification is the process that allows you to assign different symbols to features. i.e. different objects in the same layer based on their properties. This allows users of the map to quickly see the properties of numerous features.

-

In QGIS, a style is a way of cartographic visualization that takes into account a layer’s individual and thematic features. It encompasses basic characteristics of symbology, such as the color and presence of fill, outline parameters, the use of markers, scale-dependent rendering, layer transparency, and interactions with other layers. Source

-
-
-

The Goal of Data Classification#

-

The basic goal of a classification scheme is to group together similar observations and split apart observations that are substantially different. In more technical terms, the goal is to find the optimal number of classes and where to put the breaks between those classes so as to minimize within group variance and maximize between group differences. For instance, if I had a data set with 4 observations of 1.3, 1.6, 3.5 and 3.9, many folks would be inclined to split those observations into 2 groups with 1.3 and 1.6 in the first group and 3.5 and 3.9 in the second because that pairing makes sense given the large numerical gap in the middle of the data range. Such an approach is common and is called “maximum breaks.”

-

However, there are often other considerations when classifying our data and simply maximizing between group differences may not be the primary goal: In the example above, it might be possible that 1.5 is a critical value and all that matters is to distinguish between locations above and below that critical break point (e.g., if a location has a reading below 1.5 they might be eligible for emergency funding). In this case, external constraints over-ride our mathematical solutions and despite being fairly close together 1.3 and 1.6 would now be placed in different classes since they straddle that breakpoint.

-
-

Note

-

Remember:

-
-

If you are going to classify your data you must decide both the number of classes and the method for breaking your data into ranges.

-

Source

-
-
-

Importance of data classification#

-

Data Classification is used to group a large number of observations into data ranges or classes. It is a useful tool to structure the data for choropleth maps automatically and it helps to reduce the information content. It allows to make the presentation of values much clearer. Individual observations are lost, small differences can be reduced and large ones can be emphasized and evaluated better. Distributional characteristics and the psychology of perception are taken into account. Source

-
-
-

How to classify data?#

-

To style or classify in Qgis, you must have an existing shapefile in your Qgis layer or upload the shapefile of the data you want to classify via Layer menu, then add layer, then add vector layer and under source botton, upload the shapefile that you intends to classify or style, then click ok and you can now see it in the layer panel. -The picture below shows the Sierra Leone food insecurity 2015 shapefile that we can to classify in the layers pannel.

-

-
    -
  • Right click on the shapefile in the layer pannel and then property

  • -
-

-
    -
  • Then a layer properties will pump up. Click on symbology and select the type of classification or style that you want from circle 1.

  • -
-

-
    -
  • Additionally, you can choose from single symbol, categorized and graduated in order to classify your data. Just next to it you will see color where you can choose color of your choice. At the bottom left-down, there is classify icon which allow you to classify different features in the layer to your choice. This classify icon can only work if you choose categorized or graduated style from up.

  • -
-

-
    -
  • Below the syle option, you can also select the value, symbol and the color ramp that you want

  • -
-

-
    -
  • Once you click on classify, you can then now see all the classify features of your data. You can change the color of any of this categorized features by right click and go to change color and select any color that you want. Apply and click ok

  • -
-

-
-

Categorized classification#

-
    -
  • The below screenshot shows the overview of the categorized map

  • -
-

-

See video of classification by categorized

-

-
-
-

Graduated classification#

-

Graduated styles are based on continuous values of an attribute field that define how each feature should be rendered. You can assign a range of symbols, colors, or sizes to each value, and QGIS will automatically classify your data into intervals or classes. Graduated symbols are most useful when you want to show clear differences between features with attribute values in different value ranges. The GIS Application will analyse the attribute data (e.g. height) and, based on the number of classes you request, create groupings for you.

-

See the below video of graduated classes classification

-

-
-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodata Classification — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Geodata Classification#

+
+

Data Styling/ Classification#

+

Data classification is the process that allows you to assign different symbols to features. i.e. different objects in the same layer based on their properties. This allows users of the map to quickly see the properties of numerous features.

+

In QGIS, a style is a way of cartographic visualization that takes into account a layer’s individual and thematic features. It encompasses basic characteristics of symbology, such as the color and presence of fill, outline parameters, the use of markers, scale-dependent rendering, layer transparency, and interactions with other layers. Source

+
+
+

The Goal of Data Classification#

+

The basic goal of a classification scheme is to group together similar observations and split apart observations that are substantially different. In more technical terms, the goal is to find the optimal number of classes and where to put the breaks between those classes so as to minimize within group variance and maximize between group differences. For instance, if I had a data set with 4 observations of 1.3, 1.6, 3.5 and 3.9, many folks would be inclined to split those observations into 2 groups with 1.3 and 1.6 in the first group and 3.5 and 3.9 in the second because that pairing makes sense given the large numerical gap in the middle of the data range. Such an approach is common and is called “maximum breaks.”

+

However, there are often other considerations when classifying our data and simply maximizing between group differences may not be the primary goal: In the example above, it might be possible that 1.5 is a critical value and all that matters is to distinguish between locations above and below that critical break point (e.g., if a location has a reading below 1.5 they might be eligible for emergency funding). In this case, external constraints over-ride our mathematical solutions and despite being fairly close together 1.3 and 1.6 would now be placed in different classes since they straddle that breakpoint.

+
+

Note

+

Remember:

+
+

If you are going to classify your data you must decide both the number of classes and the method for breaking your data into ranges.

+

Source

+
+
+

Importance of data classification#

+

Data Classification is used to group a large number of observations into data ranges or classes. It is a useful tool to structure the data for choropleth maps automatically and it helps to reduce the information content. It allows to make the presentation of values much clearer. Individual observations are lost, small differences can be reduced and large ones can be emphasized and evaluated better. Distributional characteristics and the psychology of perception are taken into account. Source

+
+
+

How to classify data?#

+

To style or classify in Qgis, you must have an existing shapefile in your Qgis layer or upload the shapefile of the data you want to classify via Layer menu, then add layer, then add vector layer and under source botton, upload the shapefile that you intends to classify or style, then click ok and you can now see it in the layer panel. +The picture below shows the Sierra Leone food insecurity 2015 shapefile that we can to classify in the layers pannel.

+

+
    +
  • Right click on the shapefile in the layer pannel and then property

  • +
+

+
    +
  • Then a layer properties will pump up. Click on symbology and select the type of classification or style that you want from circle 1.

  • +
+

+
    +
  • Additionally, you can choose from single symbol, categorized and graduated in order to classify your data. Just next to it you will see color where you can choose color of your choice. At the bottom left-down, there is classify icon which allow you to classify different features in the layer to your choice. This classify icon can only work if you choose categorized or graduated style from up.

  • +
+

+
    +
  • Below the syle option, you can also select the value, symbol and the color ramp that you want

  • +
+

+
    +
  • Once you click on classify, you can then now see all the classify features of your data. You can change the color of any of this categorized features by right click and go to change color and select any color that you want. Apply and click ok

  • +
+

+
+

Categorized classification#

+
    +
  • The below screenshot shows the overview of the categorized map

  • +
+

+

See video of classification by categorized

+

+
+
+

Graduated classification#

+

Graduated styles are based on continuous values of an attribute field that define how each feature should be rendered. You can assign a range of symbols, colors, or sizes to each value, and QGIS will automatically classify your data into intervals or classes. Graduated symbols are most useful when you want to show clear differences between features with attribute values in different value ranges. The GIS Application will analyse the attribute data (e.g. height) and, based on the number of classes you request, create groupings for you.

+

See the below video of graduated classes classification

+

+
+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_3/en_qgis_data_queries.html b/content/Modul_3/en_qgis_data_queries.html old mode 100755 new mode 100644 index 873e7ca88..6e410c052 --- a/content/Modul_3/en_qgis_data_queries.html +++ b/content/Modul_3/en_qgis_data_queries.html @@ -1,752 +1,754 @@ - - - - - - - - - - - - Geodata Selection and Queries — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Geodata Selection and Queries#

-
-

Geodata queries#

-

Spatial queries allows you to select features in layers by their spatial relationships (intersect, contain, touch etc.) with features from another layer. In Qgis, this functionality is available via the selection by location and extract by location processing tools.

-
-

Spatial queries: select by click#

-

This section demonstrate how to select an area or location by just a click and view its spatial features. Below is a map of Nigeria. Click on the icon number 1 which is the select feature and click on any part of the map that you want to select. See point number 2 which has already shown yellow as the selected area. Open the attribute table through the layer pannel, number 3 and click on number 4 to just view the feature of the selected part by clicking on selected features, then you arrive at number 6 which display only selected features.

-

-

See video of select by click

-

-
-
-

Spatial queries: select by polygon#

-

This section is similar to selection by click. Only that you will select features by polygon from number 1 and draw the polygon on the area you want to cover or view and then right click. you will see that the polygon area will be selected in yellow color just like number 3. View the attribute table and click on number 6 to show only selected features in the polygon that you have created. You can use icon number 7 to deselect features.

-

-

See video of select by radius

-

-
-
-

Spatial queries: select by location#

-

This section can not only be used to show the features but also to get visual idea of the spatial relationship of different areas together. It has several spatial query operations which includes intersect, contain, disjoint, equal, touch, overlap, are within and cross.

-
    -
  • Example below shows how to select by location by intersect. We want to see the spatial relationship between Nigeria and its neighboring countries in term of intersect by location.

  • -
  • Click on icon number 1 and select by location. You will select features from which area or shapefile you want from icon 3 and icon 5 as the shapefile you want to intersect with. Icon 4 shows the various operations that can be down with select by location. Then click on run - icon 6, and and close to see the intersect on display.

  • -
-

-
    -
  • The below screenshot shows the four countries that intersect Nigeria in yellow color. You can as well check the features of these four countries by opeing attribute table and view selected features.

  • -
-

-

See video of select by location with intersect

-

-

Additionally, you can play around all the geometric predictions of the features to be familiar with them. The example below shows selection by location by disjoint. We loaded neighboring countires to be disjointed from Nigerian map and now you can see all the disjointed countries in yellow color.

-

-

You can see the features of those countries by attribute table and show selected features.

-
-
-
-

Non-spatial queries#

-

Non-spatial queries describe characteristics of the features and this query show a place or feature irrespective of its location i.e. what instead of where. It is totally independent of geographic location and not relating to, occupying, or having the character of space. Non-spatial queries are crucial for analyzing and understanding the data associated with the spatial features in a GIS project, providing insights and facilitating decision-making based on non-spatial attributes. Non-spatial data is also known as attribute data.

-

There are two ways by which you can select and show the features of non-spatial data. Among which are manual selection or just by click and select by expression (arithmetic operators, string operators, logical operator etc.).

-
-

Manual selection#

-

We want to manually select three regions in the below vector layer through the attribute table. Open the attribute table, select any of the place you would like to select, press control bottom on your PC and click on any other features you would like to select. Then, you can click on show selected features and it will be automatically highlighted in yellow color on the Qgis display panel.

-

-

See video -

-
-
-

Select by Expression#

-

You can use the “Select by expression” option in the layer properties (see icon 1) or through the Select menu in the attribute table (see icon 2) to apply an expression to a layer. Sometimes, you can also find the icon of select by expression at (see icon 3) by click on it and choose select features by expression or just by Ctrl plus F3 on your key board. This option can be used to select features based on attribute data. Icon 4 is the select by expression command prompt where your expression will be written.

-

-
-
-

Select by Expression- Arithmetic operators (integer, float fields)#

-

• >, <, =, !=

-

• Note that your command in the select by expression depend on the attribute features on the shape file you want express.

-

• For example, imagine that you want to show the State that has more than 10 million shape-length in the below map of Nigeria showing its 37 States.

-
    -
  1. Firstly, select your file from the layer panel, open the select by expression table, click on Fields and Values (don’t forget that these fields and values depends on the characteristics of the file you are opening).

  2. -
  3. Scroll down to shape length and double click on it, you can then see it at the expression layer display.

  4. -
  5. Go back to the search bar layer by click on the operators to select the arithmetic command you would like to use. In this case, we are using > sign because we want to figure out the state that has more than 10 million for instance.

  6. -
  7. After double click on the greater than sign, then input the numeric command that you want to use. In this case we enter 10.

  8. -
  9. Lastly, click on select features. It will automatically select all the states that have more than 10 million in its shape length. You can as well see the number of selected features at the top of the select by expression command prompt layer. Then open the attribute table to see the selected features.

  10. -
-

-

The below are the thelve features selected.

-

-

See video

-

-
-
-

Select by Expression- String operators (text fields e.g “Like”)#

-

• Imagine you want to select a country like Nigeria.

-

-

To select by expression by like, please follow this steps:

-
    -
  1. Select the file you would like to run

  2. -
  3. Click on select by expression

  4. -
  5. Click on Fields and Values

  6. -
  7. Select admin0Name (This means names of the countries according to the attribute table fields names)

  8. -
  9. Click on Operators to select the command you would like to use

  10. -
  11. Select ‘Like’

  12. -
  13. Click again on the Fields and Values

  14. -
  15. Click on All Unique

  16. -
  17. Select Nigeria i.e. we want to express to select a country like Nigeria

  18. -
  19. Click on select features

  20. -
  21. You call all see the expression command here

  22. -
  23. A country like Nigeria has been selected and you can open the attribute table to see the selected feature(s).

  24. -
-
-
-

Select by Expression- Placeholder (e.g %)#

-

• Imagine you want to select all the countries that ends with ’a’

-

-
    -
  1. Follow the previous steps.

  2. -
  3. You have three input to express here. Click on Fields and Values to select admin0RefName (Name of the countries title as per the attribute table)

  4. -
  5. Go to operators to select Like

  6. -
  7. You can enter manually at the expression layer ‘%a’ (i.e. the countries that ends with a)

  8. -
  9. Click on Select features to see all the countries that ends with a.

  10. -
-
-
-

Select by Expression- Logical operators (AND, OR)#

-

This selection adds one or two command expression together. For example, you want to select the state that has more than 12 million in shape length AND that has more than 3 million shape area simultaneously from the map of 37 States of Nigeria. Then this command holds: “Shape Length” > 12 AND “Shape_Area” > 3 .

-

-

You can get it down by a click on Fields and Values, proceed to click on Shape length and input your arithmetic operator > with the figure of your choice via Operators, then add the connector which is AND and go back to Fields and Values to input the second command of Shape area and add the arithmetic operator of > with the figure you want. Lastly, click on select features to see the states that have shape length of more than 12 million and at the same time having shape area of more than 3 million. Visit the attribute table to see the selected features.

-
-
-
-

Save selected features#

-

How to save selected features as a new file?

-

You can save the selected features as a new shape file.

-
    -
  1. Click on Layer properties

  2. -
  3. Click on Export

  4. -
  5. Save only selected features

  6. -
-

-

• Right click on the shape file you want to save the selected features from in the Layers panel -• Click on export -• Save selected features as -• A save vector layer will pump up and you can change the Format if you want but in this case we are using GeoPackage format -• Click on file name to properly save it in the folder of your choice on your PC -• Click on save only selected features -• Click on Ok. -• Then, it will automatically appear on your Layer panel as seen below.

-

-

The video below shows how to export and save selected features.

-

-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodata Selection and Queries — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Geodata Selection and Queries#

+
+

Geodata queries#

+

Spatial queries allows you to select features in layers by their spatial relationships (intersect, contain, touch etc.) with features from another layer. In Qgis, this functionality is available via the selection by location and extract by location processing tools.

+
+

Spatial queries: select by click#

+

This section demonstrate how to select an area or location by just a click and view its spatial features. Below is a map of Nigeria. Click on the icon number 1 which is the select feature and click on any part of the map that you want to select. See point number 2 which has already shown yellow as the selected area. Open the attribute table through the layer pannel, number 3 and click on number 4 to just view the feature of the selected part by clicking on selected features, then you arrive at number 6 which display only selected features.

+

+

See video of select by click

+

+
+
+

Spatial queries: select by polygon#

+

This section is similar to selection by click. Only that you will select features by polygon from number 1 and draw the polygon on the area you want to cover or view and then right click. you will see that the polygon area will be selected in yellow color just like number 3. View the attribute table and click on number 6 to show only selected features in the polygon that you have created. You can use icon number 7 to deselect features.

+

+

See video of select by radius

+

+
+
+

Spatial queries: select by location#

+

This section can not only be used to show the features but also to get visual idea of the spatial relationship of different areas together. It has several spatial query operations which includes intersect, contain, disjoint, equal, touch, overlap, are within and cross.

+
    +
  • Example below shows how to select by location by intersect. We want to see the spatial relationship between Nigeria and its neighboring countries in term of intersect by location.

  • +
  • Click on icon number 1 and select by location. You will select features from which area or shapefile you want from icon 3 and icon 5 as the shapefile you want to intersect with. Icon 4 shows the various operations that can be down with select by location. Then click on run - icon 6, and and close to see the intersect on display.

  • +
+

+
    +
  • The below screenshot shows the four countries that intersect Nigeria in yellow color. You can as well check the features of these four countries by opeing attribute table and view selected features.

  • +
+

+

See video of select by location with intersect

+

+

Additionally, you can play around all the geometric predictions of the features to be familiar with them. The example below shows selection by location by disjoint. We loaded neighboring countires to be disjointed from Nigerian map and now you can see all the disjointed countries in yellow color.

+

+

You can see the features of those countries by attribute table and show selected features.

+
+
+
+

Non-spatial queries#

+

Non-spatial queries describe characteristics of the features and this query show a place or feature irrespective of its location i.e. what instead of where. It is totally independent of geographic location and not relating to, occupying, or having the character of space. Non-spatial queries are crucial for analyzing and understanding the data associated with the spatial features in a GIS project, providing insights and facilitating decision-making based on non-spatial attributes. Non-spatial data is also known as attribute data.

+

There are two ways by which you can select and show the features of non-spatial data. Among which are manual selection or just by click and select by expression (arithmetic operators, string operators, logical operator etc.).

+
+

Manual selection#

+

We want to manually select three regions in the below vector layer through the attribute table. Open the attribute table, select any of the place you would like to select, press control bottom on your PC and click on any other features you would like to select. Then, you can click on show selected features and it will be automatically highlighted in yellow color on the Qgis display panel.

+

+

See video +

+
+
+

Select by Expression#

+

You can use the “Select by expression” option in the layer properties (see icon 1) or through the Select menu in the attribute table (see icon 2) to apply an expression to a layer. Sometimes, you can also find the icon of select by expression at (see icon 3) by click on it and choose select features by expression or just by Ctrl plus F3 on your key board. This option can be used to select features based on attribute data. Icon 4 is the select by expression command prompt where your expression will be written.

+

+
+
+

Select by Expression- Arithmetic operators (integer, float fields)#

+

• >, <, =, !=

+

• Note that your command in the select by expression depend on the attribute features on the shape file you want express.

+

• For example, imagine that you want to show the State that has more than 10 million shape-length in the below map of Nigeria showing its 37 States.

+
    +
  1. Firstly, select your file from the layer panel, open the select by expression table, click on Fields and Values (don’t forget that these fields and values depends on the characteristics of the file you are opening).

  2. +
  3. Scroll down to shape length and double click on it, you can then see it at the expression layer display.

  4. +
  5. Go back to the search bar layer by click on the operators to select the arithmetic command you would like to use. In this case, we are using > sign because we want to figure out the state that has more than 10 million for instance.

  6. +
  7. After double click on the greater than sign, then input the numeric command that you want to use. In this case we enter 10.

  8. +
  9. Lastly, click on select features. It will automatically select all the states that have more than 10 million in its shape length. You can as well see the number of selected features at the top of the select by expression command prompt layer. Then open the attribute table to see the selected features.

  10. +
+

+

The below are the thelve features selected.

+

+

See video

+

+
+
+

Select by Expression- String operators (text fields e.g “Like”)#

+

• Imagine you want to select a country like Nigeria.

+

+

To select by expression by like, please follow this steps:

+
    +
  1. Select the file you would like to run

  2. +
  3. Click on select by expression

  4. +
  5. Click on Fields and Values

  6. +
  7. Select admin0Name (This means names of the countries according to the attribute table fields names)

  8. +
  9. Click on Operators to select the command you would like to use

  10. +
  11. Select ‘Like’

  12. +
  13. Click again on the Fields and Values

  14. +
  15. Click on All Unique

  16. +
  17. Select Nigeria i.e. we want to express to select a country like Nigeria

  18. +
  19. Click on select features

  20. +
  21. You call all see the expression command here

  22. +
  23. A country like Nigeria has been selected and you can open the attribute table to see the selected feature(s).

  24. +
+
+
+

Select by Expression- Placeholder (e.g %)#

+

• Imagine you want to select all the countries that ends with ’a’

+

+
    +
  1. Follow the previous steps.

  2. +
  3. You have three input to express here. Click on Fields and Values to select admin0RefName (Name of the countries title as per the attribute table)

  4. +
  5. Go to operators to select Like

  6. +
  7. You can enter manually at the expression layer ‘%a’ (i.e. the countries that ends with a)

  8. +
  9. Click on Select features to see all the countries that ends with a.

  10. +
+
+
+

Select by Expression- Logical operators (AND, OR)#

+

This selection adds one or two command expression together. For example, you want to select the state that has more than 12 million in shape length AND that has more than 3 million shape area simultaneously from the map of 37 States of Nigeria. Then this command holds: “Shape Length” > 12 AND “Shape_Area” > 3 .

+

+

You can get it down by a click on Fields and Values, proceed to click on Shape length and input your arithmetic operator > with the figure of your choice via Operators, then add the connector which is AND and go back to Fields and Values to input the second command of Shape area and add the arithmetic operator of > with the figure you want. Lastly, click on select features to see the states that have shape length of more than 12 million and at the same time having shape area of more than 3 million. Visit the attribute table to see the selected features.

+
+
+
+

Save selected features#

+

How to save selected features as a new file?

+

You can save the selected features as a new shape file.

+
    +
  1. Click on Layer properties

  2. +
  3. Click on Export

  4. +
  5. Save only selected features

  6. +
+

+

• Right click on the shape file you want to save the selected features from in the Layers panel +• Click on export +• Save selected features as +• A save vector layer will pump up and you can change the Format if you want but in this case we are using GeoPackage format +• Click on file name to properly save it in the folder of your choice on your PC +• Click on save only selected features +• Click on Ok. +• Then, it will automatically appear on your Layer panel as seen below.

+

+

The video below shows how to export and save selected features.

+

+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_3/en_qgis_data_queries_ex1.html b/content/Modul_3/en_qgis_data_queries_ex1.html old mode 100755 new mode 100644 index a11f9580f..e546f92f4 --- a/content/Modul_3/en_qgis_data_queries_ex1.html +++ b/content/Modul_3/en_qgis_data_queries_ex1.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Selection and Queries Exercise 1 — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Selection and Queries Exercise 1

- -
-
- -
-
-
- - - - -
- -
-

Selection and Queries Exercise 1#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Selection and Queries Exercise 1 — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Selection and Queries Exercise 1

+ +
+
+ +
+
+
+ + + + +
+ +
+

Selection and Queries Exercise 1#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_3/en_qgis_digitalisation.html b/content/Modul_3/en_qgis_digitalisation.html old mode 100755 new mode 100644 index 64c8caaa7..515534b66 --- a/content/Modul_3/en_qgis_digitalisation.html +++ b/content/Modul_3/en_qgis_digitalisation.html @@ -1,750 +1,752 @@ - - - - - - - - - - - - Digitalisation — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Digitalisation#

-
-

What is Digitization?#

-

Digitization is the process of converting geographic (raster) data into digital form (vector data). During this process, spatial data on maps or images are traced as points, polylines or polygons. Digitization is one of the important tasks for a GIS specialist and it has many uses in GIS, including recording and displaying geographic information, generating map layers, and storing data. Digital datasets usually contain data that can be represented as numbers or symbols such as text or graphics. The process can also involve converting analogue images into digital ones. Digitization in GIS can be integrated with many other software applications like CAD (Computer-Aided Design), 3D modelling, etc. Source

-
-
-

Uses of Digitizing in QGIS#

-

• The digital map has become one of the most efficient tools for surveying and analyzing data across industries especially for geologists, geographers, urban planners, etc.

-

• It allows managers and staff members to easily access information when needed.

-

• Digitization often make it easier for companies to make the edits by importing the digitized data into a PDF or jpg format whenever there are changes that need to be made to the QGIS file.

-

• It also gives decision-makers access to maps in their preferred format such as PDF and jpg when needed.

-

• Digitization has made it possible to store and process data at a much faster rate.

-

• It also provides more flexible data input and improve efficiency of ever-changing spatial information.

-
-
-

Digitization toolbars#

-

Firstly, you need to check if Digitizing Toolbox is activated in your QGIS in order to digitize. If not then you can activate it using following process.

-
    -
  1. Click view tab in the menu bar and click toolbar and then check digitizing and advance digitizing tool box.

  2. -
-

-

A tool box like this should appear on top of your Qgis

-

-
-
-

Digital data creation#

-
    -
  • Digital can be created in points, lines, polygons and in shapefiles.

  • -
-
-

Creation of point data#

-

Click on the following numbers bottons as seen in the picture below. Number 1 will switch to edit mode, number 2 is to create a new entry point, number 3 is to move or copy point and number 4 is to delete entry point.

-

-
    -
  • Create a new point: Use the “Create a new entity” button > left-click on the map > enter the attributes > click OK > a new point is created.

  • -
-

-

You can name the point as you want and enter any number in the ID and click ok. The new point feature has been created and named which can be easily seen on the map.

-
-
-

Creation of line data#

-

The method is similar to digitising a point (see above).This can be possible when you have firstly created a new line shapefiles layer. Remember to change the geometry type into lines because we are creating lines data now.

-

-

See video of line data creation

-

-
-

Note

-

Try:

-
-

Use the “Create new line” button and click several times on the map (left button) to draw the different parts of your line. When this is done, right-click to complete your line and access the Attributes window.> Complete the attributes and click OK

-
-
-

Creation of polygon data#

-

The method is similar to digitising a point or a line (see above). Only the fourth icon changes slightly: this one corresponds to “Create a new polygon”

-

-
-

Tip

-

Caution:

-
-

Please remember to firstly created a new polygon shapefiles layer so thatthe icon to create a polygon can be active and ensure you change the geometry type into polygons because we are creating polygon data now.

-

See video of polygon data creation

-

-
-
-

Creation of new shapefile data#

-
    -
  • Go to Layer, Create Layer, New Shapefile Layer in the top menu.

  • -
  • In the New Shapefile dialog, specify the name and location for the new shapefile.

  • -
  • Select the geometry type for the shapefile from the Type dropdown (e.g. Point, line, Polygon).

  • -
  • Click the OK button to create the shapefile

  • -
-

-
    -
  • The new shapefile layer

  • -
-

-
-
-
-

Create Layer#

-

Now add some layers for drawing. Click layer in the menu bar, select create layer and select new spatialite layer or select new shapefile layer if you have to digitize a single feature like some places or roads or buildings. We are choosing new spatialite layer because we want to draw more than one feature in single file and it is easy to transfer this file.

-

Next

-

Click ‘…’ browse button and save your database. Give name to your layer, select type of layer and specify attributes and their type such as text or numerals and click add attributes to the list and click OK. Specify CRS of the layer same as the CRS of Raster data.

-

-
-
-

Digital data editing#

-

Select the layer in the Layers panel and click on Toggle Editing under Layer. Alternatively, you can right-click on a layer in the Layers panel and choose Toggle Editing from the context menu. Multiple layers can be edited at a time. The layer currently being edited is the one selected in the Layers panel.

-

-
-

Feature attribute selection and editing#

-

The first group of tools in the Attributes toolbar allows us to select features on the map using the mouse. The following screenshot shows the Select Feature(s) tool. We can select a single feature by clicking on it, or select multiple features by drawing a rectangle.

-

-
    -
  • How to export selected features

  • -
-

-
-
-
-

Editing data - Data creation and deletion#

-
    -
  • To create or delete a field in your attribute table you need to be in edit mode, click on the Switch to edit mode button.

  • -
-

-
    -
  • To add new data field; click on symbol circle 1 and to delete a data field; click on symbol circle 2

  • -
-

-
-
-

Attributes table editing#

-

The attribute table displays information on features of a selected layer. Features in the table can be searched, selected, moved or even edited. It is also possible to right-click on the layer and choose openTable Open Attribute Table from the drop-down menu, or to click on the openTable Open Attribute Table button in the Attributes toolbar.

-

If you prefer shortcuts, F6 will open the attribute table. Shift+F6 will open the attribute table filtered to selected features and Ctrl+F6 will open the attribute table filtered to visible features.

-

-
    -
  • Right click the layer in the Layers Panel then click the Open Attribute Table menu option. Click the Toggle Editing Mode button. Click the New Field button. Input the field’s Name, Type, and Length, then click the OK button.

  • -
-

-

-
-
-

Digitization Errors in QGIS#

-

Positional errors are inevitable when data are manually digitized. The most common examples include undershooting and overshooting. When your coordinates do not connect as they should, and overshooting, when the lines go past where they should. Often these errors are not visible unless you zoom in quite a bit on the coordinates. Setting a fuzzy tolerance (snapping tolerance) is used to reduce undershoots and overshoots. The snapping tolerance is the minimum tolerated distance between nodes, lines and/or vertices.

-

-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Digitalisation — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Digitalisation#

+
+

What is Digitization?#

+

Digitization is the process of converting geographic (raster) data into digital form (vector data). During this process, spatial data on maps or images are traced as points, polylines or polygons. Digitization is one of the important tasks for a GIS specialist and it has many uses in GIS, including recording and displaying geographic information, generating map layers, and storing data. Digital datasets usually contain data that can be represented as numbers or symbols such as text or graphics. The process can also involve converting analogue images into digital ones. Digitization in GIS can be integrated with many other software applications like CAD (Computer-Aided Design), 3D modelling, etc. Source

+
+
+

Uses of Digitizing in QGIS#

+

• The digital map has become one of the most efficient tools for surveying and analyzing data across industries especially for geologists, geographers, urban planners, etc.

+

• It allows managers and staff members to easily access information when needed.

+

• Digitization often make it easier for companies to make the edits by importing the digitized data into a PDF or jpg format whenever there are changes that need to be made to the QGIS file.

+

• It also gives decision-makers access to maps in their preferred format such as PDF and jpg when needed.

+

• Digitization has made it possible to store and process data at a much faster rate.

+

• It also provides more flexible data input and improve efficiency of ever-changing spatial information.

+
+
+

Digitization toolbars#

+

Firstly, you need to check if Digitizing Toolbox is activated in your QGIS in order to digitize. If not then you can activate it using following process.

+
    +
  1. Click view tab in the menu bar and click toolbar and then check digitizing and advance digitizing tool box.

  2. +
+

+

A tool box like this should appear on top of your Qgis

+

+
+
+

Digital data creation#

+
    +
  • Digital can be created in points, lines, polygons and in shapefiles.

  • +
+
+

Creation of point data#

+

Click on the following numbers bottons as seen in the picture below. Number 1 will switch to edit mode, number 2 is to create a new entry point, number 3 is to move or copy point and number 4 is to delete entry point.

+

+
    +
  • Create a new point: Use the “Create a new entity” button > left-click on the map > enter the attributes > click OK > a new point is created.

  • +
+

+

You can name the point as you want and enter any number in the ID and click ok. The new point feature has been created and named which can be easily seen on the map.

+
+
+

Creation of line data#

+

The method is similar to digitising a point (see above).This can be possible when you have firstly created a new line shapefiles layer. Remember to change the geometry type into lines because we are creating lines data now.

+

+

See video of line data creation

+

+
+

Note

+

Try:

+
+

Use the “Create new line” button and click several times on the map (left button) to draw the different parts of your line. When this is done, right-click to complete your line and access the Attributes window.> Complete the attributes and click OK

+
+
+

Creation of polygon data#

+

The method is similar to digitising a point or a line (see above). Only the fourth icon changes slightly: this one corresponds to “Create a new polygon”

+

+
+

Tip

+

Caution:

+
+

Please remember to firstly created a new polygon shapefiles layer so thatthe icon to create a polygon can be active and ensure you change the geometry type into polygons because we are creating polygon data now.

+

See video of polygon data creation

+

+
+
+

Creation of new shapefile data#

+
    +
  • Go to Layer, Create Layer, New Shapefile Layer in the top menu.

  • +
  • In the New Shapefile dialog, specify the name and location for the new shapefile.

  • +
  • Select the geometry type for the shapefile from the Type dropdown (e.g. Point, line, Polygon).

  • +
  • Click the OK button to create the shapefile

  • +
+

+
    +
  • The new shapefile layer

  • +
+

+
+
+
+

Create Layer#

+

Now add some layers for drawing. Click layer in the menu bar, select create layer and select new spatialite layer or select new shapefile layer if you have to digitize a single feature like some places or roads or buildings. We are choosing new spatialite layer because we want to draw more than one feature in single file and it is easy to transfer this file.

+

Next

+

Click ‘…’ browse button and save your database. Give name to your layer, select type of layer and specify attributes and their type such as text or numerals and click add attributes to the list and click OK. Specify CRS of the layer same as the CRS of Raster data.

+

+
+
+

Digital data editing#

+

Select the layer in the Layers panel and click on Toggle Editing under Layer. Alternatively, you can right-click on a layer in the Layers panel and choose Toggle Editing from the context menu. Multiple layers can be edited at a time. The layer currently being edited is the one selected in the Layers panel.

+

+
+

Feature attribute selection and editing#

+

The first group of tools in the Attributes toolbar allows us to select features on the map using the mouse. The following screenshot shows the Select Feature(s) tool. We can select a single feature by clicking on it, or select multiple features by drawing a rectangle.

+

+
    +
  • How to export selected features

  • +
+

+
+
+
+

Editing data - Data creation and deletion#

+
    +
  • To create or delete a field in your attribute table you need to be in edit mode, click on the Switch to edit mode button.

  • +
+

+
    +
  • To add new data field; click on symbol circle 1 and to delete a data field; click on symbol circle 2

  • +
+

+
+
+

Attributes table editing#

+

The attribute table displays information on features of a selected layer. Features in the table can be searched, selected, moved or even edited. It is also possible to right-click on the layer and choose openTable Open Attribute Table from the drop-down menu, or to click on the openTable Open Attribute Table button in the Attributes toolbar.

+

If you prefer shortcuts, F6 will open the attribute table. Shift+F6 will open the attribute table filtered to selected features and Ctrl+F6 will open the attribute table filtered to visible features.

+

+
    +
  • Right click the layer in the Layers Panel then click the Open Attribute Table menu option. Click the Toggle Editing Mode button. Click the New Field button. Input the field’s Name, Type, and Length, then click the OK button.

  • +
+

+

+
+
+

Digitization Errors in QGIS#

+

Positional errors are inevitable when data are manually digitized. The most common examples include undershooting and overshooting. When your coordinates do not connect as they should, and overshooting, when the lines go past where they should. Often these errors are not visible unless you zoom in quite a bit on the coordinates. Setting a fuzzy tolerance (snapping tolerance) is used to reduce undershoots and overshoots. The snapping tolerance is the minimum tolerated distance between nodes, lines and/or vertices.

+

+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_3/en_qgis_digitalisation_ex1.html b/content/Modul_3/en_qgis_digitalisation_ex1.html old mode 100755 new mode 100644 index 06d6c1a0f..5d490760a --- a/content/Modul_3/en_qgis_digitalisation_ex1.html +++ b/content/Modul_3/en_qgis_digitalisation_ex1.html @@ -1,587 +1,588 @@ - - - - - - - - - - - - <no title> — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- - - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + <no title> — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_4/en_qgis_map_design_2.html b/content/Modul_4/en_qgis_map_design_2.html old mode 100755 new mode 100644 index 3bd34627c..55ff62027 --- a/content/Modul_4/en_qgis_map_design_2.html +++ b/content/Modul_4/en_qgis_map_design_2.html @@ -1,930 +1,930 @@ - - - - - - - - - - - - Print layout — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- - -
-

Good practices and common mistakes in mapping#

-

In order to produce good maps, there are some basic rules to follow and common semiological mistakes to avoid.

-
-

Map composition#

-
-

Key elements of a map#

-

A map is never complete without the following elements:

-
    -
  • Title

  • -
  • Legend

  • -
  • Scale

  • -
  • Orientation

  • -
  • Source

  • -
  • Localization (Overview) Map

  • -
  • Author

  • -
-
-

Image?

-
-
-

The title summarizes in a few words the information represented on the map, giving the reader useful contextual information. Titles should include the following information:

-
    -
  • The place, with several degrees of precision according to the scale (Country, Region, Township,…)

  • -
  • The subject intelligible by all (make sure that the acronyms used are detailed elsewhere on the map)

  • -
  • the date of the represented data

  • -
-

Examples:

-
    -
  • “Access to health care in Maputo, Mozambique in 2022”

  • -
  • “Flooding Risk in Ghardaia, Algeria”

  • -
-

The legend is key to interpreting the information represented on the map. Without it, it is impossible to understand the meaning of the different symbols and colours used map. In order to guide the reader, the legend must be:

-
    -
  • Comprehensive: All the data on the map must be presented in the legend.

  • -
  • Representative: the figures on the map and in the legend must match (same size, same color, …).

  • -
  • Organized: the data in the legend can be grouped by thematic categories (health, environment, background map, …) or by type of figure (point, line, surface) to facilitate reading.

  • -
-
-../../_images/en_legend_good_practice.png -
-

Fig. 24 Example of a well organized legend#

-
-
-

The scale bar is essential to a map since it gives the correspondence between a distance measured on the map and the distance in the real world. There are two types of scales:

-
    -
  • The numerical Scale is expressed as a fraction (1/25000 or 1:25000) which indicates the equivalence between 1 centimeter on the map and the real distance. It is a scale that can be calculated with GIS software, and is often found in topographic maps

    -
      -
    • A scale of 1:25000 means that 1 cm represents 25000 cm (or 250 meters) on the gound.

    • -
    -
  • -
  • the graphical scale is expressed by a line on the map, with an associated distance value. This scale is very useful to have an idea of the distances on the ground. The graphical scale will always be the correct size, even if a different printing format is used, since it will undergo the same transformation as the rest of the map

  • -
-
-fig/example_scale_bar.png" -
-

Fig. 25 A scale bar#

-
-
-

Orientation

-

Even if by default the majority of the maps are oriented to the North, it is still necessary to specify the orientation of the map. It is often indicated by an arrow to the North. Sometimes the orientation of different in order to optimize the representation of the study area on the map.

-
-
-
-

Sources#

-

Any data represented on a map should have its sources indicated. This provides a record of the data used, but also references the author of the data. The reader will then be able to look for more information on the sources if he wishes. Open access geographic data, such as OpenStreetMap, are more and more numerous and must also be cited on the maps.

-

It is possible to give the source of each data under the legend, or to do it in a dedicated space in the map. The level of precision of the sources varies according to the author or the precision of the data.

-
-
-

The 4 semiological errors#

-
-

1. Proportional circles vs. solid colors#

-
-

Caution

-

DO NOT represent quantitative stock character/data with a solid color.

-
-

This is one of the most common mistakes in mapping. While this representation is graphically appealing, it is still false and distracts from the message of the map.

-

It is a mistake because:

-
    -
  • You lose the order relationship between the data (a circle can be twice as big as another one, a color cannot be “twice as dark”)

  • -
  • Countries with a large surface area stand out visually (eg.: Russia in the example below)

  • -
  • We are trying to represent data that has nothing to do with the area of a country, but rather speaks of individual elements

  • -
-
-

Add different example

-
-
-
-

Color gradient vs. distinct color palette#

-
-

Caution

-

DO NOT use a separate color palette to represent ordered entities

-
-

A representatin that “feels right” because it seems logical that a “low” rate would be represented differently than a “high” rate.

-

It is a mistake because:

-
    -
  • By using a differentiating color variable, you lose the ordinal relationship between entities. Instead, a gradient of the same color that should be used.

  • -
  • Different colors are used to differentiate between distinct entities.

  • -
-
-
-

Gradient in a single color vs. Gradient between two colors#

-
-

Caution

-

DO NOT use a gradient across two colors for an always positive data.

-
-

This is a mistake that is often found because our brais are used to prioritizing certain colors, especially green to red, or blue to red. We must remember that __if our values are always positive, we must stay in the same color that will degrade into several shades.

-
-

What about height?

-
-

A gradient between two colors can be used when it is necessary to show a gradation that can go from negative to positive. As for temperatures, it makes sense to distinguish negative values (in shades of blue for example) and positive values (in shades of red).

-

It is a mistake because:

-
    -
  • By choosing different colors for values that are linked to each other, our eyes perceive a difference between the elements, and not an order.

  • -
  • Darker colors stand out more than lighter colors, and can be perceived as more important.

  • -
  • The map will send a message of divergence, of opposition between certain values, when we are simply trying to represent a hierarchy between values

  • -
  • In this way, the color itself directly indicates information about the trend (positive/negative or increasing/decreasing).

  • -
-
-
-

Limited geometric symbols vs. complex icons and symbols#

-
-

Caution

-

DO NOT use too many symbols in a thematic map

-
-

Incorportating a multitude of symbols (and data) for a informative map is a common desire. However, too many symbols can overload the map and reduce the readability of the map. Using too many symbols (especially geometric ones) can make it difficult to read and understand the map.
-__The eye can easily distinguish 4 to 5 different symbols. Beyond that, it is difficult to dinstinguish the elements. This is a less serious error because it does not convey false information on the map.

-

It is a mistake because:

-
    -
  • It complicates the map and limits its impact.

  • -
  • Sometimes you are forced to represent several symbols, so you must be careful about overlapping points and overloading the map.

  • -
-
-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Print layout — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ + +
+

Good practices and common mistakes in mapping#

+

In order to produce good maps, there are some basic rules to follow and common semiological mistakes to avoid.

+
+

Map composition#

+
+

Key elements of a map#

+

A map is never complete without the following elements:

+
    +
  • Title

  • +
  • Legend

  • +
  • Scale

  • +
  • Orientation

  • +
  • Source

  • +
  • Localization (Overview) Map

  • +
  • Author

  • +
+
+

Image?

+
+
+

The title summarizes in a few words the information represented on the map, giving the reader useful contextual information. Titles should include the following information:

+
    +
  • The place, with several degrees of precision according to the scale (Country, Region, Township,…)

  • +
  • The subject intelligible by all (make sure that the acronyms used are detailed elsewhere on the map)

  • +
  • the date of the represented data

  • +
+

Examples:

+
    +
  • “Access to health care in Maputo, Mozambique in 2022”

  • +
  • “Flooding Risk in Ghardaia, Algeria”

  • +
+

The legend is key to interpreting the information represented on the map. Without it, it is impossible to understand the meaning of the different symbols and colours used map. In order to guide the reader, the legend must be:

+
    +
  • Comprehensive: All the data on the map must be presented in the legend.

  • +
  • Representative: the figures on the map and in the legend must match (same size, same color, …).

  • +
  • Organized: the data in the legend can be grouped by thematic categories (health, environment, background map, …) or by type of figure (point, line, surface) to facilitate reading.

  • +
+
+../../_images/en_legend_good_practice.png +
+

Fig. 24 Example of a well organized legend#

+
+
+

The scale bar is essential to a map since it gives the correspondence between a distance measured on the map and the distance in the real world. There are two types of scales:

+
    +
  • The numerical Scale is expressed as a fraction (1/25000 or 1:25000) which indicates the equivalence between 1 centimeter on the map and the real distance. It is a scale that can be calculated with GIS software, and is often found in topographic maps

    +
      +
    • A scale of 1:25000 means that 1 cm represents 25000 cm (or 250 meters) on the gound.

    • +
    +
  • +
  • the graphical scale is expressed by a line on the map, with an associated distance value. This scale is very useful to have an idea of the distances on the ground. The graphical scale will always be the correct size, even if a different printing format is used, since it will undergo the same transformation as the rest of the map

  • +
+
+fig/example_scale_bar.png" +
+

Fig. 25 A scale bar#

+
+
+

Orientation

+

Even if by default the majority of the maps are oriented to the North, it is still necessary to specify the orientation of the map. It is often indicated by an arrow to the North. Sometimes the orientation of different in order to optimize the representation of the study area on the map.

+
+
+
+

Sources#

+

Any data represented on a map should have its sources indicated. This provides a record of the data used, but also references the author of the data. The reader will then be able to look for more information on the sources if he wishes. Open access geographic data, such as OpenStreetMap, are more and more numerous and must also be cited on the maps.

+

It is possible to give the source of each data under the legend, or to do it in a dedicated space in the map. The level of precision of the sources varies according to the author or the precision of the data.

+
+
+

The 4 semiological errors#

+
+

1. Proportional circles vs. solid colors#

+
+

Caution

+

DO NOT represent quantitative stock character/data with a solid color.

+
+

This is one of the most common mistakes in mapping. While this representation is graphically appealing, it is still false and distracts from the message of the map.

+

It is a mistake because:

+
    +
  • You lose the order relationship between the data (a circle can be twice as big as another one, a color cannot be “twice as dark”)

  • +
  • Countries with a large surface area stand out visually (eg.: Russia in the example below)

  • +
  • We are trying to represent data that has nothing to do with the area of a country, but rather speaks of individual elements

  • +
+
+

Add different example

+
+
+
+

Color gradient vs. distinct color palette#

+
+

Caution

+

DO NOT use a separate color palette to represent ordered entities

+
+

A representatin that “feels right” because it seems logical that a “low” rate would be represented differently than a “high” rate.

+

It is a mistake because:

+
    +
  • By using a differentiating color variable, you lose the ordinal relationship between entities. Instead, a gradient of the same color that should be used.

  • +
  • Different colors are used to differentiate between distinct entities.

  • +
+
+
+

Gradient in a single color vs. Gradient between two colors#

+
+

Caution

+

DO NOT use a gradient across two colors for an always positive data.

+
+

This is a mistake that is often found because our brais are used to prioritizing certain colors, especially green to red, or blue to red. We must remember that __if our values are always positive, we must stay in the same color that will degrade into several shades.

+
+

What about height?

+
+

A gradient between two colors can be used when it is necessary to show a gradation that can go from negative to positive. As for temperatures, it makes sense to distinguish negative values (in shades of blue for example) and positive values (in shades of red).

+

It is a mistake because:

+
    +
  • By choosing different colors for values that are linked to each other, our eyes perceive a difference between the elements, and not an order.

  • +
  • Darker colors stand out more than lighter colors, and can be perceived as more important.

  • +
  • The map will send a message of divergence, of opposition between certain values, when we are simply trying to represent a hierarchy between values

  • +
  • In this way, the color itself directly indicates information about the trend (positive/negative or increasing/decreasing).

  • +
+
+
+

Limited geometric symbols vs. complex icons and symbols#

+
+

Caution

+

DO NOT use too many symbols in a thematic map

+
+

Incorportating a multitude of symbols (and data) for a informative map is a common desire. However, too many symbols can overload the map and reduce the readability of the map. Using too many symbols (especially geometric ones) can make it difficult to read and understand the map.
+__The eye can easily distinguish 4 to 5 different symbols. Beyond that, it is difficult to dinstinguish the elements. This is a less serious error because it does not convey false information on the map.

+

It is a mistake because:

+
    +
  • It complicates the map and limits its impact.

  • +
  • Sometimes you are forced to represent several symbols, so you must be careful about overlapping points and overloading the map.

  • +
+
+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_4/en_qgis_map_design_I.html b/content/Modul_4/en_qgis_map_design_I.html old mode 100755 new mode 100644 index f5fc4112c..93e093b48 --- a/content/Modul_4/en_qgis_map_design_I.html +++ b/content/Modul_4/en_qgis_map_design_I.html @@ -1,889 +1,889 @@ - - - - - - - - - - - - Graphical Variables and Symbology — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Graphical Variables and Symbology#

-

The representation of geodata in maps is crucial in order to provide useful location-based insights. This subchapter will cover the basics of good map design, how to create a map design in QGIS as well as common mistakes when designing or interpreting maps.

-
-

Types of maps#

-
-

remove probably

-
-

In general, there are two main types of maps: topographic maps and thematic maps.

-

Topographic maps are intended to be exhaustive, including elements fundamental to localisation (localities, road networks, terrain, hydrography). They represent the physical location of objects in the real world. The representation of elements in topographic maps is done via conventional signs (e.g.: blue for water, green for forests, yellow for agricultural land).

-
-../../_images/en_30.30.2_topographic_map_examples.png -
-

Fig. 1 Examples for topographic maps#

-
-
-

Thematic maps adress the distribution of phenomena, including sometimes statistically processed information, such as population size, disease cases, flooding risk, etc. The representation of elements on thematic maps is decided according to the rules of graphic semiology.

-
-../../_images/en_30.30.2_thematic_maps_examples.png -
-

Fig. 2 Examples for thematic maps#

-
-
-
-
-

Graphic Semiology#

-

Definition: A set of rules allowing the use of a graphic sign systems to convey information. Graphic semiology uses visual variables to construct a system of signs, allowing the graphic translation of information.

-

Our brain is capable of interpreting graphic relationships between entities in just seconds. Semiology attempts to theorise these interpretation to make the map more effective and relevant.

-
-../../_images/en_30.30.2_graphic_semiology_signs.png -
-

Fig. 3 Depending on the type of information you want to display, you can use different graphic signs#

-
-
-
-

Visual variables#

-

Visual variables are the graphical means for visually transcribing information. The visual variables are shape, size, hue, value, texture, and orientation. You can vary these variables to appropriately represent the data at your disposal.
-It allows for the expression of relationship of difference, order, association, or quantity between each element.

-
-../../_images/en_visual_variables.png -
-

Fig. 4 Visual variables according to Bertin (1967)#

-
-
-
-

Caution

-

Visual perception varies from one person to the next according to various capabilities:

-
    -
  • Physiological (e.g.: colour blindness)

  • -
  • Transcultural (green = nature, blue = water)

  • -
-
-
-

Check Uni HD cartography slides

-
-
-
-
-
-

Symbology and styling#

-

Depending on the use case and type of geodata at your disposal, there are multiple ways to visualise geodata in a comprehensive format:

-
    -
  • You can change the ‘styling’ and color of the data

  • -
  • You can add textlabels

  • -
  • Vector and raster data is visualized differently in GIS-Software.

  • -
-
-

Styling Panel#

-
-../../_images/en_30.30.2_styling_panel.png -
-

Fig. 5 Styling panel in QGIS 3.30.2#

-
-
-

For each layer in QGIS, there is a styling panel where you can change the symbology, colour and label for the features in that layer. There are two ways to open the layer styling options in QGIS:

-
    -
  1. Right click on the layer you wish to style and select properties

  2. -
  3. Open the layer styling panel by enabling it under “View”>”Panels”>”Layer Styling”

  4. -
-

~~In the styling panel, you can change the symbology (1) and the labels (2).~~

-
-
-

Symbology#

-
    -
  • Symbology is used to change the look of features on a map

  • -
  • It makes maps more visually appealing and easier to read

  • -
  • Colors and styles represent a specific information

  • -
  • Symbology is applied to layers, but within the same layer we can assign multiple styles to features

  • -
  • the symbology of a layer can be changed based on one of its attributes

  • -
-
-
-

Colours#

-

Colours are arguably the most striking visual variables as they are easily disinguishable. However, depending on the type of data and the information you wish to convey, there are a few things to consider when choosing a colour scheme for your map. The most important variables for colours are the hue and the value (saturation, transparency).

-
-

look for correct words

-
-

Colours schemes can be categorial, sequential, or diverging. If you wish to display different types of buildings or roads, the colour schemes should be categorial. Colour gradients, either sequential or diverging, are used for numerical data or data that can be ordered. For example, for the population sizes of districts a sequential colouring schemes is best to show the relative difference between the values. However, if the data has positive and negative values, a diverging colour gradient should be used.

-
-../../_images/en_Colour_Gradients_6.png -
-

Fig. 6 Different types of colouring schemes#

-
-
-

When choosing colour gradients, a clear gradient from lighter to darker colours is the best most of the times as the gradation is easily distinguishable and translates well into black and white. In the figure below, example A) and B) are not ideal as it is difficult to make out the gradation and it does not translate into black and white. You can achieve a clear sequence by grading the saturation of the colour gradient.

-
-fig/en_colour_gradients_saturation -
-

Fig. 7 Examples for different colour gradients translated into black and white. Pay attention to the saturation gradient#

-
-
-

Colour gradients can also encompass several hues

-
-fig/Colour_Gradients_2 -
-

Fig. 8 Single hue gradient on the left; Multiple hue gradient on the right#

-
-
-
-

Colour Blindness#

-

When choosing the colours, you have to keep in mind that colour gradients (especially diverging Red-Green gradients) can be hard or impossible to distinguish for persons with colour blindness.

-
-fig/Colour_Blindness -
-

Fig. 9 Different Colour schemes for the Colour Vision Impaired; Source: Jenny, Bernhard, and Nathaniel Vaughn Kelso. (2007). Color Design for the Color Vision Impaired. Cartographic Perspectives, no. 58 (September 1, 2007): 61-67. https://doi.org/10.14714/CP58.270#

-
-
-
-
-
-

Symbology for Vector data#

-

You can use graphical variables to style vector data. As we have already learned, vector data can be either points, lines, or polygons. There are different options to symbolize these different types of vector data.

-
-fig/en_symbolization_vector_data -
-

Fig. 10 Symbolization for vector data; Source: White, T. (2017). Symbolization and the Visual Variables. *The Geographic Information Science & Technology Body of Knowledge (2nd Quarter 2017 Edition), John P. Wilson (ed.). DOI: 10.2222/gistbok/2017.2.3#

-
-
-
-
-

Symbology for points#

-

For point data, you can

-
-
-

Symbology for lines#

-
-
-

Symbology for polygons#

-
-
-
-

Symbology for raster data#

-

As we have already learned, raster data are basically a grid of pixels with different (numerical) values. As such, you can’t style the shape, fill or outline of raster data. It is only possible to assign colours to the different values of the pixels.

-
-

Assigning a colour gradient to raster data#

-

To assign a colour gradient for raster data, you need to:

-
    -
  1. Open the styling panel for the raster layer

  2. -
  3. Navigate to the Symbology tab

  4. -
  5. By default, the colour scheme is set to Singleband gray (if you only have one colour band in the data set). Click on Singleband gray and switch to Singleband pseudocolour

  6. -
  7. Click on the arrow to the right of the colour ramp. Here you can choose a premade colour ramp

  8. -
  9. You can modify the colour ramp by clicking on the colour ramp itself

  10. -
-

In the colour ramp selector, you can adjust each colour step. On the bottom, you can see a plot for the Hue, Saturation, Lightness and Opacity. Especially latter three are useful to see how your colour ramp will translate.

-
-
-
-

Labels#

-
    -
  • Labels are text that show a specific attribute of features.

  • -
  • It is useful to add labels to features to easily identify them. For example, the name of a settlement.

  • -
  • You can change the font, colour and size of labels

  • -
  • When you create a map you always add labels to help the final user reading the map

  • -
-
-

Adding labels to a layer#

-
-

This is exercise 2 in the PPP

-
-
    -
  1. In the styling panel, click on the “Labels” tab.

  2. -
  3. Select Single Labels.

  4. -
  5. “Value” is where you choose the attribute that will be displayed as a label. For example “NAME”. This will display the “NAME” attribute for each feature. In the example (figure X), ADM1_EN will display the English names of Nigerian states.

  6. -
-
-

change figure number

-
-
    -
  1. Let’s change the font: make it Arial, bold, dark grey, 8 pt

  2. -
  3. Let’s add a white buffer around the label.

  4. -
  5. Click Apply and Ok.

  6. -
-
-fig/en_30.30.2_setting_up_labels -
-

Fig. 11 Setting up labels in QGIS 30.30.2#

-
-
-
-
-

Adding 2 different label styles to the same layer#

-
-

This is exercise 3 in PPP

-
-

Sometimes you will need to create two different label styles for different features of a single layer. In this example, we will create one label style for the Country Capital, and another one for the State Capitals

-
    -
  1. Open the styling panel and click on the Labels tab

  2. -
  3. Select Rule-based Labeling

  4. -
  5. Click on the Add Rule button at the bottom (the “+”-sign) and create the first rule

  6. -
  7. For Value, select “NAME” (so that the labels will show the name of each city), then click on the “ε”-button next to the “Filter” bar.

  8. -
-
-fig/en.30.30.2_adding_rule-based_labels -
-

Fig. 12 To add rule-based labels, you need to enter an expression#

-
-
-
    -
  1. In the central column, expand ==Fields and Values== to display a list of all the fields in your layer and double-click on Class_ to add it to the expression frame on the left.

  2. -
  3. In the right column, click on All unique to list all unique values contained in the Class field

  4. -
  5. Click on the “=” operator, then doube-click on the value 1 (which represent the Country capital in this case). Click OK.

  6. -
  7. Scroll down to change the label style. Make it Arial, bold, black, 12pt and add a white buffer.

  8. -
  9. Repeat steps 4 to 9, but select Value 2 (State capitals) and make the label black, bold, 10pt, no buffer.

  10. -
  11. Click Apply, the OK.

  12. -
-
-../../_images/en_30.30.2_adding_rule-based_labels_expression_builder.png -
-

Fig. 13 The expression builder: Expression (left); building blocks, operators, fields and values(center); unique values (right)#

-
-
-
-

Add underligned labels and an example on how to add the street names

-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Graphical Variables and Symbology — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Graphical Variables and Symbology#

+

The representation of geodata in maps is crucial in order to provide useful location-based insights. This subchapter will cover the basics of good map design, how to create a map design in QGIS as well as common mistakes when designing or interpreting maps.

+
+

Types of maps#

+
+

remove probably

+
+

In general, there are two main types of maps: topographic maps and thematic maps.

+

Topographic maps are intended to be exhaustive, including elements fundamental to localisation (localities, road networks, terrain, hydrography). They represent the physical location of objects in the real world. The representation of elements in topographic maps is done via conventional signs (e.g.: blue for water, green for forests, yellow for agricultural land).

+
+../../_images/en_30.30.2_topographic_map_examples.png +
+

Fig. 1 Examples for topographic maps#

+
+
+

Thematic maps adress the distribution of phenomena, including sometimes statistically processed information, such as population size, disease cases, flooding risk, etc. The representation of elements on thematic maps is decided according to the rules of graphic semiology.

+
+../../_images/en_30.30.2_thematic_maps_examples.png +
+

Fig. 2 Examples for thematic maps#

+
+
+
+
+

Graphic Semiology#

+

Definition: A set of rules allowing the use of a graphic sign systems to convey information. Graphic semiology uses visual variables to construct a system of signs, allowing the graphic translation of information.

+

Our brain is capable of interpreting graphic relationships between entities in just seconds. Semiology attempts to theorise these interpretation to make the map more effective and relevant.

+
+../../_images/en_30.30.2_graphic_semiology_signs.png +
+

Fig. 3 Depending on the type of information you want to display, you can use different graphic signs#

+
+
+
+

Visual variables#

+

Visual variables are the graphical means for visually transcribing information. The visual variables are shape, size, hue, value, texture, and orientation. You can vary these variables to appropriately represent the data at your disposal.
+It allows for the expression of relationship of difference, order, association, or quantity between each element.

+
+../../_images/en_visual_variables.png +
+

Fig. 4 Visual variables according to Bertin (1967)#

+
+
+
+

Caution

+

Visual perception varies from one person to the next according to various capabilities:

+
    +
  • Physiological (e.g.: colour blindness)

  • +
  • Transcultural (green = nature, blue = water)

  • +
+
+
+

Check Uni HD cartography slides

+
+
+
+
+
+

Symbology and styling#

+

Depending on the use case and type of geodata at your disposal, there are multiple ways to visualise geodata in a comprehensive format:

+
    +
  • You can change the ‘styling’ and color of the data

  • +
  • You can add textlabels

  • +
  • Vector and raster data is visualized differently in GIS-Software.

  • +
+
+

Styling Panel#

+
+../../_images/en_30.30.2_styling_panel.png +
+

Fig. 5 Styling panel in QGIS 3.30.2#

+
+
+

For each layer in QGIS, there is a styling panel where you can change the symbology, colour and label for the features in that layer. There are two ways to open the layer styling options in QGIS:

+
    +
  1. Right click on the layer you wish to style and select properties

  2. +
  3. Open the layer styling panel by enabling it under “View”>”Panels”>”Layer Styling”

  4. +
+

~~In the styling panel, you can change the symbology (1) and the labels (2).~~

+
+
+

Symbology#

+
    +
  • Symbology is used to change the look of features on a map

  • +
  • It makes maps more visually appealing and easier to read

  • +
  • Colors and styles represent a specific information

  • +
  • Symbology is applied to layers, but within the same layer we can assign multiple styles to features

  • +
  • the symbology of a layer can be changed based on one of its attributes

  • +
+
+
+

Colours#

+

Colours are arguably the most striking visual variables as they are easily disinguishable. However, depending on the type of data and the information you wish to convey, there are a few things to consider when choosing a colour scheme for your map. The most important variables for colours are the hue and the value (saturation, transparency).

+
+

look for correct words

+
+

Colours schemes can be categorial, sequential, or diverging. If you wish to display different types of buildings or roads, the colour schemes should be categorial. Colour gradients, either sequential or diverging, are used for numerical data or data that can be ordered. For example, for the population sizes of districts a sequential colouring schemes is best to show the relative difference between the values. However, if the data has positive and negative values, a diverging colour gradient should be used.

+
+../../_images/en_Colour_Gradients_6.png +
+

Fig. 6 Different types of colouring schemes#

+
+
+

When choosing colour gradients, a clear gradient from lighter to darker colours is the best most of the times as the gradation is easily distinguishable and translates well into black and white. In the figure below, example A) and B) are not ideal as it is difficult to make out the gradation and it does not translate into black and white. You can achieve a clear sequence by grading the saturation of the colour gradient.

+
+fig/en_colour_gradients_saturation +
+

Fig. 7 Examples for different colour gradients translated into black and white. Pay attention to the saturation gradient#

+
+
+

Colour gradients can also encompass several hues

+
+fig/Colour_Gradients_2 +
+

Fig. 8 Single hue gradient on the left; Multiple hue gradient on the right#

+
+
+
+

Colour Blindness#

+

When choosing the colours, you have to keep in mind that colour gradients (especially diverging Red-Green gradients) can be hard or impossible to distinguish for persons with colour blindness.

+
+fig/Colour_Blindness +
+

Fig. 9 Different Colour schemes for the Colour Vision Impaired; Source: Jenny, Bernhard, and Nathaniel Vaughn Kelso. (2007). Color Design for the Color Vision Impaired. Cartographic Perspectives, no. 58 (September 1, 2007): 61-67. https://doi.org/10.14714/CP58.270#

+
+
+
+
+
+

Symbology for Vector data#

+

You can use graphical variables to style vector data. As we have already learned, vector data can be either points, lines, or polygons. There are different options to symbolize these different types of vector data.

+
+fig/en_symbolization_vector_data +
+

Fig. 10 Symbolization for vector data; Source: White, T. (2017). Symbolization and the Visual Variables. *The Geographic Information Science & Technology Body of Knowledge (2nd Quarter 2017 Edition), John P. Wilson (ed.). DOI: 10.2222/gistbok/2017.2.3#

+
+
+
+
+

Symbology for points#

+

For point data, you can

+
+
+

Symbology for lines#

+
+
+

Symbology for polygons#

+
+
+
+

Symbology for raster data#

+

As we have already learned, raster data are basically a grid of pixels with different (numerical) values. As such, you can’t style the shape, fill or outline of raster data. It is only possible to assign colours to the different values of the pixels.

+
+

Assigning a colour gradient to raster data#

+

To assign a colour gradient for raster data, you need to:

+
    +
  1. Open the styling panel for the raster layer

  2. +
  3. Navigate to the Symbology tab

  4. +
  5. By default, the colour scheme is set to Singleband gray (if you only have one colour band in the data set). Click on Singleband gray and switch to Singleband pseudocolour

  6. +
  7. Click on the arrow to the right of the colour ramp. Here you can choose a premade colour ramp

  8. +
  9. You can modify the colour ramp by clicking on the colour ramp itself

  10. +
+

In the colour ramp selector, you can adjust each colour step. On the bottom, you can see a plot for the Hue, Saturation, Lightness and Opacity. Especially latter three are useful to see how your colour ramp will translate.

+
+
+
+

Labels#

+
    +
  • Labels are text that show a specific attribute of features.

  • +
  • It is useful to add labels to features to easily identify them. For example, the name of a settlement.

  • +
  • You can change the font, colour and size of labels

  • +
  • When you create a map you always add labels to help the final user reading the map

  • +
+
+

Adding labels to a layer#

+
+

This is exercise 2 in the PPP

+
+
    +
  1. In the styling panel, click on the “Labels” tab.

  2. +
  3. Select Single Labels.

  4. +
  5. “Value” is where you choose the attribute that will be displayed as a label. For example “NAME”. This will display the “NAME” attribute for each feature. In the example (figure X), ADM1_EN will display the English names of Nigerian states.

  6. +
+
+

change figure number

+
+
    +
  1. Let’s change the font: make it Arial, bold, dark grey, 8 pt

  2. +
  3. Let’s add a white buffer around the label.

  4. +
  5. Click Apply and Ok.

  6. +
+
+fig/en_30.30.2_setting_up_labels +
+

Fig. 11 Setting up labels in QGIS 30.30.2#

+
+
+
+
+

Adding 2 different label styles to the same layer#

+
+

This is exercise 3 in PPP

+
+

Sometimes you will need to create two different label styles for different features of a single layer. In this example, we will create one label style for the Country Capital, and another one for the State Capitals

+
    +
  1. Open the styling panel and click on the Labels tab

  2. +
  3. Select Rule-based Labeling

  4. +
  5. Click on the Add Rule button at the bottom (the “+”-sign) and create the first rule

  6. +
  7. For Value, select “NAME” (so that the labels will show the name of each city), then click on the “ε”-button next to the “Filter” bar.

  8. +
+
+fig/en.30.30.2_adding_rule-based_labels +
+

Fig. 12 To add rule-based labels, you need to enter an expression#

+
+
+
    +
  1. In the central column, expand ==Fields and Values== to display a list of all the fields in your layer and double-click on Class_ to add it to the expression frame on the left.

  2. +
  3. In the right column, click on All unique to list all unique values contained in the Class field

  4. +
  5. Click on the “=” operator, then doube-click on the value 1 (which represent the Country capital in this case). Click OK.

  6. +
  7. Scroll down to change the label style. Make it Arial, bold, black, 12pt and add a white buffer.

  8. +
  9. Repeat steps 4 to 9, but select Value 2 (State capitals) and make the label black, bold, 10pt, no buffer.

  10. +
  11. Click Apply, the OK.

  12. +
+
+../../_images/en_30.30.2_adding_rule-based_labels_expression_builder.png +
+

Fig. 13 The expression builder: Expression (left); building blocks, operators, fields and values(center); unique values (right)#

+
+
+
+

Add underligned labels and an example on how to add the street names

+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_4/en_qgis_map_design_I_ex1.html b/content/Modul_4/en_qgis_map_design_I_ex1.html old mode 100755 new mode 100644 index d3299d9b4..a9a40aed2 --- a/content/Modul_4/en_qgis_map_design_I_ex1.html +++ b/content/Modul_4/en_qgis_map_design_I_ex1.html @@ -1,716 +1,716 @@ - - - - - - - - - - - - Map design Exercise 1 — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Map design Exercise 1#

-
-

Exercise: Change the symbology of a layer#

-
-

This is exercise 7 in the PPP. Participants will need the specific data.

-
-

In this exercise, we will apply the same style to all features in the layer. We have the polygons for 3 administrative levels

-
    -
  1. Add the “Adm0”, “Adm1” and “Adm2” shapefiles to your Session 2 project.

  2. -
  3. Order the layers so they are all visible: Put the Adm2 at the bottom, then the Adm1 then Adm0. At first, this might look weird because Adm0 will cover everything.

  4. -
  5. Change the symbology of the Adm0 layer by opening the stlying panel and navigating to the Symbology tab. By default, the symbology type will be Single Symbol. This means that the same colours and contours will be applied to all the features in that layer.

  6. -
-
-../../_images/en_30.30.2_changing_layer_style_1.png -
-

Fig. 26 Order the layers and navigate to the styling panel of the topmost layer#

-
-
-
-../../_images/en_30.30.2_changing_layer_style_2.png -
-

Fig. 27 Change the “Simple Fill”#

-
-
-
    -
  1. Click on “Simple Fill” to open the style options.

  2. -
  3. Expand the “Fill Color” menu and check the Transparent Fill option. This will make only the boundaries visible, so we will be able to see the layer under this one.

  4. -
  5. Choose a Stroke color, and make the Stroke width 0.66 Millimeters.

  6. -
  7. Click OK

  8. -
-
-../../_images/en_30.30.2_changing_layer_style_3.png -
-

Fig. 28 The styling of a vector data consists of the colour and the outline#

-
-
-
    -
  1. Repeat the same process for the Adm1 layer, using the same colour as for Adm0 (it will be in “Recent colors) and leave the stroke width at 0.26.

  2. -
  3. Now we can see the boundaries of the country and its states, and behind that we cann see the districs (Adm2).

  4. -
  5. Let’s make the districs layer’s style consistent with the others.

  6. -
  7. Choose a Fill Color

  8. -
  9. Use the same Stroke color as for Adm0 and Adm1, but make the width 0.1 Millimeters and the Stroke Style a Dash Line

  10. -
  11. Click OK and look at yout map: hopefully it’s starting to look nicer!

  12. -
-
-

Note

-

Remember that the layer’s symbology is saved within your project file, not within your shapefile! If you share a shapefile with a colleague, it will have a different style when they add it to their own project.

-
-
-
-

Exercise: Use different styles in a single layer#

-

We can use symbology to show the difference between features in the same layer. For example, it could be different types of buildings, quantities of Covid cases by district, or types of roads. We can choose a specific attribute of a dataset to assign different colors, outlines, or sizes to features:

-
    -
  1. From your shapefile folder, drag te ACLED security incidents shapefile onto your map

  2. -
  3. Open the layer Symbology and choose Categorized instead of Single Symbol.

  4. -
-
-

Categorized symbology is used when you have discrete variables.

-
-
    -
  1. Now we need to choose which attributes we want to display through the symbology. In this case, it could be the number of casualtiees, or the actor who perpetrated the act. Let’s categorize the features by event_type

  2. -
  3. Click on “Classify” to list all the unique values contained in the event_type field (i.e. all the possible types of security incidents recorded in our table)

  4. -
  5. Now we can change the style of each single value

  6. -
  7. Double click on Explosions

  8. -
  9. At the bottom of the Symbol selector window, choose a symbol to make Explosion points stand our

  10. -
  11. Click on OK, then Apply to preview what the layer will look like

  12. -
  13. Click OK again

  14. -
-
-fig/en_30.30.2_categorized_layer_symbology_2 -
-

Fig. 29 By double clicking on the unique values in the classified list, you can change the symbol for each value#

-
-
-

Now we have a map of Nigeria where you can locate the areas, that are affected by explosions more than others. On the map below, we also added text labels, which will be explained below.

-
-../../_images/en_exercise_map_design_example_Nigeria.png -
-

Fig. 30 Regions affected by explosions in Nigeria#

-
-
-
-
-

Exercise: Style data based on variable ranges#

-

If a layer contains numeric values that are continuous, they can be organized in intervals. These intervals can be displayed in graduated colours. In this exercise, we assign colours to Adm1 polygons based on the total population of each State.

-
-

Don’t forget to check that they have access to the data

-
-
    -
  1. From Sharepoint, download the NGA_Adm1_Pop shapefile and save it in your shapefile folder

  2. -
  3. In QGIS, turn off the Adm1 and Adm2 layer, leaving only Adm0

  4. -
  5. Drag the shapefile you just downloaded into your map

  6. -
  7. Open its Symbology options and choose “Graduated

  8. -
  9. Select the value you want to use to assign colours, in this case, it will be “population

  10. -
-
-../../_images/en_30.30.2_symbology_variable_ranges_1.png -
-

Fig. 31 With variable ranges, select Graduated symbology and choose the attribute with continuous values#

-
-
-
    -
  1. Click on Classify to list all valued, divided in classes

  2. -
  3. Choose how many classes you want the data to be divided into ‒ let’s say 4

  4. -
  5. By default, the colour ramp will be red. However, red is not the rivht colour to use for population count, as it is generally used to communicate negative elements, such as food insecurity or cholera cases

  6. -
  7. Click on the arrow next to Color Ramp to choose another combination of colours - let’s say a color ramp from white to blue

  8. -
  9. Click Apply to preview the look of your layer, then OK

  10. -
-
-../../_images/en_30.30.2_symbology_variable_ranges_2.png -
-

Fig. 32 You can categorize the continuous values into classes and assign a colour ramp#

-
-
-

The following map shows the most populated States of Nigeria using a graduated colour categorization.

-
-fig/en_map_design_example_variable_ranges -
-

Fig. 33 An unfinished map showing the population of Nigerian states#

-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Map design Exercise 1 — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Map design Exercise 1#

+
+

Exercise: Change the symbology of a layer#

+
+

This is exercise 7 in the PPP. Participants will need the specific data.

+
+

In this exercise, we will apply the same style to all features in the layer. We have the polygons for 3 administrative levels

+
    +
  1. Add the “Adm0”, “Adm1” and “Adm2” shapefiles to your Session 2 project.

  2. +
  3. Order the layers so they are all visible: Put the Adm2 at the bottom, then the Adm1 then Adm0. At first, this might look weird because Adm0 will cover everything.

  4. +
  5. Change the symbology of the Adm0 layer by opening the stlying panel and navigating to the Symbology tab. By default, the symbology type will be Single Symbol. This means that the same colours and contours will be applied to all the features in that layer.

  6. +
+
+../../_images/en_30.30.2_changing_layer_style_1.png +
+

Fig. 26 Order the layers and navigate to the styling panel of the topmost layer#

+
+
+
+../../_images/en_30.30.2_changing_layer_style_2.png +
+

Fig. 27 Change the “Simple Fill”#

+
+
+
    +
  1. Click on “Simple Fill” to open the style options.

  2. +
  3. Expand the “Fill Color” menu and check the Transparent Fill option. This will make only the boundaries visible, so we will be able to see the layer under this one.

  4. +
  5. Choose a Stroke color, and make the Stroke width 0.66 Millimeters.

  6. +
  7. Click OK

  8. +
+
+../../_images/en_30.30.2_changing_layer_style_3.png +
+

Fig. 28 The styling of a vector data consists of the colour and the outline#

+
+
+
    +
  1. Repeat the same process for the Adm1 layer, using the same colour as for Adm0 (it will be in “Recent colors) and leave the stroke width at 0.26.

  2. +
  3. Now we can see the boundaries of the country and its states, and behind that we cann see the districs (Adm2).

  4. +
  5. Let’s make the districs layer’s style consistent with the others.

  6. +
  7. Choose a Fill Color

  8. +
  9. Use the same Stroke color as for Adm0 and Adm1, but make the width 0.1 Millimeters and the Stroke Style a Dash Line

  10. +
  11. Click OK and look at yout map: hopefully it’s starting to look nicer!

  12. +
+
+

Note

+

Remember that the layer’s symbology is saved within your project file, not within your shapefile! If you share a shapefile with a colleague, it will have a different style when they add it to their own project.

+
+
+
+

Exercise: Use different styles in a single layer#

+

We can use symbology to show the difference between features in the same layer. For example, it could be different types of buildings, quantities of Covid cases by district, or types of roads. We can choose a specific attribute of a dataset to assign different colors, outlines, or sizes to features:

+
    +
  1. From your shapefile folder, drag te ACLED security incidents shapefile onto your map

  2. +
  3. Open the layer Symbology and choose Categorized instead of Single Symbol.

  4. +
+
+

Categorized symbology is used when you have discrete variables.

+
+
    +
  1. Now we need to choose which attributes we want to display through the symbology. In this case, it could be the number of casualtiees, or the actor who perpetrated the act. Let’s categorize the features by event_type

  2. +
  3. Click on “Classify” to list all the unique values contained in the event_type field (i.e. all the possible types of security incidents recorded in our table)

  4. +
  5. Now we can change the style of each single value

  6. +
  7. Double click on Explosions

  8. +
  9. At the bottom of the Symbol selector window, choose a symbol to make Explosion points stand our

  10. +
  11. Click on OK, then Apply to preview what the layer will look like

  12. +
  13. Click OK again

  14. +
+
+fig/en_30.30.2_categorized_layer_symbology_2 +
+

Fig. 29 By double clicking on the unique values in the classified list, you can change the symbol for each value#

+
+
+

Now we have a map of Nigeria where you can locate the areas, that are affected by explosions more than others. On the map below, we also added text labels, which will be explained below.

+
+../../_images/en_exercise_map_design_example_Nigeria.png +
+

Fig. 30 Regions affected by explosions in Nigeria#

+
+
+
+
+

Exercise: Style data based on variable ranges#

+

If a layer contains numeric values that are continuous, they can be organized in intervals. These intervals can be displayed in graduated colours. In this exercise, we assign colours to Adm1 polygons based on the total population of each State.

+
+

Don’t forget to check that they have access to the data

+
+
    +
  1. From Sharepoint, download the NGA_Adm1_Pop shapefile and save it in your shapefile folder

  2. +
  3. In QGIS, turn off the Adm1 and Adm2 layer, leaving only Adm0

  4. +
  5. Drag the shapefile you just downloaded into your map

  6. +
  7. Open its Symbology options and choose “Graduated

  8. +
  9. Select the value you want to use to assign colours, in this case, it will be “population

  10. +
+
+../../_images/en_30.30.2_symbology_variable_ranges_1.png +
+

Fig. 31 With variable ranges, select Graduated symbology and choose the attribute with continuous values#

+
+
+
    +
  1. Click on Classify to list all valued, divided in classes

  2. +
  3. Choose how many classes you want the data to be divided into ‒ let’s say 4

  4. +
  5. By default, the colour ramp will be red. However, red is not the rivht colour to use for population count, as it is generally used to communicate negative elements, such as food insecurity or cholera cases

  6. +
  7. Click on the arrow next to Color Ramp to choose another combination of colours - let’s say a color ramp from white to blue

  8. +
  9. Click Apply to preview the look of your layer, then OK

  10. +
+
+../../_images/en_30.30.2_symbology_variable_ranges_2.png +
+

Fig. 32 You can categorize the continuous values into classes and assign a colour ramp#

+
+
+

The following map shows the most populated States of Nigeria using a graduated colour categorization.

+
+fig/en_map_design_example_variable_ranges +
+

Fig. 33 An unfinished map showing the population of Nigerian states#

+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_4/en_qgis_map_design_I_ex2.html b/content/Modul_4/en_qgis_map_design_I_ex2.html old mode 100755 new mode 100644 index 0919bb3a9..21a8c518a --- a/content/Modul_4/en_qgis_map_design_I_ex2.html +++ b/content/Modul_4/en_qgis_map_design_I_ex2.html @@ -1,573 +1,567 @@ - - - - - - - - - - - - Map design Exercise 1 — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Map design Exercise 1

- -
-
- -
-
-
- - - - -
- -
-

Map design Exercise 1#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Map design Exercise 1 — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Map design Exercise 1

+ +
+
+ +
+
+
+ + + + +
+ +
+

Map design Exercise 1#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_5/en_qgis_non_spatial_tools.html b/content/Modul_5/en_qgis_non_spatial_tools.html old mode 100755 new mode 100644 index a35be0448..0e60a602f --- a/content/Modul_5/en_qgis_non_spatial_tools.html +++ b/content/Modul_5/en_qgis_non_spatial_tools.html @@ -1,884 +1,884 @@ - - - - - - - - - - - - Non-Spatial Geodataprocessing — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Non-Spatial Geodataprocessing#

-
-

Introduction:#

-

Non-spatial geodataprocessing in QGIS refers to the manipulation, subsetting and analysis of attribute data within a GIS environment without directly involving spatial components. It involves operations on the non-geometric attributes of geospatial datasets. This can include data cleaning, transformation, enrichment and analysis based on the associated attribute information, such as population statistics, land use classifications or economic indicators. Non-spatial geodataprocessing can be used to perform calculations, generate statistics and gain insights into the non-spatial aspects of geospatial datasets. QGIS offers a variety of tools for non-spatial geodataprocessing to assist users in managing and analyzing attribute data effectively.

-

This segment of Module 5 will start with the introduction of table functions. It will then progress into techniques for querying data, ultimately introducing the important concept of non-spatial joins.

-
-../../_images/en_attribute_table_large.png -
-

Fig. 34 Screenshot of an attribute table for QGIS version 3.28.4#

-
-
-
-
-

Table functions#

-
-

Add field#

-

The information of a vector layer can be accessed through its attribute table, and it can be enriched by adding new fields to this table.

-
-

Attention

-

Depending on the information that will be added to the created attribute field, the correct data type must be selected.

-
-

Possible data types:

-
    -
  • Whole number: Integer (32 and 64 bit)

  • -
  • Decimal number (real)

  • -
  • Text (string)

  • -
  • Date and Date and time

  • -
  • Boolean

  • -
-

The most common data types are the first three.

-
- -Add a field for population density; the data type should be Decimal number (real)
-
-
-
-
-

-
-
-
-

Delete field#

-

It is also possible to delete fields from the attribute table. A commonly used practice is to remove all unused or unnecessary fields from a layer before starting to work on it. This makes the dataset much more organized.

-
- -Delete all unused/unnecessary fields from the vector layer
-
-
-
-
-

-
-
-
-

Calculate field#

-

An important practice is to calculate the attribute values for a field, e.g., based on the values of other fields. In QGIS, you can create a new field or update an existing field.

-
-

Note

-

It is necessary to check if the data type of the field (new or updated) and your calculation match. For example: if you are calculating a ratio (e.g. density), the field should not be of type integer but rather of type decimal number.

-
-

An example could be to calculate the population density based on the already existing fields Population and Area.

-

A very important tool for such calculations is the Field Calculator. It allows you to perform calculations based on existing attribute values or defined functions, for example, to calculate the length or area of a geometry feature. The results of these calculations can be written into a new field or update an existing field.

-
- -Calculate the population density based on the already existing fields Population and Area
-
-
-
-
-

-
-
-
-

Basic statistics for fields#

-

The tool Basic statistics for fields generates statistics for a specific field of the attribute table of a vector layer. The results are generated as an HTML file and can be accessed by using the file path link in the Results Viewer.

-
- -Calculate statistics for the field population density for all the countries. What are the max./min. values, average, etc.?
-
-
-
-
-

-
-
-
-

Statistics by categories#

-

To calculate statistics of a field depending on a parent class you can use the tool Statistics by catergories. The parent class is a combination of values from other fields.

-

Questions that need to be considered when doing these calculations:

-
    -
  • For which fields should the statistics be calculated in the attribute table?

  • -
  • Which field in the attribute table contains which information?

  • -
-
- -How many cities per country have more than 300.000 inhabitants? For each country: how many people live in the largest agglomeration?
-
-
-
-
-

-
-
-
-
-

Non-spatial queries#

-

In GIS you can query (filter) data based on specific attribute information. Once the filtering is successful, only the desired features that correspond to the chosen attribute are displayed. Data filtering is a valuable technique for creating subsets of features that can be exported as a new layer.

-
-

Manual selection#

-

It is possible to manually select specific rows by clicking on the number on the left side of it. This can be easily used to select a small number of rows. If they are selected successfully, they will appear in yellow.

-
- -Manual selection of rows
-
-
-
-
-

-
-
-
-

Select by expression#

-

In this dialog, you can build your expressions to query the data. There are several operators that can be used to filter your vector layer.

-
- -
- - - - - - - - - - - - - - - - - - - - - - - -

operator

functionality

+

addition

-

substraction

*

multiplication

/

division

%

remainder of division

-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - -

operator

functionality

=

equals

!=

not equal

<

less than

>

greater than

<=

less than or equal to

>=

greater than or equal to

-
- -
-

Operators such as AND, OR can be used to combine different queris or criteria

- - - - - - - - - - - - - - - - - -

operator

functionality

AND

logical AND

OR

logical OR

NOT

logical NOT

-
- -
- - - - - - - - - - - - - - - - - - - - - - - -

operator

functionality

LIKE

pattern matching

IN

checks if a value is in a list of values

IS NULL

checks for null values

BETWEEN

checks if a value is within a specified range

CASE WHEN

conditional expressions

-
-
-
- -Build query for the question: Cities that were not yet cities of one million inhabitants in 1950 but already had more than 10 million inhabitants in 2015.
-
-
-
-
-

-
-
-
-
-

Non-spatial joins#

-

A lot of analysis can be done with just a single layer. But sometimes the necessary information we need for our analysis is split across different datasets/layers. With QGIS, these layers can be combined to perform the analysis we want. The simplest way to combine layers is via an attribute join. This operation looks up information from a second data source based on a shared attribute value. This value functions as a common unique identifier, also known as an ID, UID or key.

-

In QGIS the tool Join attributes by field value is often used for such operations:

-
-../../_images/en_join_attributes_by_field_values.png -
-

Fig. 35 Screenshot of the Join attributes by field value tool#

-
-
-
-

Attention

-
    -
  • An attribute join in QGIS only works properly, when the attributes match exactly.

  • -
  • For example: “S. Sudan” will not match with “South Sudan”.

  • -
  • Where possible it’s best to use attributes that have been designed for joining, such as P-codes or ID’s which are not susceptible to spelling mistakes.

  • -
-
-

Test Test

-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Non-Spatial Geodataprocessing — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Non-Spatial Geodataprocessing#

+
+

Introduction:#

+

Non-spatial geodataprocessing in QGIS refers to the manipulation, subsetting and analysis of attribute data within a GIS environment without directly involving spatial components. It involves operations on the non-geometric attributes of geospatial datasets. This can include data cleaning, transformation, enrichment and analysis based on the associated attribute information, such as population statistics, land use classifications or economic indicators. Non-spatial geodataprocessing can be used to perform calculations, generate statistics and gain insights into the non-spatial aspects of geospatial datasets. QGIS offers a variety of tools for non-spatial geodataprocessing to assist users in managing and analyzing attribute data effectively.

+

This segment of Module 5 will start with the introduction of table functions. It will then progress into techniques for querying data, ultimately introducing the important concept of non-spatial joins.

+
+../../_images/en_attribute_table_large.png +
+

Fig. 34 Screenshot of an attribute table for QGIS version 3.28.4#

+
+
+
+
+

Table functions#

+
+

Add field#

+

The information of a vector layer can be accessed through its attribute table, and it can be enriched by adding new fields to this table.

+
+

Attention

+

Depending on the information that will be added to the created attribute field, the correct data type must be selected.

+
+

Possible data types:

+
    +
  • Whole number: Integer (32 and 64 bit)

  • +
  • Decimal number (real)

  • +
  • Text (string)

  • +
  • Date and Date and time

  • +
  • Boolean

  • +
+

The most common data types are the first three.

+
+ +Add a field for population density; the data type should be Decimal number (real)
+
+
+
+
+

+
+
+
+

Delete field#

+

It is also possible to delete fields from the attribute table. A commonly used practice is to remove all unused or unnecessary fields from a layer before starting to work on it. This makes the dataset much more organized.

+
+ +Delete all unused/unnecessary fields from the vector layer
+
+
+
+
+

+
+
+
+

Calculate field#

+

An important practice is to calculate the attribute values for a field, e.g., based on the values of other fields. In QGIS, you can create a new field or update an existing field.

+
+

Note

+

It is necessary to check if the data type of the field (new or updated) and your calculation match. For example: if you are calculating a ratio (e.g. density), the field should not be of type integer but rather of type decimal number.

+
+

An example could be to calculate the population density based on the already existing fields Population and Area.

+

A very important tool for such calculations is the Field Calculator. It allows you to perform calculations based on existing attribute values or defined functions, for example, to calculate the length or area of a geometry feature. The results of these calculations can be written into a new field or update an existing field.

+
+ +Calculate the population density based on the already existing fields Population and Area
+
+
+
+
+

+
+
+
+

Basic statistics for fields#

+

The tool Basic statistics for fields generates statistics for a specific field of the attribute table of a vector layer. The results are generated as an HTML file and can be accessed by using the file path link in the Results Viewer.

+
+ +Calculate statistics for the field population density for all the countries. What are the max./min. values, average, etc.?
+
+
+
+
+

+
+
+
+

Statistics by categories#

+

To calculate statistics of a field depending on a parent class you can use the tool Statistics by catergories. The parent class is a combination of values from other fields.

+

Questions that need to be considered when doing these calculations:

+
    +
  • For which fields should the statistics be calculated in the attribute table?

  • +
  • Which field in the attribute table contains which information?

  • +
+
+ +How many cities per country have more than 300.000 inhabitants? For each country: how many people live in the largest agglomeration?
+
+
+
+
+

+
+
+
+
+

Non-spatial queries#

+

In GIS you can query (filter) data based on specific attribute information. Once the filtering is successful, only the desired features that correspond to the chosen attribute are displayed. Data filtering is a valuable technique for creating subsets of features that can be exported as a new layer.

+
+

Manual selection#

+

It is possible to manually select specific rows by clicking on the number on the left side of it. This can be easily used to select a small number of rows. If they are selected successfully, they will appear in yellow.

+
+ +Manual selection of rows
+
+
+
+
+

+
+
+
+

Select by expression#

+

In this dialog, you can build your expressions to query the data. There are several operators that can be used to filter your vector layer.

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +

operator

functionality

+

addition

-

substraction

*

multiplication

/

division

%

remainder of division

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

operator

functionality

=

equals

!=

not equal

<

less than

>

greater than

<=

less than or equal to

>=

greater than or equal to

+
+ +
+

Operators such as AND, OR can be used to combine different queris or criteria

+ + + + + + + + + + + + + + + + + +

operator

functionality

AND

logical AND

OR

logical OR

NOT

logical NOT

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +

operator

functionality

LIKE

pattern matching

IN

checks if a value is in a list of values

IS NULL

checks for null values

BETWEEN

checks if a value is within a specified range

CASE WHEN

conditional expressions

+
+
+
+ +Build query for the question: Cities that were not yet cities of one million inhabitants in 1950 but already had more than 10 million inhabitants in 2015.
+
+
+
+
+

+
+
+
+
+

Non-spatial joins#

+

A lot of analysis can be done with just a single layer. But sometimes the necessary information we need for our analysis is split across different datasets/layers. With QGIS, these layers can be combined to perform the analysis we want. The simplest way to combine layers is via an attribute join. This operation looks up information from a second data source based on a shared attribute value. This value functions as a common unique identifier, also known as an ID, UID or key.

+

In QGIS the tool Join attributes by field value is often used for such operations:

+
+../../_images/en_join_attributes_by_field_values.png +
+

Fig. 35 Screenshot of the Join attributes by field value tool#

+
+
+
+

Attention

+
    +
  • An attribute join in QGIS only works properly, when the attributes match exactly.

  • +
  • For example: “S. Sudan” will not match with “South Sudan”.

  • +
  • Where possible it’s best to use attributes that have been designed for joining, such as P-codes or ID’s which are not susceptible to spelling mistakes.

  • +
+
+

Test Test

+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Modul_5/en_qgis_spatial_tools.html b/content/Modul_5/en_qgis_spatial_tools.html old mode 100755 new mode 100644 index b04302466..d4f0df572 --- a/content/Modul_5/en_qgis_spatial_tools.html +++ b/content/Modul_5/en_qgis_spatial_tools.html @@ -1,645 +1,645 @@ - - - - - - - - - - - - Spatial Geodataprocessing — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Spatial Geodataprocessing

- -
- -
-
- - - - -
- -
-

Spatial Geodataprocessing#

-

Competences:

-
-

Clip#

-
    -
  • Clip, Buffer, Dissolve

  • -
  • Spatial joins

  • -
  • Clip by extent & mask

  • -
-
-
-

Clip vector by extent#

-

This operation clips any vector file to a given extent. This clip extent will be defined by a bounding box that should be used for the vector output file. It also has to be defined in the target CRS coordinates. There are different methods to define the bounding box of which the following is the most prominent:

-
    -
  • Calculate from a layer: this uses the extent of a layer loaded into the current project

  • -
-
-
- -
-

AUCH FÜR RASTER DATEN??#

-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Spatial Geodataprocessing — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Spatial Geodataprocessing

+ +
+ +
+
+ + + + +
+ +
+

Spatial Geodataprocessing#

+

Competences:

+
+

Clip#

+
    +
  • Clip, Buffer, Dissolve

  • +
  • Spatial joins

  • +
  • Clip by extent & mask

  • +
+
+
+

Clip vector by extent#

+

This operation clips any vector file to a given extent. This clip extent will be defined by a bounding box that should be used for the vector output file. It also has to be defined in the target CRS coordinates. There are different methods to define the bounding box of which the following is the most prominent:

+
    +
  • Calculate from a layer: this uses the extent of a layer loaded into the current project

  • +
+
+
+ +
+

AUCH FÜR RASTER DATEN??#

+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Trainers_corner/en_how_to_training.html b/content/Trainers_corner/en_how_to_training.html old mode 100755 new mode 100644 index db882cccb..fdbdabbdf --- a/content/Trainers_corner/en_how_to_training.html +++ b/content/Trainers_corner/en_how_to_training.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - How to do trainings? — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

How to do trainings?

- -
-
- -
-
-
- - - - -
- -
-

How to do trainings?#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + How to do trainings? — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

How to do trainings?

+ +
+
+ +
+
+
+ + + + +
+ +
+

How to do trainings?#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Trainers_corner/en_training_plans.html b/content/Trainers_corner/en_training_plans.html old mode 100755 new mode 100644 index 924590d08..c1b2afb12 --- a/content/Trainers_corner/en_training_plans.html +++ b/content/Trainers_corner/en_training_plans.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Basic QGIS Training: Full training — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Basic QGIS Training: Full training

- -
-
- -
-
-
- - - - -
- -
-

Basic QGIS Training: Full training#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Basic QGIS Training: Full training — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Basic QGIS Training: Full training

+ +
+
+ +
+
+
+ + + + +
+ +
+

Basic QGIS Training: Full training#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_attribute_table_wiki.html b/content/Wiki/en_qgis_attribute_table_wiki.html old mode 100755 new mode 100644 index 53b612a70..19c93e9a9 --- a/content/Wiki/en_qgis_attribute_table_wiki.html +++ b/content/Wiki/en_qgis_attribute_table_wiki.html @@ -1,725 +1,727 @@ - - - - - - - - - - - - Attribute Table in QGIS — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Attribute Table in QGIS

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Attribute Table in QGIS#

-

The attribute table, a core component of Geographic Information Systems (GIS), organizes and presents detailed information about features in a selected layer. Each row in the table represents a feature, while columns store specific attributes. This table facilitates searching, selection, sorting, filtering, and editing of features.

-
-

Buttons of Attribute Tabel#

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Icon

Description

Purpose

Shortcut

Toggle editing mode

Enable editing functionalities

Ctrl+E

Toggle multi-edit mode

Update multiple fields of many features

Save edits

Save current modifications

Reload the table

Add feature

Add new geometryless feature

Delete selected features

Remove selected features from the layer

Cut selected features to clipboard

Ctrl+X

Copy selected features to clipboard

Ctrl+C

Paste features from clipboard

Insert new features from copied ones

Ctrl+V

Select features using an Expression

Select All

Select all features in the layer

Ctrl+A

Invert selection

Invert the current selection in the layer

Ctrl+R

Deselect all

Deselect all features in the current layer

Ctrl+Shift+A

Filter/Select features using form

Ctrl+F

Move selected to top

Move selected rows to the top of the table

Pan map to the selected rows

Ctrl+P

Zoom map to the selected rows

Ctrl+J

New field

Add a new field to the data source

Ctrl+W

Delete field

Remove a field from the data source

Organize columns

Show/hide fields from the attribute table

Open field calculator

Update field for many features in a row

Ctrl+I

Conditional formatting

Enable table formatting

Dock attribute table

Allows to dock/undock the attribute table

Actions

Lists the actions related to the layer

-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Attribute Table in QGIS — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Attribute Table in QGIS

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Attribute Table in QGIS#

+

The attribute table, a core component of Geographic Information Systems (GIS), organizes and presents detailed information about features in a selected layer. Each row in the table represents a feature, while columns store specific attributes. This table facilitates searching, selection, sorting, filtering, and editing of features.

+
+

Buttons of Attribute Tabel#

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Icon

Description

Purpose

Shortcut

Toggle editing mode

Enable editing functionalities

Ctrl+E

Toggle multi-edit mode

Update multiple fields of many features

Save edits

Save current modifications

Reload the table

Add feature

Add new geometryless feature

Delete selected features

Remove selected features from the layer

Cut selected features to clipboard

Ctrl+X

Copy selected features to clipboard

Ctrl+C

Paste features from clipboard

Insert new features from copied ones

Ctrl+V

Select features using an Expression

Select All

Select all features in the layer

Ctrl+A

Invert selection

Invert the current selection in the layer

Ctrl+R

Deselect all

Deselect all features in the current layer

Ctrl+Shift+A

Filter/Select features using form

Ctrl+F

Move selected to top

Move selected rows to the top of the table

Pan map to the selected rows

Ctrl+P

Zoom map to the selected rows

Ctrl+J

New field

Add a new field to the data source

Ctrl+W

Delete field

Remove a field from the data source

Organize columns

Show/hide fields from the attribute table

Open field calculator

Update field for many features in a row

Ctrl+I

Conditional formatting

Enable table formatting

Dock attribute table

Allows to dock/undock the attribute table

Actions

Lists the actions related to the layer

+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_basemaps_wiki.html b/content/Wiki/en_qgis_basemaps_wiki.html old mode 100755 new mode 100644 index b568f067a..71f6b5dc4 --- a/content/Wiki/en_qgis_basemaps_wiki.html +++ b/content/Wiki/en_qgis_basemaps_wiki.html @@ -1,703 +1,705 @@ - - - - - - - - - - - - Basemaps — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Basemaps#

-

Basemaps are background maps. They are often very practical since they are easy to use, allow easy orientation on the map canvas and are diverse.

-
-

Note

-

No interaction with the basemaps is possible. They are only “pictures” in the background!

-
-
-

Standard QGIS Basemaps#

-

You can always add the standard OpenStreetMap as a basemap to your map canvas.

-

There are two ways to add the OpenStreetMap as a basemap.

-
    -
  1. Find in the Browser panel XYZ Tiles. Open the dropdown by clikcing on it and seletc OpenStreetMap or another basemap.

  2. -
  3. Layer -> Add Layer -> Add XYZ layer... -> Select the OpenStreetMap or another basemap.

  4. -
-

Add standard OpenStreetMap as Basemap -

-
-

Add Google and Bing Basemaps#

-

To add additional basemaps without using plugins you have to configure XYZ Tiles. -In the Browser Panel, right-click on XYZ Tiles -> New Connection.

-

Name = The name of the new basemap.

-

URL = You can use any of the URLs in the table below.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Info

URL

OpenTopoMap

Opensource topographic map based on OSM and SRTM

https://tile.opentopomap.org/{z}/{x}/{y}.png

Google Terrain

https://mt1.google.com/vt/lyrs=t&x={x}&y={y}&z={z}

Google Hybrid

https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}

Google Satellite

https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}

Google Road

https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}

Google Roads only

https://mt1.google.com/vt/lyrs=h&x={x}&y={y}&z={z}

Google alternative Road map

https://mt1.google.com/vt/lyrs=r&x={x}&y={y}&z={z}

Bing Aerial

http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1

-

Advantages of using basemaps from XYZ Tile are:

-
    -
  • Load faster

  • -
  • Support reprojection

  • -
  • Support printing

  • -
  • Supported by online applications like QField

  • -
-
-
-
-

Basemaps from QuickMapServices Plugin#

-

The QuickMapService Plugin allows to access a wide range of basemaps.

-
-

Note

-

There can be problems when printing some basemaps from the QuickMapServices!

-
-

Web -> QuickMapServices -> select provider e.g. NASA -> select basemap

-

Functionality of QuickMapServices Plugin -

-
-

Configuration of QuickMapServices#

-

After installing the plugin (Plugin Wiki) you need to configure the plugin to access all basemaps.

-

Web -> QuickMapService -> Settings -> Use the horizontal arrows to navigate to More Services -> Get Contributed Pack

-
-
- -
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Basemaps — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Basemaps#

+

Basemaps are background maps. They are often very practical since they are easy to use, allow easy orientation on the map canvas and are diverse.

+
+

Note

+

No interaction with the basemaps is possible. They are only “pictures” in the background!

+
+
+

Standard QGIS Basemaps#

+

You can always add the standard OpenStreetMap as a basemap to your map canvas.

+

There are two ways to add the OpenStreetMap as a basemap.

+
    +
  1. Find in the Browser panel XYZ Tiles. Open the dropdown by clikcing on it and seletc OpenStreetMap or another basemap.

  2. +
  3. Layer -> Add Layer -> Add XYZ layer... -> Select the OpenStreetMap or another basemap.

  4. +
+

Add standard OpenStreetMap as Basemap +

+
+

Add Google and Bing Basemaps#

+

To add additional basemaps without using plugins you have to configure XYZ Tiles. +In the Browser Panel, right-click on XYZ Tiles -> New Connection.

+

Name = The name of the new basemap.

+

URL = You can use any of the URLs in the table below.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Name

Info

URL

OpenTopoMap

Opensource topographic map based on OSM and SRTM

https://tile.opentopomap.org/{z}/{x}/{y}.png

Google Terrain

https://mt1.google.com/vt/lyrs=t&x={x}&y={y}&z={z}

Google Hybrid

https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}

Google Satellite

https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}

Google Road

https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}

Google Roads only

https://mt1.google.com/vt/lyrs=h&x={x}&y={y}&z={z}

Google alternative Road map

https://mt1.google.com/vt/lyrs=r&x={x}&y={y}&z={z}

Bing Aerial

http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1

+

Advantages of using basemaps from XYZ Tile are:

+
    +
  • Load faster

  • +
  • Support reprojection

  • +
  • Support printing

  • +
  • Supported by online applications like QField

  • +
+
+
+
+

Basemaps from QuickMapServices Plugin#

+

The QuickMapService Plugin allows to access a wide range of basemaps.

+
+

Note

+

There can be problems when printing some basemaps from the QuickMapServices!

+
+

Web -> QuickMapServices -> select provider e.g. NASA -> select basemap

+

Functionality of QuickMapServices Plugin +

+
+

Configuration of QuickMapServices#

+

After installing the plugin (Plugin Wiki) you need to configure the plugin to access all basemaps.

+

Web -> QuickMapService -> Settings -> Use the horizontal arrows to navigate to More Services -> Get Contributed Pack

+
+
+ +
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_categorized_wiki.html b/content/Wiki/en_qgis_categorized_wiki.html old mode 100755 new mode 100644 index af93ea1a8..63e204c79 --- a/content/Wiki/en_qgis_categorized_wiki.html +++ b/content/Wiki/en_qgis_categorized_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Catagorized — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Catagorized

- -
-
- -
-
-
- - - - -
- -
-

Catagorized#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Catagorized — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Catagorized

+ +
+
+ +
+
+
+ + + + +
+ +
+

Catagorized#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_data_classification_wiki.html b/content/Wiki/en_qgis_data_classification_wiki.html old mode 100755 new mode 100644 index 367ecdef1..7d52bf881 --- a/content/Wiki/en_qgis_data_classification_wiki.html +++ b/content/Wiki/en_qgis_data_classification_wiki.html @@ -1,596 +1,601 @@ - - - - - - - - - - - - Data Classification — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Data Classification

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Data Classification#

-
-

Subsection to be created:#

-
    -
  • Single symbol

  • -
  • Categorized

  • -
  • Graduated

  • -
-
-
-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Data Classification — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Data Classification

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Data Classification#

+
+

Subsection to be created:#

+
    +
  • Single symbol

  • +
  • Categorized

  • +
  • Graduated

  • +
+
+
+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_data_sources_wiki.html b/content/Wiki/en_qgis_data_sources_wiki.html old mode 100755 new mode 100644 index 316a00b97..0b32c5d61 --- a/content/Wiki/en_qgis_data_sources_wiki.html +++ b/content/Wiki/en_qgis_data_sources_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Data sources — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Data sources

- -
-
- -
-
-
- - - - -
- -
-

Data sources#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Data sources — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Data sources

+ +
+
+ +
+
+
+ + + + +
+ +
+

Data sources#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_digitalization_wiki.html b/content/Wiki/en_qgis_digitalization_wiki.html old mode 100755 new mode 100644 index 61821a4f3..62fd06428 --- a/content/Wiki/en_qgis_digitalization_wiki.html +++ b/content/Wiki/en_qgis_digitalization_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Didgitalization — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Didgitalization

- -
-
- -
-
-
- - - - -
- -
-

Didgitalization#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Didgitalization — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Didgitalization

+ +
+
+ +
+
+
+ + + + +
+ +
+

Didgitalization#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_geodata_types_wiki.html b/content/Wiki/en_qgis_geodata_types_wiki.html old mode 100755 new mode 100644 index 26f7fab84..54c054c11 --- a/content/Wiki/en_qgis_geodata_types_wiki.html +++ b/content/Wiki/en_qgis_geodata_types_wiki.html @@ -1,693 +1,695 @@ - - - - - - - - - - - - Types of Geodata — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Types of Geodata

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Types of Geodata#

-
    -
  • Vector data

  • -
  • Raster data

  • -
  • Non-spatial data transfomed in geodata

  • -
-
-
-

Vector data#

-

Vector data can have the following data formats:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Filename extension

Name

Description

.shp

Shapefile

Old but still widely used geodataformat. Can only contain one dataset. The file has to consist of at least three different files (.shp, .shx, .dbf)

.gpkg

GeoPackage

Very versatile geodata format and the new standard for geodata. Can contain multiple datafiles (vector, raster and not spatial data like tables)

.kml

Keyhole Markup Language

Geodata format for use with Google Earth

.gpx

GPS Exchange Format

Geodata format for the exchange of coordinates. For example for waypoints of tracks.

.geojson

GeoJSON

Similar to shapefiles, but stores all information in a single file.

-
-
-

Raster data#

-

Raster data can have the following data formats:

- - - - - - - - - - - - - - - - - - - - - -

Filename extension

Name

Dscription

.tif/.tiff/.geotiff

Tag Image File Format

Common raster and image data format. Does not necessarily have georeference information. If a .tif file has georeferenc information it is referred to as GeoTIFF.

.nc

netCDF

Standard data format for scientific data like speed or temperature. Can be be a raster file. Can contain multible datasets

.asc

Esri ASCII Grid files

Old simple raster file format, always with georeference informations

-
-

Text data#

- - - - - - - - - - - - - - - - - -

Filename extension

Name

Dscription

.csv

comma-separated values

Very common data format which separates data with commas or other delimiters.

.xls

EXCEL

Data format used for EXCEL. EXCEL is a widely used spreadsheet program.

-
-
-

Good practices#

-

The video below gives a good overview of geodata formats and gives tips on file naming and other good practices.

-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Types of Geodata — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Types of Geodata

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Types of Geodata#

+
    +
  • Vector data

  • +
  • Raster data

  • +
  • Non-spatial data transfomed in geodata

  • +
+
+
+

Vector data#

+

Vector data can have the following data formats:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename extension

Name

Description

.shp

Shapefile

Old but still widely used geodataformat. Can only contain one dataset. The file has to consist of at least three different files (.shp, .shx, .dbf)

.gpkg

GeoPackage

Very versatile geodata format and the new standard for geodata. Can contain multiple datafiles (vector, raster and not spatial data like tables)

.kml

Keyhole Markup Language

Geodata format for use with Google Earth

.gpx

GPS Exchange Format

Geodata format for the exchange of coordinates. For example for waypoints of tracks.

.geojson

GeoJSON

Similar to shapefiles, but stores all information in a single file.

+
+
+

Raster data#

+

Raster data can have the following data formats:

+ + + + + + + + + + + + + + + + + + + + + +

Filename extension

Name

Dscription

.tif/.tiff/.geotiff

Tag Image File Format

Common raster and image data format. Does not necessarily have georeference information. If a .tif file has georeferenc information it is referred to as GeoTIFF.

.nc

netCDF

Standard data format for scientific data like speed or temperature. Can be be a raster file. Can contain multible datasets

.asc

Esri ASCII Grid files

Old simple raster file format, always with georeference informations

+
+

Text data#

+ + + + + + + + + + + + + + + + + +

Filename extension

Name

Dscription

.csv

comma-separated values

Very common data format which separates data with commas or other delimiters.

.xls

EXCEL

Data format used for EXCEL. EXCEL is a widely used spreadsheet program.

+
+
+

Good practices#

+

The video below gives a good overview of geodata formats and gives tips on file naming and other good practices.

+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_geodata_wiki.html b/content/Wiki/en_qgis_geodata_wiki.html old mode 100755 new mode 100644 index 70e1a0fd4..4ecf3aa5e --- a/content/Wiki/en_qgis_geodata_wiki.html +++ b/content/Wiki/en_qgis_geodata_wiki.html @@ -1,602 +1,604 @@ - - - - - - - - - - - - Geodata — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Geodata

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Geodata#

-
-

Subsection to be created:#

-
    -
  • Import Geodata

  • -
  • Layer Concept (practical)

  • -
  • Basemaps

  • -
  • Projections (practical)

  • -
  • Attribute Table

  • -
  • Digitalization

  • -
-
-
-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodata — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Geodata

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Geodata#

+
+

Subsection to be created:#

+
    +
  • Import Geodata

  • +
  • Layer Concept (practical)

  • +
  • Basemaps

  • +
  • Projections (practical)

  • +
  • Attribute Table

  • +
  • Digitalization

  • +
+
+
+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_geoprocessing_wiki.html b/content/Wiki/en_qgis_geoprocessing_wiki.html old mode 100755 new mode 100644 index 0bcfa14cf..2aede4886 --- a/content/Wiki/en_qgis_geoprocessing_wiki.html +++ b/content/Wiki/en_qgis_geoprocessing_wiki.html @@ -1,595 +1,600 @@ - - - - - - - - - - - - Geoprocessing — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Geoprocessing

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Geoprocessing#

-
-

Subsection to be created:#

-
    -
  • Clip

  • -
  • Buffer

  • -
  • Dissolve

  • -
  • ….

  • -
-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geoprocessing — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Geoprocessing

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Geoprocessing#

+
+

Subsection to be created:#

+
    +
  • Clip

  • +
  • Buffer

  • +
  • Dissolve

  • +
  • ….

  • +
+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_graduated_wiki.html b/content/Wiki/en_qgis_graduated_wiki.html old mode 100755 new mode 100644 index 85312fe85..13be76146 --- a/content/Wiki/en_qgis_graduated_wiki.html +++ b/content/Wiki/en_qgis_graduated_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Graduated — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Graduated

- -
-
- -
-
-
- - - - -
- -
-

Graduated#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Graduated — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Graduated

+ +
+
+ +
+
+
+ + + + +
+ +
+

Graduated#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_import_geodata_wiki.html b/content/Wiki/en_qgis_import_geodata_wiki.html old mode 100755 new mode 100644 index 2cdb42990..42854768a --- a/content/Wiki/en_qgis_import_geodata_wiki.html +++ b/content/Wiki/en_qgis_import_geodata_wiki.html @@ -1,701 +1,703 @@ - - - - - - - - - - - - Geodata Import in QGIS — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Geodata Import in QGIS#

-
-

Vector data Import#

-
-

Tip

-

When importing a shapefile by drag-and-drop you have to use the file with the ending .shp!

-
-
-

Open vector layer#

-
-

Open vector data via Layer Tab#

-
    -
  1. “Layer” Tab -> “Vecctor”

  2. -
  3. Select file

  4. -
  5. Click “Add”

  6. -
-

-
-
-

Open vector data via drag-and-drop#

-

-
-
-
-
-

Raster data Import#

-
-

Open raster data via Layer Tab#

-
    -
  1. “Layer” Tab -> “Raster”

  2. -
  3. Select file

  4. -
  5. Click “Add”

  6. -
-

-
-
-

Open raster data via drag-and-drop#

-

-
-
-

Open NetCDF raster files#

-
    -
  1. Layer -> Add Layer -> Add Raster Layer -> Select your file -> click “add”

  2. -
  3. A window will open and you have to select the exact dataset you want to use. -> Click “add Layers”

  4. -
  5. Click on the ? in the Layers window. The window “Coordination Reference System Selectir” will open. -> Select the correct reference system.-> Click “OK”

  6. -
-

-
-
-
-

Text data import#

-
-

Tip

-

To directly load .csv or EXCEL data into QGIS, the datasets need to have columns containing geometry in the form of latitude (Y-field) and longitude (X-field).

-
-
-

Open csv. data in QGIS#

-

-
-
-

Open .xlsx files in QGIS#

-
    -
  1. Drag and drop the .xlsx file in QGIS.

  2. -
  3. If the file contains multible tables, select the table you want to work with. Click “add Layers”

  4. -
  5. click on the “Processing” tab -> Toolbox -> search for the tool “Creat points layer from table”

  6. -
  7. Select you table as “Input Layer”

  8. -
  9. Select the longitude column for “X field” and the latitude column for “Y field”

  10. -
  11. Click “Run”

  12. -
-
-

Tip

-

A other option is always to transform the .xlsx file into a .csv, which is eaysier to open in QGIS.

-
-

-

QGGIS Version 3.22.15

-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Geodata Import in QGIS — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Geodata Import in QGIS#

+
+

Vector data Import#

+
+

Tip

+

When importing a shapefile by drag-and-drop you have to use the file with the ending .shp!

+
+
+

Open vector layer#

+
+

Open vector data via Layer Tab#

+
    +
  1. “Layer” Tab -> “Vecctor”

  2. +
  3. Select file

  4. +
  5. Click “Add”

  6. +
+

+
+
+

Open vector data via drag-and-drop#

+

+
+
+
+
+

Raster data Import#

+
+

Open raster data via Layer Tab#

+
    +
  1. “Layer” Tab -> “Raster”

  2. +
  3. Select file

  4. +
  5. Click “Add”

  6. +
+

+
+
+

Open raster data via drag-and-drop#

+

+
+
+

Open NetCDF raster files#

+
    +
  1. Layer -> Add Layer -> Add Raster Layer -> Select your file -> click “add”

  2. +
  3. A window will open and you have to select the exact dataset you want to use. -> Click “add Layers”

  4. +
  5. Click on the ? in the Layers window. The window “Coordination Reference System Selectir” will open. -> Select the correct reference system.-> Click “OK”

  6. +
+

+
+
+
+

Text data import#

+
+

Tip

+

To directly load .csv or EXCEL data into QGIS, the datasets need to have columns containing geometry in the form of latitude (Y-field) and longitude (X-field).

+
+
+

Open csv. data in QGIS#

+

+
+
+

Open .xlsx files in QGIS#

+
    +
  1. Drag and drop the .xlsx file in QGIS.

  2. +
  3. If the file contains multible tables, select the table you want to work with. Click “add Layers”

  4. +
  5. click on the “Processing” tab -> Toolbox -> search for the tool “Creat points layer from table”

  6. +
  7. Select you table as “Input Layer”

  8. +
  9. Select the longitude column for “X field” and the latitude column for “Y field”

  10. +
  11. Click “Run”

  12. +
+
+

Tip

+

A other option is always to transform the .xlsx file into a .csv, which is eaysier to open in QGIS.

+
+

+

QGGIS Version 3.22.15

+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_installation_wiki.html b/content/Wiki/en_qgis_installation_wiki.html old mode 100755 new mode 100644 index 942c5427e..6c42952a3 --- a/content/Wiki/en_qgis_installation_wiki.html +++ b/content/Wiki/en_qgis_installation_wiki.html @@ -1,573 +1,578 @@ - - - - - - - - - - - - QGIS installation — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

QGIS installation

- -
-
- -
-
-
- - - - -
- -
-

QGIS installation#

-

QGIS is open source and therefore freely available to everyone at no cost. You can install QGIS for Windows, Mac and Linux computers. In the course we use QGIS 3.22.15 Białowieża (LTR). Generally, we recommend using the latest Long Term Release, because it is the most stable and contains the fewest bugs. -You can download the latest version here:

-

https://www.qgis.org/en/site/forusers/download.html

-

For our introduction, the standalone installers from OSGeo4W packages are sufficient for Windows.

-

32 Bit or 64 Bit?

-

For Windows operating systems, there is always a 32-bit version and a 64-bit version of each QGIS version available for download. Which version to install depends on your computer and operating system. -If it is not clear how many bits your operating system has, you can easily find out:

-

Left-click on the Windows icon at the bottom left of the screen (alternatively, open the Windows search function). -Type “System” on the keyboard -Click on the entry “System” in the search results. -Under the item “System type” you can read the bit number.

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + QGIS installation — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

QGIS installation

+ +
+
+ +
+
+
+ + + + +
+ +
+

QGIS installation#

+

QGIS is open source and therefore freely available to everyone at no cost. You can install QGIS for Windows, Mac and Linux computers. In the course we use QGIS 3.22.15 Białowieża (LTR). Generally, we recommend using the latest Long Term Release, because it is the most stable and contains the fewest bugs. +You can download the latest version here:

+

https://www.qgis.org/en/site/forusers/download.html

+

For our introduction, the standalone installers from OSGeo4W packages are sufficient for Windows.

+

32 Bit or 64 Bit?

+

For Windows operating systems, there is always a 32-bit version and a 64-bit version of each QGIS version available for download. Which version to install depends on your computer and operating system. +If it is not clear how many bits your operating system has, you can easily find out:

+

Left-click on the Windows icon at the bottom left of the screen (alternatively, open the Windows search function). +Type “System” on the keyboard +Click on the entry “System” in the search results. +Under the item “System type” you can read the bit number.

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_interface_wiki.html b/content/Wiki/en_qgis_interface_wiki.html old mode 100755 new mode 100644 index f693a9829..a3fa3f231 --- a/content/Wiki/en_qgis_interface_wiki.html +++ b/content/Wiki/en_qgis_interface_wiki.html @@ -1,687 +1,689 @@ - - - - - - - - - - - - QGIS Interface — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

QGIS Interface#

-
-

Overview of QGIS Interface#

-

-
    -
  1. Layers List / Browser Panel: The layers list shows all layers/files that are loaded in the project. You can show/hide layers and set other properties.

  2. -
  3. Toolbars: Toolbars are shortcuts to execute frequently used commands. For example, there are special toolbars for vector and raster files, but also general ones for saving your project, etc. The toolbar contains, among other things, a list of all the commands you can use. The toolbar also contains the toolbox, which is used later in many of the wiki videos. -

  4. -
  5. Map view: The map view is the central component of every GIS programme. This is where the geodata are displayed. The map view has a projection which does not always have to correspond to the projection of the layers.

  6. -
  7. Status bar: In the status bar you will find central information about the current map view. Here you can set the projection of the map view and the scale. You can read the coordinates of the mouse pointer and thus quickly find out the coordinates of points on the map. You can rotate your map view, e.g. if you want to create a map facing south.

  8. -
  9. Side Toolbar: You may see a side toolbar. This is another way to easily open vector and raster files in QGIS.

  10. -
  11. Locator bar: Here you can search for tools and layers. If you don’t know where to find a tool, you can try here.

  12. -
-

Offical QGIS Documentation: An Overview of the Interface

-
-
-
-

Move & Zoom#

-
-

Move the map view#

-

-
    -
  • You can also move with the arrow keys

  • -
-

-
-
-

Zooming in the map view#

-

-
    -
  • You can also zoom by scrolling

  • -
  • Or with Ctrl+ or Ctrl-

  • -
-

-
-
-
-
-

Properties#

-
-

Show properties of objects#

-
-

Note

-

Make sure to select the layer you want identify featuers in

-
-

-
-
-
-

Toolbars#

-
-

Open Toolbox#

-

-
    -
  • You can also zoom by scrolling

  • -
  • Or with Ctrl+ or Ctrl-

  • -
-

-
-
-

Show and hide displays and toolbars#

-

-
-
-

Move and arrange toolbars and panels#

-

-

QGGIS Version 3.22.15

-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + QGIS Interface — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

QGIS Interface#

+
+

Overview of QGIS Interface#

+

+
    +
  1. Layers List / Browser Panel: The layers list shows all layers/files that are loaded in the project. You can show/hide layers and set other properties.

  2. +
  3. Toolbars: Toolbars are shortcuts to execute frequently used commands. For example, there are special toolbars for vector and raster files, but also general ones for saving your project, etc. The toolbar contains, among other things, a list of all the commands you can use. The toolbar also contains the toolbox, which is used later in many of the wiki videos. +

  4. +
  5. Map view: The map view is the central component of every GIS programme. This is where the geodata are displayed. The map view has a projection which does not always have to correspond to the projection of the layers.

  6. +
  7. Status bar: In the status bar you will find central information about the current map view. Here you can set the projection of the map view and the scale. You can read the coordinates of the mouse pointer and thus quickly find out the coordinates of points on the map. You can rotate your map view, e.g. if you want to create a map facing south.

  8. +
  9. Side Toolbar: You may see a side toolbar. This is another way to easily open vector and raster files in QGIS.

  10. +
  11. Locator bar: Here you can search for tools and layers. If you don’t know where to find a tool, you can try here.

  12. +
+

Offical QGIS Documentation: An Overview of the Interface

+
+
+
+

Move & Zoom#

+
+

Move the map view#

+

+
    +
  • You can also move with the arrow keys

  • +
+

+
+
+

Zooming in the map view#

+

+
    +
  • You can also zoom by scrolling

  • +
  • Or with Ctrl+ or Ctrl-

  • +
+

+
+
+
+
+

Properties#

+
+

Show properties of objects#

+
+

Note

+

Make sure to select the layer you want identify featuers in

+
+

+
+
+
+

Toolbars#

+
+

Open Toolbox#

+

+
    +
  • You can also zoom by scrolling

  • +
  • Or with Ctrl+ or Ctrl-

  • +
+

+
+
+

Show and hide displays and toolbars#

+

+
+
+

Move and arrange toolbars and panels#

+

+

QGGIS Version 3.22.15

+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_joins_wiki.html b/content/Wiki/en_qgis_joins_wiki.html old mode 100755 new mode 100644 index daaed7081..9ed85837f --- a/content/Wiki/en_qgis_joins_wiki.html +++ b/content/Wiki/en_qgis_joins_wiki.html @@ -1,595 +1,600 @@ - - - - - - - - - - - - Joins — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Joins

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Joins#

-
-

Subsection to be created:#

-
    -
  • Spatial Joins

  • -
  • Non-Spatial Joins

  • -
-
-
-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Joins — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Joins

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Joins#

+
+

Subsection to be created:#

+
    +
  • Spatial Joins

  • +
  • Non-Spatial Joins

  • +
+
+
+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_layer_concept_wiki.html b/content/Wiki/en_qgis_layer_concept_wiki.html old mode 100755 new mode 100644 index 28c94448a..a95a6ce86 --- a/content/Wiki/en_qgis_layer_concept_wiki.html +++ b/content/Wiki/en_qgis_layer_concept_wiki.html @@ -1,632 +1,634 @@ - - - - - - - - - - - - Layer Concept — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Layer Concept#

-

Geoinformation systems (GIS) visualize data by stacking layers on top of one another to create maps. Every layer represents one set of information. -This is a vital concept to understand since analysis, as well as visualisation of data, is based on it.

-

Layer Concept

-
-

Hide and show layers#

-

Set a tick in the Layers panel

-

-
-
-

Have you “lost” you layer?#

-

Right click on your layer -> Zoom to layer(s)

-

-
-
-

Move layers in the hierarchy#

-
    -
  • Move a layer up and down in the Layer panel by drag-and-drop

  • -
  • Move a layer to the top: Right click on your layer –> Move To Top

  • -
-

-
-
-

Change Layer Name#

-

Right click on your layer –> Rename Layer

-

-
-
-

Layer properties#

-

Each layer has additional properties that you can view and customise. The most important are

-
    -
  • Information: An overview of the layer name, file format, storage location, spatial extent, number of features (objects),…

  • -
  • Symbology: Display mode of the layer, style, transparency,…

  • -
-

-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Layer Concept — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Layer Concept#

+

Geoinformation systems (GIS) visualize data by stacking layers on top of one another to create maps. Every layer represents one set of information. +This is a vital concept to understand since analysis, as well as visualisation of data, is based on it.

+

Layer Concept

+
+

Hide and show layers#

+

Set a tick in the Layers panel

+

+
+
+

Have you “lost” you layer?#

+

Right click on your layer -> Zoom to layer(s)

+

+
+
+

Move layers in the hierarchy#

+
    +
  • Move a layer up and down in the Layer panel by drag-and-drop

  • +
  • Move a layer to the top: Right click on your layer –> Move To Top

  • +
+

+
+
+

Change Layer Name#

+

Right click on your layer –> Rename Layer

+

+
+
+

Layer properties#

+

Each layer has additional properties that you can view and customise. The most important are

+
    +
  • Information: An overview of the layer name, file format, storage location, spatial extent, number of features (objects),…

  • +
  • Symbology: Display mode of the layer, style, transparency,…

  • +
+

+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_non_spatial_joins_wiki.html b/content/Wiki/en_qgis_non_spatial_joins_wiki.html old mode 100755 new mode 100644 index 81bc72e45..294fa9b33 --- a/content/Wiki/en_qgis_non_spatial_joins_wiki.html +++ b/content/Wiki/en_qgis_non_spatial_joins_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Non-Spatial Joins — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Non-Spatial Joins

- -
-
- -
-
-
- - - - -
- -
-

Non-Spatial Joins#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Non-Spatial Joins — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Non-Spatial Joins

+ +
+
+ +
+
+
+ + + + +
+ +
+

Non-Spatial Joins#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_non_spatial_queries_wiki.html b/content/Wiki/en_qgis_non_spatial_queries_wiki.html old mode 100755 new mode 100644 index c1c6ec712..2f5c452cd --- a/content/Wiki/en_qgis_non_spatial_queries_wiki.html +++ b/content/Wiki/en_qgis_non_spatial_queries_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Non-Spatial Queries — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Non-Spatial Queries

- -
-
- -
-
-
- - - - -
- -
-

Non-Spatial Queries#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Non-Spatial Queries — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Non-Spatial Queries

+ +
+
+ +
+
+
+ + + + +
+ +
+

Non-Spatial Queries#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_plugins_wiki.html b/content/Wiki/en_qgis_plugins_wiki.html old mode 100755 new mode 100644 index 051c97707..de7bd69fb --- a/content/Wiki/en_qgis_plugins_wiki.html +++ b/content/Wiki/en_qgis_plugins_wiki.html @@ -1,622 +1,624 @@ - - - - - - - - - - - - Plugins — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Plugins

- -
- -
-
- - - - -
- -
-

Plugins#

-

There are numerous extensions for QGIS, also called plugins, which provide extended functionalities. Usually, if you have a specific task and QGIS does not have the right functionality, look for a plugin. You google or search in the plugin window.

-
-

Installation of plugins#

-

To install a plugin Plugins -> Manage and Install Plugins… -> All -> search for the plugin -> Install Plugin

-

-
-

Tip

-

If you cannot find a specific extension, check your capitalisation and correct use of spaces. If you still cannot find an extension, you may need to allow the experimental extensions in the options (see below).

-
-
-
-

Manage Plugins#

-

If you are currently not using installed plugins it might be usefull to deacticate these plugins to avoid crowded toolbars and to amny open panels.

-

-
-
-

Allow experimental extensions#

-

Experimental extensions are either still under development, or they are obsolete extensions that are no longer further optimised/adapted for the newer versions of QGIS. Nevertheless, the use of experimental extensions can be useful:

-
    -
  • Specific functions are not supported in any other extension.

  • -
  • Alternative if there are problems with another extension.

  • -
  • A tutorial makes use of a specific extension.

  • -
-

-
-

Tip

-

Due to the often missing optimisation for the used QGIS version, experimental extensions may cause more error messages or other problems up to a crash of QGIS. Experimental extensions should therefore only be activated for use and then deactivated again. In addition, make sure that the current working progress is saved to avoid data loss when QGIS crashes.

-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Plugins — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Plugins

+ +
+ +
+
+ + + + +
+ +
+

Plugins#

+

There are numerous extensions for QGIS, also called plugins, which provide extended functionalities. Usually, if you have a specific task and QGIS does not have the right functionality, look for a plugin. You google or search in the plugin window.

+
+

Installation of plugins#

+

To install a plugin Plugins -> Manage and Install Plugins… -> All -> search for the plugin -> Install Plugin

+

+
+

Tip

+

If you cannot find a specific extension, check your capitalisation and correct use of spaces. If you still cannot find an extension, you may need to allow the experimental extensions in the options (see below).

+
+
+
+

Manage Plugins#

+

If you are currently not using installed plugins it might be usefull to deacticate these plugins to avoid crowded toolbars and to amny open panels.

+

+
+
+

Allow experimental extensions#

+

Experimental extensions are either still under development, or they are obsolete extensions that are no longer further optimised/adapted for the newer versions of QGIS. Nevertheless, the use of experimental extensions can be useful:

+
    +
  • Specific functions are not supported in any other extension.

  • +
  • Alternative if there are problems with another extension.

  • +
  • A tutorial makes use of a specific extension.

  • +
+

+
+

Tip

+

Due to the often missing optimisation for the used QGIS version, experimental extensions may cause more error messages or other problems up to a crash of QGIS. Experimental extensions should therefore only be activated for use and then deactivated again. In addition, make sure that the current working progress is saved to avoid data loss when QGIS crashes.

+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_projections_wiki.html b/content/Wiki/en_qgis_projections_wiki.html old mode 100755 new mode 100644 index 729f102f4..91d032453 --- a/content/Wiki/en_qgis_projections_wiki.html +++ b/content/Wiki/en_qgis_projections_wiki.html @@ -1,663 +1,664 @@ - - - - - - - - - - - - Projections — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - - - - - - -
- -
-

Projections#

-
-

How to check EPSG-Code#

-
-

Note

-

Always check that the Coordinate Reference System (CRS)/EPSG code of your data is the same as the CRS/EPSG-code of your project!

-
-

The default CRS/EPSG code of every QGIS project is the World Geodetic System 84 (EPSG: 4326). This CRS is optimized for world maps. So not perfect for most applications, because we mostly use maps for small areas.

-
-

How to check EPSG-Code/CRS of your QGIS Project and change it#

-
-

Note

-

To check and adjust the CRS/ EPSG-Code should be the first thing you should do when starting a new QGIS project

-
-
    -
  1. Open a QGIS projeckt

  2. -
  3. In the very down right corner of QGIS you find the butten “EPSG”. The number next to it is the EPSG Code currently used in the project. Your more information click on the butten. -

  4. -
  5. The window “Project Properties” will open. Here you can view all availbel CRS/EPSG-Code an there properties.

  6. -
  7. To change the CRS/EPSG-code, select the one you want to use and click “Apply”.

  8. -
-

-
-
-

How to check EPSG-Code/CRS of layer/ data#

-
-

Note

-

After loading any spatial data in QGIS, check the CRS/EPSG code of the data to make sure it is the same as the CRS/EPSG code of the project.

-
-
    -
  1. Reight click on the data layer, click on “Properties”

  2. -
  3. The “Layer Properties” Window of the data layer will open. Click on “Information”

  4. -
  5. Under the headline “Coordinate Reference System (CRS)” you find all information about the CRS. The most important are:

    -
      -
    • Name: Here you find the EPSG Code

    • -
    • Unites: Here yiu can find wather it is possible to use meters with this data layer or latitude and longitude

    • -
    -
  6. -
-
-
-
-

Changing the projection of a vector layer#

-
    -
  1. “Vector” Tab -> “Data Management Tools” -> “Reproject Layer”

  2. -
  3. Select target CRS/ EPSG-Code

  4. -
  5. Save the new file by clicking on th three dots nest to “Reporjected”, specify the file name and the location where you want to save the file -Click “Run” -

  6. -
-
-
-

Changing the projection of a raster layer#

-
    -
  1. “Raster” Tab -> “Projections” -> “Warp (Reproject)”

  2. -
  3. Select target CRS/ EPSG-Code

  4. -
  5. Select resampling method

  6. -
  7. Save the new file by clicking on th three dots nest to “Reporjected”, specify the file name and the location where you want to save the file -Click “Run”

  8. -
-

-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Projections — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + + + + + + +
+ +
+

Projections#

+
+

How to check EPSG-Code#

+
+

Note

+

Always check that the Coordinate Reference System (CRS)/EPSG code of your data is the same as the CRS/EPSG-code of your project!

+
+

The default CRS/EPSG code of every QGIS project is the World Geodetic System 84 (EPSG: 4326). This CRS is optimized for world maps. So not perfect for most applications, because we mostly use maps for small areas.

+
+

How to check EPSG-Code/CRS of your QGIS Project and change it#

+
+

Note

+

To check and adjust the CRS/ EPSG-Code should be the first thing you should do when starting a new QGIS project

+
+
    +
  1. Open a QGIS projeckt

  2. +
  3. In the very down right corner of QGIS you find the butten “EPSG”. The number next to it is the EPSG Code currently used in the project. Your more information click on the butten. +

  4. +
  5. The window “Project Properties” will open. Here you can view all availbel CRS/EPSG-Code an there properties.

  6. +
  7. To change the CRS/EPSG-code, select the one you want to use and click “Apply”.

  8. +
+

+
+
+

How to check EPSG-Code/CRS of layer/ data#

+
+

Note

+

After loading any spatial data in QGIS, check the CRS/EPSG code of the data to make sure it is the same as the CRS/EPSG code of the project.

+
+
    +
  1. Reight click on the data layer, click on “Properties”

  2. +
  3. The “Layer Properties” Window of the data layer will open. Click on “Information”

  4. +
  5. Under the headline “Coordinate Reference System (CRS)” you find all information about the CRS. The most important are:

    +
      +
    • Name: Here you find the EPSG Code

    • +
    • Unites: Here yiu can find wather it is possible to use meters with this data layer or latitude and longitude

    • +
    +
  6. +
+
+
+
+

Changing the projection of a vector layer#

+
    +
  1. “Vector” Tab -> “Data Management Tools” -> “Reproject Layer”

  2. +
  3. Select target CRS/ EPSG-Code

  4. +
  5. Save the new file by clicking on th three dots nest to “Reporjected”, specify the file name and the location where you want to save the file +Click “Run” +

  6. +
+
+
+

Changing the projection of a raster layer#

+
    +
  1. “Raster” Tab -> “Projections” -> “Warp (Reproject)”

  2. +
  3. Select target CRS/ EPSG-Code

  4. +
  5. Select resampling method

  6. +
  7. Save the new file by clicking on th three dots nest to “Reporjected”, specify the file name and the location where you want to save the file +Click “Run”

  8. +
+

+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_projects_folder_structure_wiki.html b/content/Wiki/en_qgis_projects_folder_structure_wiki.html old mode 100755 new mode 100644 index 5f279152b..0ec01c052 --- a/content/Wiki/en_qgis_projects_folder_structure_wiki.html +++ b/content/Wiki/en_qgis_projects_folder_structure_wiki.html @@ -1,642 +1,644 @@ - - - - - - - - - - - - Projects and Folder Structure — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Projects and Folder Structure

- -
- -
-
- - - - -
- -
-

Projects and Folder Structure#

-

In this wiki article, best practices for the creation and management of QGIS projects and geodata is presented.

-
-

Step-by-step: Setting up a new QGIS project from scratch#

-
-

Tip

-

It is good practice to use a standard folder structure for QGIS projects in which the project, all used geodata, styling files and documentation is stored

-
-
    -
  1. Copy the standard folder structure for QGIS projects to the place you want to store your whole project. You can download the standard folder structure here.

  2. -
  3. Open QGIS and create a new project. Click on Project -> New Project

  4. -
-

Create a new QGIS Project

-

-
    -
  1. Safe the new project in the Project folder in the standard folder structure and git pus. Click on Project -> Save As

  2. -
-
-

Tip

-

Do not use spaces in the name. instet always use underscors _

-
-

Save Project

-

-
    -
  1. Check the Coordinate Reference System (CRS)/EPSG code of the project to the CRS/EPSG you want to use. For more information check the wiki article on Projection.

  2. -
-

Check and change CRS/EPSG

-

-
-

Tip

-

The layer data used in the project is not saved in the project file. Instead, the project file only contains the file paths where the layer data were located at the time the project was last saved on the PC. If the location of this layer data is subsequently changed, the error message “handle unavailable layers” will appear when the project is opened again. -Good data organisation with a fixed and well thought-out folder structure prevents such problems.

-
-
-
-

Open existing QGIS Projects#

-

Open QGIS -> Project -> Open -> Select your project

-

Open QGIS Project

-

-
-
-

Standard Folder Structure#

-

The standard folder structure has two principal advantages:

-
    -
  1. By sharing the whole project folder, we can be certain that the project will run without problems on a different computer.

  2. -
  3. The folder structure supports the proper organization of geodata and supports the stable function of a QGIS project.

  4. -
-

The folder structure template can be downloaded here.

-

-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Projects and Folder Structure — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Projects and Folder Structure

+ +
+ +
+
+ + + + +
+ +
+

Projects and Folder Structure#

+

In this wiki article, best practices for the creation and management of QGIS projects and geodata is presented.

+
+

Step-by-step: Setting up a new QGIS project from scratch#

+
+

Tip

+

It is good practice to use a standard folder structure for QGIS projects in which the project, all used geodata, styling files and documentation is stored

+
+
    +
  1. Copy the standard folder structure for QGIS projects to the place you want to store your whole project. You can download the standard folder structure here.

  2. +
  3. Open QGIS and create a new project. Click on Project -> New Project

  4. +
+

Create a new QGIS Project

+

+
    +
  1. Safe the new project in the Project folder in the standard folder structure and git pus. Click on Project -> Save As

  2. +
+
+

Tip

+

Do not use spaces in the name. instet always use underscors _

+
+

Save Project

+

+
    +
  1. Check the Coordinate Reference System (CRS)/EPSG code of the project to the CRS/EPSG you want to use. For more information check the wiki article on Projection.

  2. +
+

Check and change CRS/EPSG

+

+
+

Tip

+

The layer data used in the project is not saved in the project file. Instead, the project file only contains the file paths where the layer data were located at the time the project was last saved on the PC. If the location of this layer data is subsequently changed, the error message “handle unavailable layers” will appear when the project is opened again. +Good data organisation with a fixed and well thought-out folder structure prevents such problems.

+
+
+
+

Open existing QGIS Projects#

+

Open QGIS -> Project -> Open -> Select your project

+

Open QGIS Project

+

+
+
+

Standard Folder Structure#

+

The standard folder structure has two principal advantages:

+
    +
  1. By sharing the whole project folder, we can be certain that the project will run without problems on a different computer.

  2. +
  3. The folder structure supports the proper organization of geodata and supports the stable function of a QGIS project.

  4. +
+

The folder structure template can be downloaded here.

+

+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_qgis_basics_wiki.html b/content/Wiki/en_qgis_qgis_basics_wiki.html old mode 100755 new mode 100644 index 6edbeb138..28686f7fe --- a/content/Wiki/en_qgis_qgis_basics_wiki.html +++ b/content/Wiki/en_qgis_qgis_basics_wiki.html @@ -1,602 +1,604 @@ - - - - - - - - - - - - QGIS Basics — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

QGIS Basics

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

QGIS Basics#

-
-

Subsection to be created:#

-
    -
  • Installation of QGIS

  • -
  • QGIS Interface

  • -
  • Basemaps

  • -
  • Projections (practical)

  • -
  • Plugins

  • -
  • Data sources

  • -
-
-
-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + QGIS Basics — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

QGIS Basics

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

QGIS Basics#

+
+

Subsection to be created:#

+
    +
  • Installation of QGIS

  • +
  • QGIS Interface

  • +
  • Basemaps

  • +
  • Projections (practical)

  • +
  • Plugins

  • +
  • Data sources

  • +
+
+
+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_queries_wiki.html b/content/Wiki/en_qgis_queries_wiki.html old mode 100755 new mode 100644 index b36973a87..5ffa935a7 --- a/content/Wiki/en_qgis_queries_wiki.html +++ b/content/Wiki/en_qgis_queries_wiki.html @@ -1,595 +1,600 @@ - - - - - - - - - - - - Spatial and Non-spatial queries — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Spatial and Non-spatial queries

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Spatial and Non-spatial queries#

-
-

Subsection to be created:#

-
    -
  • Spatial Queries

  • -
  • Non-spatial Queries

  • -
-
-
-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Spatial and Non-spatial queries — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Spatial and Non-spatial queries

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Spatial and Non-spatial queries#

+
+

Subsection to be created:#

+
    +
  • Spatial Queries

  • +
  • Non-spatial Queries

  • +
+
+
+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_single_symbol_wiki.html b/content/Wiki/en_qgis_single_symbol_wiki.html old mode 100755 new mode 100644 index 294c9f6d6..d2e42999a --- a/content/Wiki/en_qgis_single_symbol_wiki.html +++ b/content/Wiki/en_qgis_single_symbol_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Single Symbol — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Single Symbol

- -
-
- -
-
-
- - - - -
- -
-

Single Symbol#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Single Symbol — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Single Symbol

+ +
+
+ +
+
+
+ + + + +
+ +
+

Single Symbol#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_spatial_joins_wiki.html b/content/Wiki/en_qgis_spatial_joins_wiki.html old mode 100755 new mode 100644 index 8df39d3fe..3d5f18b0a --- a/content/Wiki/en_qgis_spatial_joins_wiki.html +++ b/content/Wiki/en_qgis_spatial_joins_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Spatial Joins — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Spatial Joins

- -
-
- -
-
-
- - - - -
- -
-

Spatial Joins#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Spatial Joins — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Spatial Joins

+ +
+
+ +
+
+
+ + + + +
+ +
+

Spatial Joins#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_spatial_queries_wiki.html b/content/Wiki/en_qgis_spatial_queries_wiki.html old mode 100755 new mode 100644 index a31662d67..bcb61390f --- a/content/Wiki/en_qgis_spatial_queries_wiki.html +++ b/content/Wiki/en_qgis_spatial_queries_wiki.html @@ -1,562 +1,567 @@ - - - - - - - - - - - - Spatial Queries — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Spatial Queries

- -
-
- -
-
-
- - - - -
- -
-

Spatial Queries#

-
- - - - -
- - - - - - -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Spatial Queries — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Spatial Queries

+ +
+
+ +
+
+
+ + + + +
+ +
+

Spatial Queries#

+
+ + + + +
+ + + + + + +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/Wiki/en_qgis_table_functions_wiki.html b/content/Wiki/en_qgis_table_functions_wiki.html old mode 100755 new mode 100644 index 2466bd168..4bf655f54 --- a/content/Wiki/en_qgis_table_functions_wiki.html +++ b/content/Wiki/en_qgis_table_functions_wiki.html @@ -1,589 +1,594 @@ - - - - - - - - - - - - Table function — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- - - -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Table function

- -
-
- -
-

Contents

-
- -
-
-
- - - - -
- -
-

Table function#

-
-

Subsection to be created:#

-
-
- - - - -
- - - - - - -
- - - -
- - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Table function — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Table function

+ +
+
+ +
+

Contents

+
+ +
+
+
+ + + + +
+ +
+

Table function#

+
+

Subsection to be created:#

+
+
+ + + + +
+ + + + + + +
+ + + +
+ + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/content/intro.html b/content/intro.html old mode 100755 new mode 100644 index 675eb96dc..1d6634d9c --- a/content/intro.html +++ b/content/intro.html @@ -1,640 +1,640 @@ - - - - - - - - - - - - Welcome to the GIS Learning Hub for Humanitarian Empowerment — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

Welcome to the GIS Learning Hub for Humanitarian Empowerment

- -
- -
-
- - - - -
- -

Logos

-
-

Welcome to the GIS Learning Hub for Humanitarian Empowerment#

-

GIS Learning Hub

-

🌍 Explore, Learn, and Empower through Geographic Information Systems (GIS) with QGIS

-

Welcome to the GIS Learning Hub for Humanitarian Empowerment! This repository is your gateway to a wealth of knowledge and practical exercises that will enable you to harness the power of Geographic Information Systems (GIS) using the renowned QGIS software. Whether you’re an aspiring GIS enthusiast, a seasoned humanitarian worker, or simply curious about spatial data, this repository is designed to provide you with an immersive and hands-on learning experience.

-
-

What’s Inside#

-

📚 Dive into a curated collection of markdown files that serve as comprehensive guides, tutorials, and reference materials. These documents are meticulously crafted to cater to learners at all levels of expertise, from beginners to advanced users.

-

🎥 Immerse yourself in the world of rich media, including interactive maps, visualizations, and multimedia presentations. These embedded resources will enhance your understanding and make learning a dynamic and engaging process.

-
-
-

How to Use#

-

🚀 To get started, simply navigate through the repository’s directories and access the markdown files that pique your interest. Each file is a standalone module focusing on a specific GIS concept, technique, or application.

-

💡 Tip: If you’re new to GIS or QGIS, we recommend beginning with the foundational materials and gradually progressing to more advanced topics.

-
-
-

Learning Objectives#

-

🔍 Our primary aim is to empower you with GIS skills that are tailored for humanitarian purposes. By the end of your journey through this repository, you will be able to:

-
    -
  • 🗺️ Understand the fundamental principles of Geographic Information Systems.

  • -
  • 📍 Navigate the QGIS software confidently and efficiently.

  • -
  • 🌐 Analyze spatial data to extract meaningful insights.

  • -
  • 📊 Visualize data through compelling maps and graphics.

  • -
  • 🤝 Contribute to humanitarian efforts by applying GIS knowledge to real-world scenarios.

  • -
-
-
-

Join the Community#

-

🤝 Learning is most enjoyable when shared. Join our vibrant community of GIS enthusiasts, learners, and experts by participating in discussions, asking questions, and sharing your insights. Together, we can leverage the power of GIS to make a positive impact on humanitarian causes around the world.

-

Let’s embark on this GIS journey together and create a more informed, empowered, and connected world. 🌎

-

Happy Mapping!

-

Join the Community

-

Note: Replace “link_to_image”, “link_to_community”, and other placeholders with actual URLs or references.

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - - -
- - - - - - -
- - - - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + + Welcome to the GIS Learning Hub for Humanitarian Empowerment — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

Welcome to the GIS Learning Hub for Humanitarian Empowerment

+ +
+ +
+
+ + + + +
+ +

Logos

+
+

Welcome to the GIS Learning Hub for Humanitarian Empowerment#

+

GIS Learning Hub

+

🌍 Explore, Learn, and Empower through Geographic Information Systems (GIS) with QGIS

+

Welcome to the GIS Learning Hub for Humanitarian Empowerment! This repository is your gateway to a wealth of knowledge and practical exercises that will enable you to harness the power of Geographic Information Systems (GIS) using the renowned QGIS software. Whether you’re an aspiring GIS enthusiast, a seasoned humanitarian worker, or simply curious about spatial data, this repository is designed to provide you with an immersive and hands-on learning experience.

+
+

What’s Inside#

+

📚 Dive into a curated collection of markdown files that serve as comprehensive guides, tutorials, and reference materials. These documents are meticulously crafted to cater to learners at all levels of expertise, from beginners to advanced users.

+

🎥 Immerse yourself in the world of rich media, including interactive maps, visualizations, and multimedia presentations. These embedded resources will enhance your understanding and make learning a dynamic and engaging process.

+
+
+

How to Use#

+

🚀 To get started, simply navigate through the repository’s directories and access the markdown files that pique your interest. Each file is a standalone module focusing on a specific GIS concept, technique, or application.

+

💡 Tip: If you’re new to GIS or QGIS, we recommend beginning with the foundational materials and gradually progressing to more advanced topics.

+
+
+

Learning Objectives#

+

🔍 Our primary aim is to empower you with GIS skills that are tailored for humanitarian purposes. By the end of your journey through this repository, you will be able to:

+
    +
  • 🗺️ Understand the fundamental principles of Geographic Information Systems.

  • +
  • 📍 Navigate the QGIS software confidently and efficiently.

  • +
  • 🌐 Analyze spatial data to extract meaningful insights.

  • +
  • 📊 Visualize data through compelling maps and graphics.

  • +
  • 🤝 Contribute to humanitarian efforts by applying GIS knowledge to real-world scenarios.

  • +
+
+
+

Join the Community#

+

🤝 Learning is most enjoyable when shared. Join our vibrant community of GIS enthusiasts, learners, and experts by participating in discussions, asking questions, and sharing your insights. Together, we can leverage the power of GIS to make a positive impact on humanitarian causes around the world.

+

Let’s embark on this GIS journey together and create a more informed, empowered, and connected world. 🌎

+

Happy Mapping!

+

Join the Community

+

Note: Replace “link_to_image”, “link_to_community”, and other placeholders with actual URLs or references.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+ + + + + + +
+ + + + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/genindex.html b/genindex.html old mode 100755 new mode 100644 index b14734e4d..ab5a56a01 --- a/genindex.html +++ b/genindex.html @@ -1,482 +1,482 @@ - - - - - - - - - - - Index — GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - -
- -
- -
-
- - - -
-

- -
-
- -
-
-
- - - - -
- - -

Index

- -
- -
- - -
- - - - -
- -
- -
-
-
- -
- -
- -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + + Index — GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+

+ +
+
+ +
+
+
+ + + + +
+ + +

Index

+ +
+ +
+ + +
+ + + + +
+ +
+ +
+
+
+ +
+ +
+ +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + +
+
+ \ No newline at end of file diff --git a/index.html b/index.html old mode 100755 new mode 100644 index 83db99a1b..362ff1b87 --- a/index.html +++ b/index.html @@ -1 +1 @@ - + diff --git a/objects.inv b/objects.inv old mode 100755 new mode 100644 index bdf799fd6..ad76d7e4f Binary files a/objects.inv and b/objects.inv differ diff --git a/search.html b/search.html old mode 100755 new mode 100644 index 6e8c0d2c9..e088eebc5 --- a/search.html +++ b/search.html @@ -1,494 +1,494 @@ - - - - - - - - - - Search - GIS Resource Training Center - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- - - -
-
- -
- - - - - - - - - - - - - -
- -
- - - -
- -
-
- -
-
- -
- -
- -
- - -
- -
- -
- - - - - - - - - - - - - - - - - -
- -
- -
-
- - -
-

Search

- - - -
-
- - - - -
- -
- -
-
-
- -
- -
- -
- - - - -
-
- - -
- - -
-
-
- - - - - -
-
- + + + + + + + + + + Search - GIS Resource Training Center + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + +
+ +
+ + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + +
+

Search

+ + + +
+
+ + + + +
+ +
+ +
+
+
+ +
+ +
+ +
+ + + + +
+
+ + +
+ + +
+
+
+ + + + + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js old mode 100755 new mode 100644 index a001a98bc..17e451c5a --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["README", "content/About/about_1", "content/Glossary/en_glossary_1", "content/ModuL_6/en_qgis_data_analysis_theorie", "content/Modul_1/en_qgis_fuer_johannes", "content/Modul_1/en_qgis_installation", "content/Modul_1/en_qgis_start", "content/Modul_1/en_qgis_theorie", "content/Modul_2/en_data_sources", "content/Modul_2/en_qgis_basic_data_processing", "content/Modul_2/en_qgis_basic_data_processing_ex1", "content/Modul_2/en_qgis_data_sources_ex1", "content/Modul_2/en_qgis_geodata_concept", "content/Modul_2/en_qgis_geodata_concept_ex1", "content/Modul_3/en_qgis_classification_ex1", "content/Modul_3/en_qgis_data_classification", "content/Modul_3/en_qgis_data_queries", "content/Modul_3/en_qgis_data_queries_ex1", "content/Modul_3/en_qgis_digitalisation", "content/Modul_3/en_qgis_digitalisation_ex1", "content/Modul_4/en_qgis_map_design_2", "content/Modul_4/en_qgis_map_design_I", "content/Modul_4/en_qgis_map_design_I_ex1", "content/Modul_4/en_qgis_map_design_I_ex2", "content/Modul_5/en_qgis_non_spatial_tools", "content/Modul_5/en_qgis_spatial_tools", "content/Trainers_corner/en_how_to_training", "content/Trainers_corner/en_training_plans", "content/Wiki/en_qgis_attribute_table_wiki", "content/Wiki/en_qgis_basemaps_wiki", "content/Wiki/en_qgis_categorized_wiki", "content/Wiki/en_qgis_data_classification_wiki", "content/Wiki/en_qgis_data_sources_wiki", "content/Wiki/en_qgis_digitalization_wiki", "content/Wiki/en_qgis_geodata_types_wiki", "content/Wiki/en_qgis_geodata_wiki", "content/Wiki/en_qgis_geoprocessing_wiki", "content/Wiki/en_qgis_graduated_wiki", "content/Wiki/en_qgis_import_geodata_wiki", "content/Wiki/en_qgis_installation_wiki", "content/Wiki/en_qgis_interface_wiki", "content/Wiki/en_qgis_joins_wiki", "content/Wiki/en_qgis_layer_concept_wiki", "content/Wiki/en_qgis_non_spatial_joins_wiki", "content/Wiki/en_qgis_non_spatial_queries_wiki", "content/Wiki/en_qgis_plugins_wiki", "content/Wiki/en_qgis_projections_wiki", "content/Wiki/en_qgis_projects_folder_structure_wiki", "content/Wiki/en_qgis_qgis_basics_wiki", "content/Wiki/en_qgis_queries_wiki", "content/Wiki/en_qgis_single_symbol_wiki", "content/Wiki/en_qgis_spatial_joins_wiki", "content/Wiki/en_qgis_spatial_queries_wiki", "content/Wiki/en_qgis_table_functions_wiki", "content/intro"], "filenames": ["README.md", "content\\About\\about_1.md", "content\\Glossary\\en_glossary_1.md", "content\\ModuL_6\\en_qgis_data_analysis_theorie.md", "content\\Modul_1\\en_qgis_fuer_johannes.md", "content\\Modul_1\\en_qgis_installation.md", "content\\Modul_1\\en_qgis_start.md", "content\\Modul_1\\en_qgis_theorie.md", "content\\Modul_2\\en_data_sources.md", "content\\Modul_2\\en_qgis_basic_data_processing.md", "content\\Modul_2\\en_qgis_basic_data_processing_ex1.md", "content\\Modul_2\\en_qgis_data_sources_ex1.md", "content\\Modul_2\\en_qgis_geodata_concept.md", "content\\Modul_2\\en_qgis_geodata_concept_ex1.md", "content\\Modul_3\\en_qgis_classification_ex1.md", "content\\Modul_3\\en_qgis_data_classification.md", "content\\Modul_3\\en_qgis_data_queries.md", "content\\Modul_3\\en_qgis_data_queries_ex1.md", "content\\Modul_3\\en_qgis_digitalisation.md", "content\\Modul_3\\en_qgis_digitalisation_ex1.md", "content\\Modul_4\\en_qgis_map_design_2.md", "content\\Modul_4\\en_qgis_map_design_I.md", "content\\Modul_4\\en_qgis_map_design_I_ex1.md", "content\\Modul_4\\en_qgis_map_design_I_ex2.md", "content\\Modul_5\\en_qgis_non_spatial_tools.md", "content\\Modul_5\\en_qgis_spatial_tools.md", "content\\Trainers_corner\\en_how_to_training.md", "content\\Trainers_corner\\en_training_plans.md", "content\\Wiki\\en_qgis_attribute_table_wiki.md", "content\\Wiki\\en_qgis_basemaps_wiki.md", "content\\Wiki\\en_qgis_categorized_wiki.md", "content\\Wiki\\en_qgis_data_classification_wiki.md", "content\\Wiki\\en_qgis_data_sources_wiki.md", "content\\Wiki\\en_qgis_digitalization_wiki.md", "content\\Wiki\\en_qgis_geodata_types_wiki.md", "content\\Wiki\\en_qgis_geodata_wiki.md", "content\\Wiki\\en_qgis_geoprocessing_wiki.md", "content\\Wiki\\en_qgis_graduated_wiki.md", "content\\Wiki\\en_qgis_import_geodata_wiki.md", "content\\Wiki\\en_qgis_installation_wiki.md", "content\\Wiki\\en_qgis_interface_wiki.md", "content\\Wiki\\en_qgis_joins_wiki.md", "content\\Wiki\\en_qgis_layer_concept_wiki.md", "content\\Wiki\\en_qgis_non_spatial_joins_wiki.md", "content\\Wiki\\en_qgis_non_spatial_queries_wiki.md", "content\\Wiki\\en_qgis_plugins_wiki.md", "content\\Wiki\\en_qgis_projections_wiki.md", "content\\Wiki\\en_qgis_projects_folder_structure_wiki.md", "content\\Wiki\\en_qgis_qgis_basics_wiki.md", "content\\Wiki\\en_qgis_queries_wiki.md", "content\\Wiki\\en_qgis_single_symbol_wiki.md", "content\\Wiki\\en_qgis_spatial_joins_wiki.md", "content\\Wiki\\en_qgis_spatial_queries_wiki.md", "content\\Wiki\\en_qgis_table_functions_wiki.md", "content\\intro.md"], "titles": ["Repo for the \ud83d\udcda GIS Training Resource Center [TRC]", "About :)", "Glossary", "Data analysis theorie", "Non-Spatial Analyses in QGIS", "QGIS Installation", "Getting started with QGIS", "What is GIS? (Theory)", "Data Sources", "Geodata and Geodata processing", "Basic Geodata processing Exercise 1", "Data Sources Exercise 1", "Geodata concept", "Geodata Concept Exercise 1", "Geodata Classification Exercise 1", "Geodata Classification", "Geodata Selection and Queries", "Selection and Queries Exercise 1", "Digitalisation", "<no title>", "Print layout", "Graphical Variables and Symbology", "Map design Exercise 1", "Map design Exercise 1", "Non-Spatial Geodataprocessing", "Spatial Geodataprocessing", "How to do trainings?", "Basic QGIS Training: Full training", "Attribute Table in QGIS", "Basemaps", "Catagorized", "Data Classification", "Data sources", "Didgitalization", "Types of Geodata", "Geodata", "Geoprocessing", "Graduated", "Geodata Import in QGIS", "QGIS installation", "QGIS Interface", "Joins", "Layer Concept", "Non-Spatial Joins", "Non-Spatial Queries", "Plugins", "Projections", "Projects and Folder Structure", "QGIS Basics", "Spatial and Non-spatial queries", "Single Symbol", "Spatial Joins", "Spatial Queries", "Table function", "Welcome to the GIS Learning Hub for Humanitarian Empowerment"], "terms": {"warn": [0, 7], "construct": [0, 21], "under": [0, 4, 5, 15, 18, 20, 21, 22, 39, 45, 46], "http": [0, 4, 5, 7, 12, 21, 29, 39], "giscienc": 0, "github": 0, "io": 0, "content": [0, 15, 20], "intro": 0, "html": [0, 5, 7, 24, 39], "we": [0, 5, 12, 15, 16, 18, 20, 21, 22, 24, 39, 46, 47, 54], "us": [0, 4, 5, 6, 12, 15, 16, 20, 21, 24, 25, 28, 29, 34, 38, 39, 40, 45, 46, 47], "markdown": [0, 54], "document": [0, 20, 40, 47, 54], "rich": [0, 54], "media": [0, 54], "host": 0, "elsewher": [0, 20], "serv": [0, 1, 54], "comprehens": [0, 7, 20, 21, 54], "guid": [0, 20, 54], "tutori": [0, 45, 54], "refer": [0, 12, 20, 24, 34, 38, 46, 47, 54], "materi": [0, 1, 54], "The": [0, 1, 5, 6, 7, 9, 12, 16, 18, 21, 22, 24, 28, 29, 34, 38, 40, 42, 46, 47], "file": [0, 4, 6, 7, 9, 16, 18, 22, 24, 25, 34, 40, 42, 46, 47, 54], "ar": [0, 1, 4, 5, 6, 9, 12, 15, 16, 18, 20, 21, 22, 24, 25, 29, 39, 40, 42, 45, 46, 54], "built": 0, "static": 0, "webpag": 0, "via": [0, 4, 5, 7, 15, 16, 21, 24], "jupyt": 0, "book": 0, "clone": 0, "git": [0, 47], "com": [0, 4, 5, 7, 29], "set": [0, 4, 15, 18, 20, 21, 29, 40, 42], "up": [0, 6, 9, 15, 16, 21, 24, 42, 45], "python": 0, "environ": [0, 20, 24], "e": [0, 6, 12, 15, 18, 20, 21, 22, 24, 28, 29, 40], "g": [0, 6, 15, 18, 20, 21, 24, 29, 40], "python3": 0, "m": [0, 7, 20, 29], "venv": 0, "activ": [0, 5, 18, 25, 29, 45], "sourc": [0, 5, 6, 7, 9, 12, 15, 18, 21, 24, 28, 39, 48], "bin": 0, "instal": [0, 29, 48], "depend": [0, 5, 9, 12, 15, 16, 21, 24, 39], "pip": 0, "r": [0, 28, 29], "requir": [0, 20], "txt": 0, "do": [0, 6, 7, 18, 20, 24, 46, 47], "your": [0, 4, 5, 6, 7, 9, 12, 15, 16, 18, 20, 21, 22, 24, 29, 38, 39, 40, 42, 45, 47, 54], "chang": [0, 6, 12, 15, 16, 18, 20, 21, 47], "build": [0, 12, 18, 21, 22, 24], "local": [0, 7, 12, 20, 21], "verifi": 0, "_build": 0, "server": 0, "8080": 0, "push": 0, "main": [0, 7, 20, 21], "render": [0, 15], "branch": 0, "gh": 0, "page": [0, 5, 6, 12, 20], "command": [0, 6, 16, 40], "ghp": 0, "import": [0, 12, 18, 20, 21, 24, 35, 42, 46], "n": 0, "p": [0, 21, 24, 28], "f": [0, 12, 28], "thi": [0, 1, 6, 12, 15, 16, 18, 20, 21, 22, 24, 25, 28, 29, 40, 42, 46, 47, 54], "automat": [0, 4, 15, 16, 20], "delet": [0, 28], "recreat": 0, "avoid": [0, 20, 45], "bloat": 0, "histori": 0, "consid": [0, 21, 24], "futur": [0, 12], "qgi": [1, 7, 9, 15, 16, 20, 21, 22, 24, 45, 54], "train": 1, "made": [1, 7, 12, 18], "peopl": [1, 24], "who": [1, 22], "believ": [1, 7], "gi": [1, 5, 6, 15, 16, 18, 20, 21, 24, 28, 40, 42], "can": [1, 4, 5, 6, 7, 9, 12, 15, 16, 18, 20, 21, 22, 24, 29, 34, 39, 40, 42, 45, 46, 47, 54], "help": [1, 7, 15, 20, 21], "humanitarian": 1, "need": [1, 4, 9, 12, 18, 20, 21, 22, 24, 29, 38, 45], "better": [1, 7, 15], "idea": [1, 16, 20], "platform": 1, "origin": 1, "from": [1, 4, 5, 12, 15, 16, 18, 20, 21, 22, 24, 25, 28, 38, 39, 54], "group": [1, 7, 15, 18, 20], "german": 1, "red": [1, 20, 21, 22], "cross": [1, 6, 16], "british": 1, "netherland": 1, "A": [1, 12, 16, 18, 20, 21, 24, 28, 38, 45], "dedic": [1, 20], "student": 1, "assist": [1, 24], "employe": 1, "heidelberg": 1, "institut": 1, "geoinform": [1, 6, 42], "technolog": [1, 21], "heigit": 1, "work": [1, 4, 7, 12, 15, 24, 38, 45], "put": [1, 15, 22], "togeth": [1, 15, 16, 54], "compet": [3, 9, 12, 25], "gener": [3, 5, 6, 18, 21, 22, 24, 39, 40], "understand": [3, 16, 42, 54], "spatial": [3, 6, 12, 18, 34, 41, 42, 46, 54], "geoinformat": 7, "focu": 7, "visualis": [7, 12, 21, 42], "organis": [6, 7, 47], "process": [5, 7, 15, 16, 18, 21, 22, 38, 54], "data": [4, 6, 7, 16, 20, 24, 28, 42, 45, 47, 48, 54], "furthermor": 7, "allow": [6, 7, 15, 16, 18, 21, 24, 28, 29], "reveal": 7, "circumst": 7, "connect": [7, 18, 29, 54], "between": [4, 7, 15, 16, 18, 21, 22, 24], "make": [4, 5, 6, 7, 15, 16, 18, 20, 21, 22, 24, 40, 45, 46, 54], "layer": [4, 6, 7, 15, 16, 20, 24, 28, 29, 35, 40, 47], "within": [7, 15, 16, 20, 21, 22, 24], "analyz": [6, 7, 16, 18, 24, 54], "regard": 7, "each": [4, 5, 6, 7, 12, 15, 20, 21, 22, 24, 28, 39, 42, 54], "other": [6, 7, 15, 16, 18, 20, 22, 24, 25, 34, 38, 40, 45, 54], "obtain": [7, 12], "new": [6, 7, 12, 16, 24, 28, 29, 34, 46, 54], "text": [4, 18, 21, 22, 24], "discuss": [7, 54], "which": [4, 5, 6, 7, 9, 12, 15, 16, 18, 20, 21, 22, 24, 25, 34, 38, 39, 40, 45, 47], "you": [4, 5, 6, 7, 9, 12, 15, 16, 18, 20, 21, 22, 24, 29, 38, 39, 40, 45, 46, 47, 54], "benefit": 7, "could": [7, 22, 24], "mai": [4, 6, 7, 15, 40, 45], "have": [5, 6, 7, 12, 15, 16, 18, 20, 21, 22, 24, 29, 34, 38, 40, 45], "area": [4, 7, 12, 16, 20, 22, 24, 25, 46], "where": [6, 7, 9, 15, 16, 18, 20, 21, 22, 24, 40, 46, 47], "see": [6, 7, 12, 15, 16, 18, 20, 21, 22, 40, 45], "potenti": 7, "geograph": [7, 12, 16, 18, 20, 21, 28, 54], "system": [5, 6, 7, 12, 20, 21, 28, 38, 39, 42, 46, 47, 54], "show": [7, 12, 15, 16, 18, 20, 21, 22, 28], "complex": [], "clearli": [], "effici": [18, 54], "For": [5, 6, 12, 15, 16, 21, 22, 24, 34, 39, 40, 47], "emerg": 15, "context": 18, "visual": [6, 7, 9, 15, 16, 20, 42, 54], "happen": [], "how": [5, 16, 18, 21, 22, 24, 39], "mani": [5, 6, 7, 15, 18, 20, 22, 24, 28, 39, 40], "affect": [7, 20, 22], "It": [7, 12, 15, 16, 18, 20, 21, 24, 25, 47], "summar": 20, "differ": [7, 9, 12, 15, 16, 18, 20, 24, 25, 34, 47], "quickli": [6, 15, 40], "decis": [7, 16, 18], "digit": [7, 35], "collect": [7, 12, 54], "manag": [4, 9, 12, 18, 20, 24, 46, 47], "assign": [15, 22], "them": [7, 16, 20, 21], "posit": [18, 20, 21, 54], "earth": [7, 12, 34], "surfac": [12, 20], "deeper": [], "insight": [16, 21, 24, 54], "demonstr": 16, "pattern": 24, "includ": [7, 16, 18, 20, 21, 24, 54], "more": [5, 7, 12, 15, 16, 18, 20, 21, 22, 24, 29, 45, 46, 47, 54], "improv": 18, "commun": [6, 7, 22], "ultim": 24, "evid": [], "base": [4, 7, 12, 15, 16, 21, 24, 29, 42], "root": [], "geographi": [], "scienc": 21, "devot": [], "studi": [7, 20], "land": [12, 21, 24], "inhabit": 24, "phenomena": 21, "softwar": [5, 6, 7, 18, 20, 21, 54], "displai": [7, 12, 16, 18, 20, 21, 22, 24, 42], "multipl": [7, 12, 18, 21, 24, 28, 34], "hardwar": [], "workflow": [], "interact": [6, 7, 15, 29, 54], "queri": 7, "edit": [6, 7, 21, 28], "present": [4, 7, 15, 20, 28, 47, 54], "result": [4, 5, 7, 12, 24, 39], "oper": [5, 7, 21, 24, 25, 39], "ha": [5, 6, 7, 12, 15, 16, 18, 20, 21, 25, 34, 39, 40, 42, 47], "refuge": 7, "idp": 7, "plan": 7, "remot": 7, "facilit": [7, 16, 20, 28], "access": [7, 18, 20, 22, 24, 29, 54], "keep": [7, 20, 21], "track": [7, 12, 34], "support": [7, 29, 45, 47], "secur": [7, 22], "identifi": [6, 7, 21, 24, 40], "most": [5, 7, 15, 18, 20, 21, 22, 24, 25, 39, 42, 46, 54], "disast": 7, "few": [6, 7, 20, 21], "reach": 7, "initiativehttp": [], "world": [7, 12, 20, 21, 29, 46, 54], "food": [7, 15, 22], "programm": [6, 7, 40], "wfp": 7, "m\u00e9decin": 7, "san": 7, "fronti\u00e8r": 7, "msf": 7, "immap": 7, "mapact": 7, "entiti": [7, 18, 20, 21], "event": 7, "topolog": 7, "geometr": [7, 16, 24], "properti": [4, 7, 15, 16, 20, 21, 46], "varieti": [7, 24], "techniqu": [7, 24, 54], "ad": [4, 7, 22, 24], "thei": [7, 12, 15, 18, 20, 21, 22, 24, 29, 45], "enabl": [4, 7, 21, 28, 54], "explor": [7, 54], "critic": [7, 15], "question": [7, 24, 54], "find": [5, 6, 7, 9, 12, 15, 16, 29, 39, 40, 45, 46], "answer": 7, "those": [7, 12, 15, 16], "In": [5, 6, 7, 12, 15, 16, 18, 20, 21, 22, 24, 29, 39, 40, 45, 46, 47], "1854": 7, "outbreak": 7, "occur": 7, "london": 7, "england": 7, "common": [7, 15, 18, 21, 24, 34], "wa": [6, 7, 47], "diseas": [7, 21], "spread": 7, "through": [7, 16, 22, 24, 54], "air": 7, "dr": 7, "danger": 7, "water": [7, 21], "he": [7, 20], "number": [5, 7, 15, 16, 18, 20, 21, 22, 24, 39, 42, 46], "death": 7, "soho": 7, "per": [7, 16, 24], "hous": 7, "block": [7, 21], "pump": [7, 15, 16], "found": [5, 7, 20], "correl": 7, "one": [4, 7, 12, 16, 18, 20, 21, 22, 24, 34, 42, 46], "specif": [7, 21, 22, 24, 28, 45, 54], "infect": 7, "let": [7, 21, 22, 54], "practic": [7, 24, 29, 35, 47, 48, 54], "modern": 7, "extens": [7, 12, 34], "tradit": 7, "both": [4, 7, 15], "contain": [5, 6, 7, 12, 16, 18, 21, 22, 24, 34, 38, 39, 40, 47], "addit": [4, 7, 24, 29, 42, 45], "limit": 7, "amount": 7, "cartograph": [7, 15, 21], "often": [7, 12, 15, 18, 20, 24, 29, 45], "extrem": 7, "simplifi": 7, "physic": [7, 21], "meaningfulli": 7, "store": [7, 12, 18, 28, 34, 47], "small": [7, 12, 15, 24, 46], "statist": [7, 21], "particular": 7, "argument": 7, "cannot": [7, 12, 20, 45], "natur": [7, 21], "man": 7, "usual": [7, 18, 45], "meant": 7, "navig": [7, 20, 21, 22, 54], "discoveri": 7, "fairli": [7, 15], "simpl": [7, 22, 34], "styliz": 7, "intend": [7, 15, 21], "audienc": 7, "iraq": 7, "relev": [7, 21], "structur": [6, 7, 15], "high": [7, 20], "level": [7, 12, 20, 22, 54], "detail": [6, 7, 12, 20, 28], "produc": [7, 12, 20], "after": [7, 16, 29, 46], "nigeria": [7, 16, 22], "theme": 7, "subject": [7, 20], "repres": [7, 12, 18, 20, 21, 28, 42], "being": [7, 12, 15, 18], "colour": [7, 20, 22], "shape": [7, 12, 16, 20, 21], "quantit": [7, 20], "qualit": 7, "rise": 7, "awar": [7, 12], "about": [5, 6, 7, 12, 20, 28, 40, 46, 54], "africa": [7, 12], "respect": 7, "user": [6, 7, 15, 21, 24, 54], "maker": [7, 18], "greater": [7, 16, 24], "yemen": 7, "ongo": 7, "narr": 7, "graphic": [7, 18, 20, 54], "element": [7, 21, 22], "report": 7, "rais": 7, "tilkaif": 7, "mosul": 7, "focus": 54, "format": [7, 9, 16, 18, 20, 21, 28, 34, 42], "dynam": 54, "major": 20, "relat": [5, 16, 20, 28], "own": [6, 22], "uniqu": [16, 21, 22, 24], "capabl": [7, 21], "behind": 22, "spreadsheet": 34, "further": [7, 12, 45], "look": [9, 20, 21, 22, 24, 45], "here": [5, 6, 9, 12, 16, 20, 21, 39, 40, 46, 47], "6": [15, 16], "10": [16, 20, 21, 24], "dokument": [], "221013": [], "modul": [6, 24, 54], "sig_cartong_en": [], "pdf": [4, 18, 20], "burundi": [], "bangladesh": [], "fatal": [], "mosquito": [], "born": [], "vector": [4, 6, 15, 16, 18, 22, 24, 40], "kill": [], "over": [6, 7, 15], "620": [], "000": 24, "2020": [], "2": [4, 6, 15, 16, 18, 22], "method": [12, 15, 18, 20, 25, 46], "control": [16, 20], "insecticid": [], "treat": [], "net": [7, 29], "involv": [18, 24], "insid": [], "onc": [15, 20, 24], "twice": 20, "year": 4, "howev": [15, 20, 21, 22], "order": [15, 18, 20, 21, 22], "signific": [], "protect": [], "coverag": [], "provid": [5, 7, 12, 16, 18, 20, 21, 29, 45, 54], "when": [6, 15, 18, 20, 21, 22, 24, 29, 38, 45, 46, 47, 54], "least": [12, 34], "85": [], "home": [], "target": [12, 25, 46], "mega": [], "2018": [], "aid": 18, "team": [], "move": [18, 20, 28, 29], "around": [4, 16, 21, 29, 54], "huge": [], "get": [12, 16, 29, 54], "lost": 15, "popul": [21, 22, 24], "estim": [], "distribut": [7, 15, 21], "tent": [], "risk": [20, 21], "assess": [], "45": [], "53": [], "some": [18, 20, 29], "below": [15, 16, 18, 20, 21, 22, 29, 34, 45], "illustr": 7, "product": 7, "indentii": [], "kei": [6, 16, 24, 40], "step": [4, 12, 16, 20, 21], "deliver": [], "associ": [16, 20, 21, 24], "exhaust": 21, "vision": 21, "possibl": [7, 9, 15, 18, 20, 21, 22, 24, 29, 46], "request": 15, "variou": [16, 21], "toolbox": [18, 38], "cartong": 12, "gitlab": 12, "org": [5, 7, 12, 21, 29, 39], "learn": [12, 21], "corner": [6, 12, 20, 46], "en": [5, 7, 12, 39], "2_mobilize_mapping_gi": [], "2_1_static_map": [], "2_2_dynamic_map": [], "2_3_field": [], "gis_toolbox": [], "2_mobilizing_mapping_and_gi": [], "13": [], "sept": [], "2022": 20, "desktop": [5, 6, 7], "onlin": [7, 29], "At": [5, 6, 7, 15, 22], "basic": [7, 12, 15, 20, 21], "perform": [4, 7, 12, 24], "geospati": [7, 24], "task": [6, 7, 18, 45], "googl": [7, 12, 34, 45], "As": [7, 20, 21, 47], "profession": 7, "mostli": [7, 46], "either": [7, 21, 45], "proprietari": 7, "open": [5, 7, 16, 18, 20, 21, 22, 28, 29, 39, 45, 46], "street": [7, 12, 21], "osm": 7, "www": [4, 5, 7, 39], "openstreetmap": [7, 20, 29], "14": 7, "49": 7, "4192": 7, "8": [7, 21], "7235": 7, "databas": [7, 18], "updat": [7, 20, 24, 28], "maintain": 7, "volunt": [6, 7], "collabor": 7, "tag": [7, 34], "categor": [7, 22, 31], "umap": 7, "fr": 7, "felt": 7, "easi": [5, 6, 7, 18, 29], "draw": [7, 16, 18, 20, 25], "upload": [7, 15], "shapefil": [7, 12, 15, 16, 22, 34, 38], "wikimapia": 7, "lang": 7, "de": 7, "lat": 7, "402500": 7, "lon": 7, "633100": 7, "z": [7, 29], "12": [7, 16], "w": [7, 28], "servic": [7, 29], "contributor": 7, "knowledg": [7, 12, 21, 54], "particularli": 7, "d": 7, "export": [7, 16, 18, 20, 24], "share": [7, 22, 24, 47, 54], "qfield": [7, 29], "doc": 7, "qfieldcloud": 7, "project": [4, 5, 7, 16, 20, 22, 25, 35, 40, 48], "devic": 7, "ani": [7, 15, 16, 18, 20, 25, 29, 45, 46], "sync": 7, "osmand": 7, "basemap": [7, 35, 48], "good": [6, 7, 21, 47], "offlin": 7, "kml": [7, 12, 34], "well": [6, 7, 12, 16, 20, 21, 42, 47], "record": [7, 18, 20, 22], "trip": 7, "geoodk": 7, "index": 7, "combin": [7, 22, 24], "odk": 7, "survei": [7, 18], "easili": [5, 6, 7, 18, 20, 21, 24, 39, 40], "polygon": [7, 12, 22, 25], "add": [4, 7, 9, 15, 16, 18, 20, 21, 22, 28, 38], "also": [4, 6, 15, 16, 18, 20, 21, 22, 24, 25, 40, 45], "webmap": 7, "3": [15, 16, 18, 21, 22, 24, 38, 39, 40], "4": [15, 16, 18, 21, 22, 24], "3_webmapping_tool": [], "mayb": [], "click": [4, 5, 6, 9, 12, 15, 18, 20, 21, 22, 24, 25, 29, 38, 39, 42, 46, 47], "directli": [7, 20, 24, 38], "highlight": 16, "attribut": [4, 12, 15, 16, 21, 22, 24, 35], "choos": [4, 9, 12, 15, 16, 18, 20, 21, 22], "interest": [4, 54], "right": [4, 9, 12, 15, 16, 18, 20, 21, 29, 42, 45, 46], "should": [4, 12, 15, 18, 20, 21, 24, 25, 45, 46], "sure": [4, 5, 6, 20, 40, 45, 46], "mark": 4, "onli": [4, 6, 12, 15, 16, 18, 21, 22, 24, 29, 34, 45, 47], "meet": [], "criteria": 24, "dakar": [], "region": [16, 20, 22], "input": [4, 12, 16, 18, 38], "healthsit": [], "check": [6, 12, 16, 18, 20, 21, 22, 24, 29, 45, 47], "predic": [], "second": [15, 16, 21, 24], "dakar_thi": [], "dropdown": [18, 29], "menu": [15, 16, 18, 22], "modifi": [20, 21], "current": [6, 18, 25, 28, 40, 45, 46], "conduct": [], "row": [24, 28], "OR": 24, "To": [12, 15, 16, 18, 20, 21, 24, 29, 38, 42, 45, 46, 54], "AND": 24, "remov": [20, 21, 24, 28], "NOT": [20, 24], "window": [6, 18, 20, 22, 38, 39, 45, 46], "kind": [], "arithmet": 24, "health": 20, "facil": [], "seneg": [], "than": [16, 18, 20, 22, 24], "nurs": [], "staff": 18, "valu": [4, 12, 15, 16, 20, 21, 22, 24, 34], "column": [4, 21, 28, 38], "name": [4, 12, 16, 18, 20, 21, 29, 34, 46, 47], "staff_nur": [], "again": [6, 16, 22, 45, 47], "bottom": [5, 12, 15, 16, 20, 21, 22, 39], "1": [12, 15, 16, 18, 21, 29], "string": 24, "like": [12, 18, 22, 24, 29, 34], "doctor": [], "amen": [], "unser": [], "logic": [20, 24], "similar": [12, 15, 16, 18, 34], "insert": [20, 28], "redund": [], "densiti": 24, "start": [9, 22, 24, 46, 54], "mode": [18, 28, 42], "button": [6, 18, 20, 21], "stop": [], "squar": [], "meter": [7, 20, 46], "first": [4, 15, 18, 20, 21, 22, 24, 46], "divid": 22, "kilomet": [], "clip": [4, 36], "relationship": [4, 16, 20, 21], "overlai": 4, "comput": [4, 5, 6, 18, 39, 47], "specifi": [4, 18, 20, 24, 46], "distanc": [4, 12, 18, 20], "unit": [4, 20, 46], "segment": [4, 20, 24], "output": [4, 25], "If": [4, 5, 6, 15, 18, 21, 22, 24, 29, 34, 38, 39, 40, 45, 47, 54], "individu": [4, 15, 20], "leav": [4, 22], "blank": [4, 20], "usag": 4, "philippin": 4, "taal": 4, "volcano": 4, "surg": 4, "hazard": 4, "phivolc": 4, "dost": 4, "gov": 4, "ph": 4, "vault": 4, "1basesurge_layout": 4, "jan2020_a0_v5": 4, "jpg": [4, 18], "nepal": 4, "earthquak": 4, "april": 4, "2015": [4, 15, 24], "reliefweb": 4, "int": 4, "site": [4, 5, 39], "resourc": [4, 54], "reach_npl_map_earthquakeaffected_27apr2015_a3": 4, "fukushima": 4, "2011": 4, "integr": [4, 5, 18], "doce": 4, "emsic": 4, "five": 4, "incid": [4, 22], "consider": [4, 15], "With": [4, 12, 22, 24, 29], "search": [4, 5, 6, 12, 16, 18, 28, 38, 39, 40, 45], "exist": [4, 12, 15, 24], "csv": [4, 34], "xl": [4, 34], "take": [4, 15, 25], "match": [4, 20, 24], "defin": [4, 12, 15, 20, 24, 25], "destin": 4, "temporari": 4, "hint": 4, "doe": [4, 6, 20, 21, 34, 40, 45], "tab": [4, 18, 21, 22, 46], "dataset": [4, 7, 12, 18, 22, 24, 34, 38], "want": [4, 6, 9, 15, 16, 18, 21, 22, 24, 38, 40, 46, 47], "enrich": [4, 24], "come": [7, 12], "constantli": [6, 7], "evolv": 7, "increas": [7, 20], "now": [7, 12, 15, 16, 18, 22], "excel": [7, 34, 38], "power": [7, 54], "bi": 7, "adob": 7, "latter": [7, 21], "tablet": 7, "exchang": [7, 12, 34], "accord": [7, 16, 20, 21], "These": [7, 12, 22, 54], "vizualis": 7, "oppos": 7, "previou": [7, 16], "ones": [6, 7, 9, 15, 18, 20, 28, 40], "advanc": [5, 7, 18, 20, 54], "veri": [7, 12, 20, 24, 29, 34, 46], "carri": 7, "out": [5, 6, 7, 16, 20, 21, 39, 40, 47], "manipul": [7, 24], "wai": [6, 7, 15, 16, 20, 21, 24, 29, 40], "browser": [6, 7, 29, 40], "detali": [], "36": [], "41": [], "an": [4, 5, 6, 12, 15, 16, 21, 22, 24, 28, 40, 42, 45, 46, 54], "view": [16, 18, 20, 21, 42, 46], "captur": 6, "creat": [4, 6, 7, 15, 16, 20, 21, 24, 38, 40, 42, 47, 54], "printabl": 6, "map": [4, 12, 15, 16, 18, 25, 28, 29, 42, 46, 54], "been": [7, 16, 18, 24], "sinc": [12, 15, 20, 29, 42], "2002": 6, "osgeo4w": [5, 39], "network": [5, 21], "offer": [5, 24], "geo": 5, "visit": [5, 16], "trac": 5, "osgeo": 5, "link": [5, 9, 12, 20, 24], "download": [5, 22, 39, 47], "select": [5, 6, 12, 15, 20, 21, 22, 28, 29, 38, 40, 46, 47], "fortgeschritten": 5, "dure": [5, 18], "accur": 12, "cours": 39, "grass": 5, "saga": 5, "video": [5, 6, 12, 15, 16, 18, 34, 40], "youtub": 5, "watch": [5, 12], "v": [5, 28], "pja_ex0tvza": 5, "internet": 5, "fly": 5, "version": [5, 20, 24, 38, 39, 40, 45], "30": [5, 21], "must": [5, 15, 20, 24], "plugin": [5, 48], "forus": [5, 39], "maco": 5, "nextgen": 5, "interfac": [5, 12, 20, 48], "erweiterungen": 5, "installieren": 5, "apt": 5, "sudo": 5, "convent": [5, 21], "packag": [5, 39], "older": 5, "probabl": [5, 21], "ubuntugi": 5, "pleas": [16, 18], "note": [5, 16, 54], "follow": [5, 12, 16, 18, 20, 22, 25, 34], "alldownload": 5, "repositori": [5, 54], "mean": [6, 7, 16, 20, 21, 22, 29], "program": [6, 34], "form": [6, 18, 28, 38], "fill": [6, 15, 21, 22], "s": [4, 6, 7, 12, 15, 16, 18, 21, 22, 24, 29, 42], "experi": [6, 54], "That": [6, 12], "code": [6, 12, 24, 47], "avail": [5, 6, 16, 39], "everyon": [5, 6, 39], "free": 6, "applic": [6, 15, 18, 29, 46, 54], "back": [6, 16], "larg": [6, 15, 20], "so": [6, 7, 15, 18, 20, 21, 22, 46], "solut": [6, 12, 15], "technic": [6, 15], "issu": 6, "forum": 6, "blog": 6, "subreddit": 6, "exercis": [6, 12, 21, 54], "gis_train": 6, "folder": [6, 16, 22], "subfold": 6, "call": [6, 12, 15, 16, 45], "empti": 6, "top": [6, 16, 18, 28, 42], "left": [5, 6, 12, 15, 18, 20, 21, 24, 39], "save": [12, 18, 20, 22, 25, 28, 40, 45, 46, 47], "brows": [6, 9, 18], "session1": 6, "qgzfile": 6, "just": [6, 15, 16, 21, 22, 24], "templat": [6, 20, 47], "earlier": [], "list": [6, 9, 18, 21, 22, 24, 28, 40], "close": [15, 16], "pane": [], "scroll": [6, 16, 20, 21, 40], "xyz": 29, "tile": 29, "drag": [20, 22, 25, 42], "type": [4, 5, 12, 15, 18, 20, 22, 24, 39], "satellit": [12, 29], "url": [29, 54], "copi": [18, 28, 47], "past": [18, 28], "cn": [], "vt": 29, "lyr": 29, "189": [], "gl": [], "x": [12, 21, 28, 29, 38], "y": [29, 38], "ok": [15, 16, 18, 20, 21, 22, 38], "newli": [], "repeat": [21, 22], "terrain": [21, 29], "load": [6, 16, 25, 29, 38, 40, 46], "point": [6, 12, 15, 16, 20, 22, 38, 40], "line": [6, 12, 20, 22], "clean": 24, "befor": [9, 20, 24], "sharepoint": 22, "acled_nigeria_2022": [], "2023": [], "comma": 34, "delimit": [25, 34], "readi": [], "next": [15, 18, 21, 22, 46], "expand": [21, 22], "geometri": [12, 18, 24, 38], "definit": 21, "section": 16, "longitud": [38, 46], "field": [4, 6, 7, 15, 18, 21, 22, 28, 38], "latitud": [38, 46], "cr": [12, 18, 25, 47], "featur": [4, 6, 7, 12, 15, 20, 21, 22, 24, 28, 42], "tool": [6, 12, 15, 16, 18, 20, 24, 38, 40, 46], "esri": 34, "three": [9, 12, 16, 21, 24, 34, 46], "dot": [6, 9, 12, 46], "nga_securityincid": [], "option": [15, 16, 18, 20, 21, 22, 25, 38, 45], "its": [16, 20, 21, 22, 24], "represent": [12, 20, 21], "inform": [4, 6, 12, 15, 18, 20, 21, 24, 28, 34, 40, 42, 46, 47, 54], "piec": [], "even": [18, 20], "nga_secur": [], "infact": [], "exactli": 24, "dock": 28, "ressourc": [], "brc": [], "session": 22, "38": [], "50": 20, "heigit_slid": [], "28": 24, "44": [], "therefor": [5, 39, 45], "freeli": [5, 39], "cost": [5, 39], "mac": 39, "linux": 39, "actual": [5, 54], "long": [5, 39], "term": [5, 15, 16, 39], "releas": [5, 39], "11": 5, "firenz": 5, "recommend": [5, 39, 54], "latest": [5, 39], "becaus": [5, 15, 16, 18, 20, 22, 39, 46], "stabl": [5, 39, 47], "fewest": [5, 39], "bug": [5, 39], "our": [5, 15, 20, 21, 22, 24, 39, 54], "introduct": [5, 39], "standalon": [5, 39, 54], "suffici": [5, 39], "alwai": [5, 6, 12, 20, 21, 29, 34, 38, 39, 40, 46, 47], "clear": [5, 15, 21, 39], "icon": [5, 15, 16, 18, 28, 39], "screen": [5, 20, 39], "altern": [5, 18, 29, 39, 45], "function": [5, 16, 20, 28, 29, 39, 45, 47], "keyboard": [5, 39], "entri": [5, 18, 39], "item": [5, 20, 25, 39], "read": [5, 6, 15, 20, 21, 39, 40], "know": [6, 40], "familiar": 16, "yourself": 54, "geodata": [6, 21, 40, 47], "gistool": [], "geog": [], "uni": 21, "anticipatori": [], "action": 28, "tree": [], "exercise_0": [], "blob": [], "ex0_data": [], "zip": [], "pc": [6, 16, 47], "abov": [12, 15, 18], "unzip": [], "beforehand": [], "hub": [], "arcgi": [], "2b93b06dc0dc4e809d3c8db5cb96ba69_0": [], "countri": [12, 16, 20, 21, 22, 24], "ncei": [], "noaa": [], "metadata": [], "iso": [], "id": [12, 18, 24], "ngdc": [], "mgg": [], "g012153": [], "wri": [], "globalpowerplantdatabas": [], "global": 12, "plant": [], "geopackag": [12, 16, 34], "test": 24, "while": [20, 28], "drop": [18, 42], "down": [6, 15, 16, 18, 20, 21, 42, 46], "box": [18, 25], "costum": [], "coordin": [6, 12, 18, 25, 34, 38, 40, 46, 47], "epsg": [12, 47], "4326": 46, "wg": [], "84": 46, "arrang": 29, "zoom": [18, 20, 28, 42], "what": [16, 20, 22, 24], "end": [7, 16, 38, 54], "exercise_1": [], "reproject": [12, 29, 46], "i": [15, 16, 22, 28], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx": [], "miss": 45, "sierra": 15, "leon": 15, "border": 20, "geopack": [], "nation": 20, "boder": [], "provinc": [], "airport": [], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx": [], "notic": [], "statu": [6, 40], "bar": [6, 16, 18, 21, 40], "hide": 28, "hierarchi": 20, "renam": [20, 42], "meaning": 54, "effect": [21, 24], "storag": 42, "locat": [4, 6, 7, 12, 15, 18, 20, 21, 22, 40, 42, 46, 47], "purpos": [28, 54], "pseudo": [], "mercat": 12, "3857": [], "indic": [20, 24], "searchbar": [], "windo": [], "lead": [], "problem": [6, 29, 45, 47], "bevor": [], "all": [4, 6, 7, 12, 15, 16, 20, 21, 22, 24, 28, 29, 34, 40, 45, 46, 47, 54], "toolbar": [20, 29, 45], "shortcut": [6, 18, 28, 40], "execut": [6, 40], "frequent": [6, 40], "exampl": [4, 6, 12, 15, 16, 18, 20, 21, 22, 24, 34, 40], "special": [6, 24, 40], "raster": [6, 18, 40], "etc": [6, 16, 18, 20, 21, 24, 40], "among": [6, 16, 40], "thing": [6, 21, 40, 46], "later": [6, 20, 40], "wiki": [6, 12, 29, 40, 47], "central": [6, 7, 21, 40], "compon": [6, 7, 24, 28, 40], "everi": [6, 12, 40, 42, 46], "correspond": [6, 18, 20, 24, 40], "scale": [6, 12, 15, 40], "mous": [6, 18, 20, 40], "pointer": [6, 40], "thu": [6, 40], "rotat": [6, 12, 40], "face": [6, 40], "south": [6, 24, 40], "side": [6, 24, 40], "anoth": [6, 16, 20, 21, 22, 29, 40, 42, 45], "don": [6, 12, 16, 22, 40], "t": [6, 12, 16, 21, 22, 29, 40], "try": [6, 18, 20, 40], "plu": 16, "490534e96bdd471b6924cd39e28859a2": [], "qgis_mov": [], "mp4": [], "a64f7271eb2a23e876ada002ea89f7f0": [], "qgis_zoom": [], "object": [12, 15, 21, 42], "6566c2b8127c7f697619ddcb55831840": [], "qgis_identifi": [], "featuer": 40, "325cb2d70b0154c1bd5f38a899cd2b40": [], "qgis_map_project": [], "8e2bb629d9c3189f8f635a4cf1381d2c": [], "qgis_save_project": [], "1655b97b741749bfa46c6c08ee3d0be6": [], "qgis_open_project": [], "instead": [6, 16, 20, 22, 47], "path": [6, 24, 47], "were": [6, 7, 24, 47], "time": [6, 16, 18, 21, 24, 47], "last": [6, 7, 47], "subsequ": [6, 47], "error": [6, 45, 47], "messag": [6, 20, 45, 47], "handl": [6, 47], "unavail": [6, 47], "appear": [6, 16, 18, 20, 24, 47], "fix": [6, 20, 47], "thought": [6, 47], "prevent": [6, 47], "b9ccebc4bd584fdbc5092b4804d8a742": [], "anzeigen_einblenden_ausblenden": [], "07bbf031499eb8da30daaa3bebd24769": [], "qgis_arrange_toolbar": [], "two": [6, 12, 16, 21, 29, 47], "until": [6, 20], "arrow": [6, 20, 21, 22, 29, 40], "hold": [6, 16], "individualis": 6, "By": [6, 9, 12, 20, 21, 22, 47, 54], "compress": 6, "enlarg": 6, "7": [16, 22], "9": [15, 21], "f\u00fcr": [], "die": [], "analysen": [], "im": [], "tutorium": [], "nutzen": [], "wir": [], "ein": [], "vielzahl": [], "unterschiedlich": [], "datens\u00e4tz": [], "au": [], "verschiedenen": [], "quellen": [], "auch": [], "eur": [], "abschlussaufgab": [], "werdet": [], "ihr": [], "geodaten": [], "von": [], "unterschiedlichen": [], "websit": 12, "beh\u00f6rden": [], "portalen": [], "beziehen": [], "hier": [], "findet": [], "unvollst\u00e4ndig": [], "wo": [], "herunterladen": [], "k\u00f6nnt": [], "welch": [], "u": [], "bundesamt": [], "kartographi": [], "geod\u00e4si": [], "b": 21, "verwaltungsgebiet": [], "usg": [], "landsat": [], "sentinel": [], "srtm": 29, "aster": [], "cover": [12, 16, 21, 22], "infrastruktur": [], "bev\u00f6lkerung": [], "wirtschaft": [], "sammlung": [], "mit": [], "zu": [], "sehr": [], "vielen": [], "themenbereichen": [], "pangaea": [], "freie": [], "daten": [], "umweltwissenschaftlichen": [], "themen": [], "h\u00f6hendaten": [], "90m": [], "aufl\u00f6sung": [], "openaerialmap": [], "luft": [], "sattelitenbild": [], "weltweit": [], "hd": 21, "46m": [], "copernicu": [], "monitor": [], "der": [], "eu": [], "hoch": [], "aufgel\u00f6st": [], "europaweit": [], "rasterdaten": [], "besiedelung": [], "w\u00e4ldern": [], "uvm": [], "digital": [], "gdz": [], "bkg": [], "bund": [], "php": [], "default": [20, 21, 22, 46], "eurostat": [], "geographisch": [], "ec": [], "web": 29, "gisco": [], "opendatalab": [], "geojson": [12, 34], "util": [], "administr": [20, 22], "nut": [], "geoboundari": [], "naturalearthdata": [], "qa": [], "mapbox": [], "osmlab": [], "geofabrik": [], "extract": [16, 54], "allgemein": [], "main_pag": [], "bundesanstalt": [], "geowissenschaften": [], "rohstoff": [], "bgr": [], "geoview": [], "gemeinsam": [], "geoviewer_nod": [], "produkt": [], "center": [7, 21], "produktcent": [], "terracatalog": [], "wetter": [], "dwd": [], "cdc": [], "portal": [], "wopr": [], "worldpop": [], "bound": 25, "envelop": [], "extent": [20, 42], "finder": [], "bboxfind": [], "0": [20, 22], "000000": [], "auf": [], "dieser": [], "seit": [], "werden": [], "dies": [], "wichtigsten": [], "behandelt": [], "um": [], "einen": [], "allgemeinen": [], "\u00fcberblick": [], "teilnehmenden": [], "schaffen": [], "dabei": [], "folgend": [], "angesprochen": [], "verschieden": [], "sind": [], "nicht": [], "verarbeitung": [], "geeignet": [], "umgekehrt": [], "mehreren": [], "dateien": [], "aufgeteilt": [], "gespeichert": [], "tr\u00e4gt": [], "jede": [], "teil": [], "datei": [], "ganz": [], "bestimmt": [], "informationen": [], "darstellung": [], "gesehen": [], "kann": [], "endung": [], "shp": [12, 34, 38], "zum": [], "beispiel": [], "haupts\u00e4chlich": [], "beinhalten": [], "geometrien": [], "w\u00e4hrend": [], "dbf": [12, 34], "attributtabel": [], "enthalten": [], "k\u00f6nnen": [], "immer": [], "nur": [], "geometrietyp": [], "da": [], "hei\u00dft": [], "sie": [], "entwed": [], "ausschlie\u00dflich": [], "punkt": [], "linien": [], "oder": [], "niemal": [], "mischung": [], "drei": [], "textuellen": [], "austauschformaten": [], "vorhanden": [], "sein": [], "ist": [], "offen": [], "standardaustauschformat": [], "r\u00e4umlich": [], "basiert": [], "json": [], "javascript": [], "notat": [], "diesem": [], "dargestellt": [], "sich": [], "koordinatenbezugssystem": [], "geodet": 46, "1984": [], "zur": [], "veranschaulichung": [], "finden": [], "folgenden": [], "g\u00fcltige": [], "quell": [], "o": [], "j": 28, "unter": [], "htm": [], "abgerufen": [], "am": [], "19": [], "weiter": [], "verwendung": [], "zudem": [], "adress": [12, 21], "leicht": [], "selbst": [], "erstellt": [], "georeferenziert": [], "bilddateien": [], "satellitenbild": [], "ag": [], "mage": [], "il": [], "ormat": [], "wird": [], "heut": [], "nahezu": [], "standardm\u00e4\u00dfig": [], "al": [], "speicherformat": [], "verwendet": [], "bilddatei": [], "eingebettet": [], "metadaten": [], "georeferenz": [], "bild": [], "etwa": [], "koordinaten": [], "georeferenzierung": [], "folgendem": [], "ogc": [], "consortium": [], "opengeospati": [], "008r4": [], "_geotiff": [], "standardisiert": [], "durch": [], "speicherung": [], "vektor": [], "den": [], "meisten": [], "unterst\u00fctzt": [], "ide": [], "dateibasiert": [], "datenbank": [], "sqlite": [], "welcher": [], "weis": [], "strukturiert": [], "abgefragt": [], "beim": [], "arbeiten": [], "es": [], "zuweilen": [], "dem": [], "dateiformat": [], "spezifischen": [], "problemen": [], "kommen": [], "anderen": [], "wekrzeugen": [], "besond": [], "wenn": [], "\u00e4nderungen": [], "vorgenommen": [], "fehlermeldungen": [], "hervorrufen": [], "l\u00f6sen": [], "l\u00e4sst": [], "speichern": [], "exportieren": [], "ausgew\u00e4hlt": [], "vorteil": [], "liegt": [], "vergleich": [], "darin": [], "dass": [], "einer": [], "besteht": [], "kein": [], "teildatei": [], "verloren": [], "gehen": [], "projekt": [], "sollt": [], "dagegen": [], "besser": [], "gearbeitet": [], "fehlerquellen": [], "minimieren": [], "leer": [], "weiterverarbeiten": [], "gpkg": [12, 34], "eb": [], "ap": [], "ervic": [], "erlauben": [], "euch": [], "eurem": [], "verkn\u00fcpfen": [], "abzurufen": [], "ergebni": [], "dann": [], "kartenbild": [], "angezeigt": [], "prinzip": [], "beispielsweis": [], "angewendet": [], "zugeh\u00f6rigen": [], "wikibeitrag": [], "dar\u00fcber": [], "hereinladen": [], "lassen": [], "funktionen": [], "genutzt": [], "standard": [12, 34], "concept": [24, 35, 54], "kartographisch": [], "layern": [], "weit": [], "komplex": [], "themenfeld": [], "betrachten": [], "daher": [], "einig": [], "grundlegend": [], "hinwei": [], "get\u00e4tigten": [], "ver\u00e4nderungen": [], "bei": [], "lokal": [], "eurer": [], "projektdatei": [], "direkt": [], "au\u00dferhalb": [], "ge\u00f6ffnet": [], "abgab": [], "moodl": [], "hochgeladen": [], "habt": [], "darstellungseinstellungen": [], "jedoch": [], "getrennt": [], "abspeichern": [], "sieh": [], "abgaben": [], "empfehlen": [], "aber": [], "stattdessen": [], "screenshot": [15, 16, 18, 24], "gleich": [], "art": [], "rechtsklick": [], "symbolog": [15, 42], "einstellung": [], "gibt": [], "bestehend": [], "style": [20, 42, 47], "w\u00e4hlen": [], "kategori": [], "sollen": [], "angepasst": [], "\u00e4hnlich": [], "wie": [], "abschnitt": [], "entsprechend": [], "skala": [], "\u00fcber": [], "farbverlauf": [], "klassen": [], "eingeteilt": [], "nach": [], "bestimmten": [], "equal": [16, 24], "interv": [15, 22], "count": 22, "klass": [], "neue": [], "signatur": [], "folgt": [], "m\u00f6glicherweis": [], "m\u00fcsst": [], "noch": [], "namen": [], "feld": [], "attributen": [], "anpassen": [], "werten": [], "beschriftet": [], "label": [20, 22], "funktioniert": [], "manchmal": [], "semi": [], "optim": [15, 20, 46], "geht": [], "daf\u00fcr": [], "einfach": [], "schnell": [], "startet": [], "automatischen": [], "passt": [], "erm\u00f6glicht": [], "platziert": [], "nimmt": [], "oft": [], "viel": [], "zeit": [], "anspruch": [], "nutzung": [], "doku": [], "non": [34, 41], "creation": 47, "tabl": [4, 12, 16, 22, 29, 34, 35, 38], "ii": [], "join": 25, "buffer": [21, 25, 36], "dissolv": [25, 36], "mask": [], "singl": [12, 15, 18, 21, 24, 31, 34], "symbol": [12, 15, 18, 21, 22, 31], "graduat": [22, 31], "22": [38, 39, 40], "15": [38, 39, 40], "bia\u0142owie\u017ca": 39, "ltr": 39, "32": [24, 39], "bit": [18, 24, 39], "64": [24, 39], "empow": 54, "gatewai": 54, "wealth": 54, "har": 54, "renown": 54, "whether": 54, "re": 54, "aspir": 54, "enthusiast": 54, "season": 54, "worker": 54, "simpli": [15, 20, 54], "curiou": 54, "design": [18, 20, 21, 24, 54], "immers": 54, "hand": [12, 54], "dive": 54, "curat": 54, "meticul": 54, "craft": 54, "cater": 54, "learner": 54, "expertis": 54, "beginn": 54, "multimedia": 54, "embed": 54, "enhanc": 54, "engag": 54, "directori": 54, "piqu": 54, "tip": [12, 34, 54], "begin": 54, "foundat": 54, "gradual": 54, "progress": [24, 45, 54], "topic": 54, "primari": [15, 20, 54], "aim": 54, "skill": 54, "tailor": 54, "journei": 54, "abl": [12, 20, 22, 54], "fundament": [21, 54], "principl": 54, "confid": 54, "compel": 54, "contribut": [29, 54], "effort": 54, "appli": [7, 12, 15, 16, 21, 22, 46, 54], "real": [12, 20, 21, 24, 54], "scenario": 54, "enjoy": 54, "vibrant": 54, "expert": 54, "particip": [22, 54], "ask": 54, "leverag": 54, "impact": [20, 54], "caus": [45, 54], "embark": 54, "happi": 54, "replac": 54, "link_to_imag": 54, "link_to_commun": 54, "placehold": 54, "und": 12, "frei": [], "ohn": [], "kosten": [], "jeden": [], "verf\u00fcgbar": [], "rechner": [], "verwenden": [], "netzwerkinstal": [], "bezogen": [], "anbietet": [], "besucht": [], "projektseit": [], "klickt": [], "dort": [], "achtet": [], "darauf": [], "installationsprozess": [], "diesen": [], "kur": [], "relevant": [], "pr\u00e4zise": [], "videotutori": [], "gew\u00e4hlt": [], "heruntergeladen": [], "installiert": [], "ab": [], "muss": [], "eingebunden": [], "mehr": [], "aktiviert": [], "systemen": [], "herk\u00f6mmlichen": [], "paketquellen": [], "vermutlich": [], "\u00e4ltere": [], "solltet": [], "paketquel": [], "beachtet": [], "hinweis": [], "hier\u00fcber": [], "sphere": 12, "flat": 12, "without": [12, 20, 24, 29, 47], "distort": 12, "translat": [12, 21], "curv": 12, "thousand": 12, "case": [12, 15, 16, 21, 22, 24], "correctli": 12, "overview": [12, 15, 34, 42], "characterist": [12, 15, 16], "cylindr": 12, "lambert": 12, "alber": 12, "conic": 12, "smaller": 12, "give": [12, 18, 20, 34], "expens": 12, "run": [12, 16, 38, 46, 47], "instruct": 12, "clickclick": 12, "warp": [12, 46], "transfom": 34, "filenam": [12, 34], "dscription": 34, "old": [12, 34], "still": [12, 20, 34, 45], "wide": [12, 29, 34], "geodataformat": [12, 34], "consist": [12, 22, 34], "shx": [12, 34], "versatil": [12, 34], "datafil": [12, 34], "keyhol": [12, 34], "markup": [12, 34], "languag": [12, 34], "gpx": [12, 34], "gp": [12, 34], "waypoint": [12, 34], "tif": 34, "tiff": 34, "geotiff": 34, "imag": [12, 18, 20, 34], "necessarili": 34, "georefer": 34, "georeferenc": 34, "nc": 34, "netcdf": 34, "scientif": 34, "speed": 34, "temperatur": [12, 20, 34], "multibl": [34, 38], "asc": 34, "ascii": 34, "grid": [21, 34], "exact": 38, "selectir": 38, "correct": [20, 21, 24, 38, 45], "cum": [], "separ": [20, 34], "xlsx": [], "transform": [20, 24, 38], "eaysier": 38, "qggi": [38, 40], "width": [20, 22], "300px": [], "figur": [16, 20, 21], "fig": [], "same": [12, 15, 16, 18, 20, 22, 46], "perfect": 46, "adjust": [21, 46], "projeckt": 46, "butten": 46, "availbel": 46, "th": 46, "nest": 46, "reporject": 46, "resampl": 46, "initi": 7, "pull": 0, "commit": 0, "yourmessag": 0, "conflict": 0, "config": 0, "rebas": 0, "fals": [0, 20], "And": 6, "broken": [], "panel": [6, 15, 16, 18, 20, 22, 29, 42, 45], "toolsbar": 6, "__": 6, "card": [], "100": [], "src": [], "raw": [], "qgis_move_symbol": [], "png": 29, "qgis_zoom_symbol": [], "Or": [6, 40], "ctrl": [6, 16, 18, 20, 28, 40], "qgis_open_toolbar": [], "geschlossene_toolbox_01": [], "rectangl": [12, 18, 20, 25], "explan": [12, 20], "trade": 12, "off": [12, 22], "direct": 12, "why": 12, "On": [12, 21, 22], "big": [12, 20], "stai": [12, 20], "mispres": 12, "true": 12, "size": [12, 15, 20, 21, 22], "comparison": [12, 24], "placement": 12, "popular": 12, "greenland": 12, "seem": [12, 20], "realiti": 12, "lot": [12, 24], "bigger": 12, "wrong": 12, "crucial": [12, 16, 21], "els": 12, "explain": [6, 12, 22], "seen": [7, 12, 16, 18], "turn": [12, 22], "heicloud": 12, "mistak": [12, 21, 24], "superposit": 12, "analys": [9, 12, 15], "adapt": [12, 45], "color": [12, 15, 16, 21, 22], "There": [12, 16, 20, 21, 24, 25, 29, 45], "matrix": 12, "pixel": [12, 21], "resolut": 12, "accuraci": 12, "elev": 12, "pictur": [12, 15, 18, 29], "urban": [12, 18], "3_key_gis_concept": 12, "3_3_key_concept": 12, "3_3_1_layer": 12, "numer": [15, 16, 18, 20, 21, 22, 45], "account": [15, 25], "themat": [15, 20, 21], "encompass": [15, 21], "presenc": 15, "outlin": [15, 21, 22], "paramet": 15, "marker": 15, "transpar": [15, 21, 22, 42], "classifi": 22, "botton": [15, 18], "insecur": [15, 22], "pannel": [15, 16], "Then": [5, 15, 16], "circl": [15, 18], "choic": [15, 16, 20], "syle": 15, "ramp": [15, 21, 22], "go": [9, 15, 16, 18, 20], "intersect": 16, "touch": 16, "part": [16, 18], "alreadi": [16, 21, 24], "shown": [16, 20], "yellow": [16, 21, 24], "arriv": 16, "deselect": [16, 28], "sever": [7, 16, 18, 20, 21, 24], "disjoint": 16, "overlap": [16, 20], "neighbor": 16, "5": [15, 16, 20, 24], "four": 16, "op": 16, "addition": [15, 16], "plai": 16, "predict": 16, "countir": 16, "nigerian": [16, 21, 22], "describ": [16, 20], "place": [15, 16, 18, 20, 47], "irrespect": 16, "total": [16, 22], "independ": [16, 29], "occupi": 16, "charact": [16, 20], "space": [16, 20, 45, 47], "known": [16, 24], "manual": [18, 20], "express": [20, 21, 28], "would": [15, 16, 20], "press": [16, 20], "sometim": [16, 20, 21, 24], "f3": 16, "board": 16, "prompt": 16, "written": [16, 24], "integ": 24, "float": [], "imagin": 16, "state": [16, 21, 22], "million": [16, 24], "length": [16, 18, 24], "37": 16, "firstli": [16, 18], "forget": [16, 22], "doubl": [16, 21, 22], "sign": [16, 21], "instanc": [15, 16], "enter": [16, 18, 20, 21, 25], "lastli": 16, "thelv": 16, "admin0nam": 16, "admin0refnam": 16, "titl": 16, "simultan": 16, "shape_area": 16, "proce": 16, "connector": 16, "properli": [16, 24], "convert": 18, "specialist": 18, "spatialit": 18, "road": [18, 20, 21, 22, 29], "transfer": 18, "opent": 18, "prefer": 18, "f6": 18, "shift": [18, 28], "filter": [18, 21, 24, 28], "visibl": [18, 22, 29], "toggl": [18, 28], "switch": [18, 21], "digitis": 18, "rememb": [15, 18, 20, 22], "done": [18, 21, 24], "complet": [18, 20], "fourth": 18, "slightli": [9, 18], "thatth": 18, "ensur": 18, "dialog": [18, 24], "subchapt": 21, "interpret": [20, 21], "topograph": [20, 21, 29], "localis": 21, "hydrographi": 21, "blue": [20, 21, 22], "green": [20, 21], "forest": 21, "agricultur": 21, "flood": [20, 21], "decid": [15, 21], "rule": [20, 21], "convei": [20, 21], "brain": 21, "attempt": 21, "theoris": 21, "transcrib": 21, "hue": 21, "textur": 21, "orient": [20, 21, 29], "vari": [20, 21], "appropri": 21, "dispos": 21, "quantiti": [21, 22], "bertin": 21, "1967": 21, "percept": [15, 21], "person": 21, "physiolog": 21, "blind": [], "transcultur": 21, "cartographi": 21, "slide": 21, "textlabel": 21, "wish": [20, 21], "continu": [15, 22], "settlement": 21, "font": [20, 21], "final": [20, 21], "ppp": [21, 22], "adm1_en": 21, "english": 21, "arial": 21, "bold": 21, "dark": [20, 21], "grei": 21, "pt": 21, "white": [21, 22], "capit": [20, 21], "citi": [21, 24], "\u03b5": 21, "class": [15, 21, 22, 24], "_": [21, 47], "frame": [20, 21], "doub": 21, "black": 21, "12pt": 21, "10pt": 21, "builder": 21, "witha": 20, "playout": 20, "dialer": 20, "duplic": 20, "refresh": 20, "lock": 20, "unlock": 20, "custom": 20, "a4": 20, "a3": 20, "a2": 20, "landscap": 20, "portrait": 20, "commonli": [20, 24], "__drag": 20, "canva": [20, 25, 29], "wheel": 20, "gentli": 20, "desir": [20, 24], "_rememb": 20, "explicit": 20, "river": 20, "redo": 20, "auto": 20, "necessari": [20, 24], "reorder": 20, "ot": 20, "uncheck": 20, "reorganis": 20, "fielld": 20, "round": 20, "metr": 20, "mile": 20, "degre": 20, "km": 20, "height": [15, 20], "thick": 20, "prepar": 20, "subnat": 20, "landmark": 20, "boundari": [20, 22], "oveview": 20, "never": 20, "author": 20, "word": [20, 21], "reader": 20, "contextu": 20, "precis": 20, "township": 20, "intellig": 20, "acronym": 20, "date": [20, 24], "care": 20, "maputo": 20, "mozambiqu": 20, "ghardaia": 20, "algeria": 20, "imposs": [20, 21], "organ": [20, 22, 24, 28, 47], "categori": [20, 21], "background": [20, 29], "essenti": 20, "measur": [7, 20], "fraction": 20, "25000": 20, "equival": 20, "centimet": 20, "calcul": [20, 25, 28], "cm": 20, "250": 20, "gound": 20, "ground": 20, "undergo": 20, "rest": 20, "north": 20, "cite": 20, "stock": 20, "appeal": [20, 21], "distract": 20, "lose": 20, "stand": [20, 22], "eg": 20, "russia": 20, "noth": 20, "rather": [20, 24], "speak": 20, "representatin": 20, "feel": 20, "low": 20, "rate": [18, 20], "differenti": 20, "ordin": 20, "across": [18, 20, 24], "brai": 20, "priorit": 20, "certain": [20, 47], "especi": [18, 20, 21], "__if": 20, "degrad": 20, "shade": 20, "gradat": [20, 21], "neg": [20, 21, 22], "sens": [15, 20], "distinguish": [15, 20, 21], "ey": 20, "perceiv": 20, "darker": [20, 21], "lighter": [20, 21], "send": 20, "diverg": [20, 21], "opposit": 20, "itself": [20, 21], "trend": 20, "decreas": 20, "too": 20, "incorport": 20, "multitud": 20, "overload": 20, "reduc": [15, 18, 20], "readabl": 20, "difficult": [20, 21], "__the": 20, "beyond": 20, "dinstinguish": 20, "less": [20, 24], "seriou": 20, "complic": 20, "forc": 20, "successful": [], "subset": 24, "sql": [], "condit": [24, 28], "mathemat": 15, "value1": [], "value2": [], "field1": [], "field2": [], "analysi": [24, 42], "But": 24, "split": [15, 24], "simplest": 24, "uid": 24, "sudan": 24, "best": [21, 24, 47], "suscept": 24, "spell": 24, "vecctor": 38, "reight": 46, "headlin": 46, "yiu": 46, "wather": 46, "descript": [12, 28, 34], "accompani": 7, "won": 7, "predomin": 7, "miasma": 7, "resid": 7, "boil": 7, "tendenc": 7, "li": 7, "35": 7, "broad": 7, "contamin": 7, "overrid": 8, "turbo": 8, "head": 9, "zusammengefasst": [], "collaps": [], "erg\u00e4nzt": [], "camp": 7, "easier": [18, 21], "adm0": 22, "adm1": 22, "adm2": 22, "might": [15, 22, 45], "weird": 22, "everyth": [20, 22], "stly": 22, "contour": 22, "topmost": 22, "stroke": 22, "66": 22, "millimet": 22, "recent": 22, "26": 22, "cann": 22, "distric": 22, "dash": 22, "yout": 22, "hopefulli": 22, "nicer": 22, "colleagu": 22, "covid": 22, "district": [21, 22], "te": 22, "acl": 22, "onto": 22, "discret": 22, "casualtie": 22, "actor": 22, "perpetr": 22, "act": 22, "event_typ": 22, "explos": 22, "selector": [21, 22], "preview": 22, "nga_adm1_pop": 22, "sai": 22, "rivht": 22, "cholera": 22, "unfinish": 22, "xxxxxxxxx": [], "xxxxxxxxxx": [], "xxxxxxxxxxxxxxxxxxxxxxx": [], "xxxxxxxxxxxxxxxxxxxxxxxx": [], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx": [], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx": [], "configur": [], "observ": [5, 15], "explanatori": 20, "phenomenen": 20, "variabl": 20, "excercis": [], "md": [], "arguabl": 21, "strike": 21, "disinguish": 21, "scheme": [15, 21], "satur": 21, "sequenti": 21, "rel": 21, "ideal": 21, "achiev": 21, "sequenc": 21, "grade": 21, "pai": 21, "attent": 21, "mind": 21, "hard": 21, "impair": 21, "jenni": 21, "bernhard": 21, "nathaniel": 21, "vaughn": 21, "kelso": 21, "2007": 21, "perspect": 21, "58": 21, "septemb": 21, "61": 21, "67": 21, "doi": 21, "14714": 21, "cp58": 21, "270": 21, "2017": 21, "bodi": 21, "2nd": 21, "quarter": 21, "john": 21, "wilson": 21, "ed": 21, "2222": 21, "gistbok": 21, "singleband": 21, "grai": 21, "band": 21, "pseudocolour": 21, "premad": 21, "plot": 21, "light": 21, "opac": 21, "underlign": 21, "apart": 15, "substanti": 15, "break": 15, "minim": 15, "varianc": 15, "maxim": 15, "had": [15, 24], "folk": 15, "inclin": 15, "pair": 15, "given": [15, 25], "gap": 15, "middl": 15, "rang": [15, 24, 29], "Such": 15, "approach": 15, "maximum": 15, "matter": 15, "elig": 15, "fund": 15, "extern": 15, "constraint": 15, "ride": 15, "despit": 15, "straddl": 15, "breakpoint": 15, "choropleth": 15, "much": [15, 18, 24], "clearer": 15, "emphas": 15, "evalu": 15, "psycholog": 15, "taken": 15, "radiu": 16, "trace": 18, "polylin": 18, "analogu": 18, "cad": 18, "3d": 18, "model": 18, "becom": 18, "industri": 18, "geologist": 18, "planner": 18, "member": 18, "compani": 18, "whenev": 18, "faster": [18, 29], "flexibl": 18, "ever": 18, "caution": 18, "inevit": 18, "undershoot": 18, "overshoot": 18, "unless": 18, "quit": 18, "fuzzi": 18, "toler": 18, "snap": 18, "minimum": 18, "node": 18, "vertic": 18, "core": 28, "sort": 28, "multi": 28, "modif": 28, "reload": 28, "geometryless": 28, "cut": 28, "clipboard": 28, "c": 28, "invert": 28, "pan": 28, "undock": 28, "divers": 29, "No": 29, "clikc": 29, "seletc": 29, "info": 29, "opentopomap": 29, "opensourc": 29, "mt1": 29, "hybrid": 29, "h": 29, "aerial": 29, "ecn": 29, "t3": 29, "virtualearth": 29, "q": 29, "jpeg": 29, "advantag": [29, 47], "print": 29, "nasa": 29, "horizont": 29, "pack": 29, "whatev": 29, "offic": 40, "stack": 42, "vital": 42, "tick": 42, "customis": 42, "extend": 45, "capitalis": 45, "useful": 45, "deactic": 45, "crowd": 45, "amni": 45, "develop": 45, "obsolet": 45, "longer": 45, "optimis": 45, "newer": 45, "nevertheless": 45, "due": 45, "crash": 45, "deactiv": 45, "loss": 45, "articl": 47, "whole": [24, 47], "safe": 47, "pu": 47, "instet": 47, "underscor": 47, "princip": 47, "proper": 47, "classif": 24, "econom": 24, "gain": 24, "aspect": 24, "introduc": 24, "decim": 24, "boolean": 24, "unus": 24, "unnecessari": 24, "ratio": 24, "viewer": 24, "max": 24, "min": 24, "averag": 24, "parent": 24, "catergori": 24, "300": 24, "live": 24, "largest": 24, "agglomer": 24, "success": 24, "chosen": 24, "valuabl": 24, "successfulli": 24, "substract": 24, "divis": 24, "remaind": 24, "IN": 24, "IS": 24, "null": 24, "yet": 24, "1950": 24, "promin": 25, "layout": 25, "bookmark": 25, "xmin": 25, "xmax": 25, "ymin": 25, "ymax": 25}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"repo": 0, "gi": [0, 7, 54], "train": [0, 26, 27], "resourc": 0, "center": 0, "trc": 0, "tractor": 0, "dev": 0, "setup": [0, 5], "ci": 0, "cd": 0, "about": 1, "glossari": 2, "data": [3, 8, 9, 11, 12, 15, 18, 21, 22, 31, 32, 34, 38, 46], "analysi": [3, 7], "theori": [3, 7, 12], "what": [6, 7, 18, 54], "gener": 7, "inform": 7, "why": 7, "ar": 7, "spatial": [4, 7, 16, 24, 25, 43, 44, 49, 51, 52], "analys": [4, 7], "import": [7, 9, 15, 38], "introduct": [7, 24], "an": [7, 20], "definit": [], "A": 7, "formal": [], "compon": [], "we": 7, "us": [7, 18, 22, 54], "humanitarian": [7, 54], "respons": 7, "paper": 7, "map": [6, 7, 20, 21, 22, 23, 40], "cartographi": 7, "exampl": 7, "from": [7, 29, 47], "past": 7, "john": 7, "snow": 7, "s": 54, "cholera": 7, "vs": [7, 20], "refer": 7, "infrastructur": 7, "themat": 7, "situat": 7, "descript": 7, "creat": [18, 31, 35, 36, 41, 48, 49, 53], "malaria": [], "The": [15, 20], "battl": [], "against": [], "indoor": [], "residu": [], "sprai": [], "ir": [], "coordin": [], "camp": [], "web": 7, "platform": 7, "applic": [7, 12], "geo": [7, 9], "mobil": 7, "app": 7, "overview": [4, 6, 7, 20, 40], "understand": [7, 20], "so": [], "qgi": [4, 5, 6, 18, 27, 28, 29, 38, 39, 40, 46, 47, 48], "manual": [16, 24], "select": [4, 9, 16, 17, 18, 24], "featur": [9, 16, 18], "save": [6, 16], "same": 21, "all": [], "type": [21, 34], "locat": 16, "tool": [4, 7], "non": [4, 16, 24, 43, 44, 49], "express": [16, 24], "tabl": [18, 24, 28, 53], "function": [6, 24, 53], "delet": [18, 24], "field": [16, 24], "calcul": 24, "geoprocess": [4, 36], "buffer": 4, "without": 4, "dissolv": 4, "join": [4, 24, 41, 43, 51, 54], "galaxi": 7, "instal": [5, 39, 45], "window": 5, "mac": 5, "linux": 5, "get": 6, "start": 6, "intro": 6, "concept": [6, 12, 13, 42], "introduc": 6, "excel": [], "attribut": [9, 18, 28], "32": 5, "bit": 5, "64": 5, "interfac": [6, 40], "video": [], "geodatenbeschaffung": [], "deutschland": [], "und": [], "europa": [], "grenzen": [], "openstreetmap": [], "physisch": [], "geographi": [], "humangeographi": [], "onlin": [], "werkzeug": [], "geodatenform": [], "unterschied": [], "bei": [], "der": [], "arbeit": [], "mit": [], "raster": [9, 12, 21, 25, 34, 38, 46], "vektordaten": [], "vektordatenform": [], "shapefil": 18, "textuel": [], "austauschform": [], "wie": [], "z": [], "b": [], "geojson": [], "rasterdatenform": [], "geotiff": [], "datenform": [], "f\u00fcr": 25, "geopackag": 9, "servic": [], "wm": [], "sourc": [8, 11, 20, 32], "basic": [5, 10, 24, 27, 48], "geodata": [9, 10, 12, 13, 14, 15, 16, 34, 35, 38], "process": [9, 10], "singl": [20, 22, 50], "symbol": [20, 50], "farb": [], "\u00e4ndern": [], "gr\u00f6\u00dfe": [], "punkt": [], "icon": 20, "polygon": [16, 18, 21], "f\u00fcllung": [], "transparenz": [], "einstellen": [], "nominal": [], "daten": 25, "categor": 15, "intervallskaliert": [], "graduat": [15, 37], "signaturen": [], "speichern": [], "laden": [], "beschriftung": [], "automatisch": [], "platzierung": [], "manuel": [], "weiter": [], "ressourcen": [], "classif": [14, 15, 31], "queri": [16, 17, 24, 44, 49, 52], "digitalis": 18, "design": [22, 23], "geodataprocess": [24, 25], "how": [15, 26, 46, 54], "do": 26, "full": 27, "basemap": [9, 29], "catagor": 30, "subsect": [31, 35, 36, 41, 48, 49, 53], "didgit": 33, "layer": [12, 18, 21, 22, 25, 38, 42, 46], "plugin": [29, 45], "project": [6, 12, 46, 47], "welcom": 54, "learn": 54, "hub": 54, "empower": 54, "insid": 54, "object": [6, 40, 54], "commun": 54, "exercis": [10, 11, 13, 14, 17, 22, 23], "1": [10, 11, 13, 14, 17, 20, 22, 23], "mag": [], "2": 21, "vector": [9, 12, 21, 25, 34, 38, 46], "open": [6, 38, 40, 47], "text": [9, 16, 20, 34, 38], "check": 46, "epsg": 46, "code": 46, "cr": [6, 46], "your": 46, "chang": [22, 42, 46], "move": [6, 40, 42], "zoom": [6, 40], "properti": [6, 40, 42], "toolbar": [6, 18, 40], "configur": 29, "view": [6, 40], "excercis": 12, "file": [12, 38], "format": 12, "represent": [], "graphic": 21, "semiolog": [20, 21], "visual": 21, "variabl": [21, 22], "symbolog": [21, 22], "style": [15, 21, 22], "panel": [21, 40], "label": 21, "ad": [9, 20, 21], "differ": [21, 22], "print": 20, "layout": 20, "compos": 20, "element": 20, "new": [18, 20, 47], "box": 20, "legend": 20, "scale": 20, "bar": 20, "good": [20, 34], "practic": [20, 34], "common": 20, "mistak": 20, "composit": 20, "kei": 20, "4": 20, "error": [18, 20], "proport": 20, "circl": 20, "solid": 20, "color": 20, "gradient": [20, 21], "distinct": 20, "palett": 20, "between": 20, "two": 20, "limit": 20, "geometr": 20, "complex": 20, "ii": [], "builder": [], "oper": 16, "further": 6, "delimit": 9, "al": [], "separ": [], "kapitel": [], "try": [], "out": [], "base": 22, "rang": 22, "titl": 20, "show": [6, 40, 42], "set": [6, 47], "hide": [6, 40, 42], "displai": [6, 40], "arrang": [6, 40], "colour": 21, "blind": 21, "point": [18, 21], "line": [18, 21], "assign": 21, "goal": 15, "classifi": 15, "click": 16, "arithmet": 16, "integ": 16, "float": 16, "string": 16, "e": 16, "g": 16, "like": 16, "placehold": 16, "logic": 16, "AND": 16, "OR": [16, 25], "digit": 18, "creation": 18, "edit": 18, "button": 28, "tabel": 28, "standard": [29, 47], "add": [24, 29], "googl": 29, "bing": 29, "quickmapservic": 29, "navig": 29, "osm": 29, "place": 29, "search": 29, "via": 38, "tab": [25, 38], "drag": 38, "drop": 38, "netcdf": 38, "csv": 38, "xlsx": 38, "toolbox": [6, 40], "have": 42, "you": 42, "lost": 42, "hierarchi": 42, "name": 42, "manag": 45, "allow": 45, "experiment": 45, "extens": 45, "folder": 47, "structur": 47, "step": 47, "up": 47, "scratch": 47, "exist": 47, "statist": 24, "categori": 24, "clip": 25, "extent": 25, "dropdown": 25, "here": 25, "mask": 25, "auch": 25, "tutori": 5, "3": 5, "28": 5}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "content/About/about_1", "content/Glossary/en_glossary_1", "content/ModuL_6/en_qgis_data_analysis_theorie", "content/Modul_1/en_qgis_installation", "content/Modul_1/en_qgis_start", "content/Modul_1/en_qgis_theorie", "content/Modul_2/en_data_sources", "content/Modul_2/en_qgis_basic_data_processing", "content/Modul_2/en_qgis_basic_data_processing_ex1", "content/Modul_2/en_qgis_data_sources_ex1", "content/Modul_2/en_qgis_geodata_concept", "content/Modul_2/en_qgis_geodata_concept_ex1", "content/Modul_3/en_qgis_classification_ex1", "content/Modul_3/en_qgis_data_classification", "content/Modul_3/en_qgis_data_queries", "content/Modul_3/en_qgis_data_queries_ex1", "content/Modul_3/en_qgis_digitalisation", "content/Modul_3/en_qgis_digitalisation_ex1", "content/Modul_4/en_qgis_map_design_2", "content/Modul_4/en_qgis_map_design_I", "content/Modul_4/en_qgis_map_design_I_ex1", "content/Modul_4/en_qgis_map_design_I_ex2", "content/Modul_5/en_qgis_non_spatial_tools", "content/Modul_5/en_qgis_spatial_tools", "content/Trainers_corner/en_how_to_training", "content/Trainers_corner/en_training_plans", "content/Wiki/en_qgis_attribute_table_wiki", "content/Wiki/en_qgis_basemaps_wiki", "content/Wiki/en_qgis_categorized_wiki", "content/Wiki/en_qgis_data_classification_wiki", "content/Wiki/en_qgis_data_sources_wiki", "content/Wiki/en_qgis_digitalization_wiki", "content/Wiki/en_qgis_geodata_types_wiki", "content/Wiki/en_qgis_geodata_wiki", "content/Wiki/en_qgis_geoprocessing_wiki", "content/Wiki/en_qgis_graduated_wiki", "content/Wiki/en_qgis_import_geodata_wiki", "content/Wiki/en_qgis_installation_wiki", "content/Wiki/en_qgis_interface_wiki", "content/Wiki/en_qgis_joins_wiki", "content/Wiki/en_qgis_layer_concept_wiki", "content/Wiki/en_qgis_non_spatial_joins_wiki", "content/Wiki/en_qgis_non_spatial_queries_wiki", "content/Wiki/en_qgis_plugins_wiki", "content/Wiki/en_qgis_projections_wiki", "content/Wiki/en_qgis_projects_folder_structure_wiki", "content/Wiki/en_qgis_qgis_basics_wiki", "content/Wiki/en_qgis_queries_wiki", "content/Wiki/en_qgis_single_symbol_wiki", "content/Wiki/en_qgis_spatial_joins_wiki", "content/Wiki/en_qgis_spatial_queries_wiki", "content/Wiki/en_qgis_table_functions_wiki", "content/intro"], "filenames": ["README.md", "content/About/about_1.md", "content/Glossary/en_glossary_1.md", "content/ModuL_6/en_qgis_data_analysis_theorie.md", "content/Modul_1/en_qgis_installation.md", "content/Modul_1/en_qgis_start.md", "content/Modul_1/en_qgis_theorie.md", "content/Modul_2/en_data_sources.md", "content/Modul_2/en_qgis_basic_data_processing.md", "content/Modul_2/en_qgis_basic_data_processing_ex1.md", "content/Modul_2/en_qgis_data_sources_ex1.md", "content/Modul_2/en_qgis_geodata_concept.md", "content/Modul_2/en_qgis_geodata_concept_ex1.md", "content/Modul_3/en_qgis_classification_ex1.md", "content/Modul_3/en_qgis_data_classification.md", "content/Modul_3/en_qgis_data_queries.md", "content/Modul_3/en_qgis_data_queries_ex1.md", "content/Modul_3/en_qgis_digitalisation.md", "content/Modul_3/en_qgis_digitalisation_ex1.md", "content/Modul_4/en_qgis_map_design_2.md", "content/Modul_4/en_qgis_map_design_I.md", "content/Modul_4/en_qgis_map_design_I_ex1.md", "content/Modul_4/en_qgis_map_design_I_ex2.md", "content/Modul_5/en_qgis_non_spatial_tools.md", "content/Modul_5/en_qgis_spatial_tools.md", "content/Trainers_corner/en_how_to_training.md", "content/Trainers_corner/en_training_plans.md", "content/Wiki/en_qgis_attribute_table_wiki.md", "content/Wiki/en_qgis_basemaps_wiki.md", "content/Wiki/en_qgis_categorized_wiki.md", "content/Wiki/en_qgis_data_classification_wiki.md", "content/Wiki/en_qgis_data_sources_wiki.md", "content/Wiki/en_qgis_digitalization_wiki.md", "content/Wiki/en_qgis_geodata_types_wiki.md", "content/Wiki/en_qgis_geodata_wiki.md", "content/Wiki/en_qgis_geoprocessing_wiki.md", "content/Wiki/en_qgis_graduated_wiki.md", "content/Wiki/en_qgis_import_geodata_wiki.md", "content/Wiki/en_qgis_installation_wiki.md", "content/Wiki/en_qgis_interface_wiki.md", "content/Wiki/en_qgis_joins_wiki.md", "content/Wiki/en_qgis_layer_concept_wiki.md", "content/Wiki/en_qgis_non_spatial_joins_wiki.md", "content/Wiki/en_qgis_non_spatial_queries_wiki.md", "content/Wiki/en_qgis_plugins_wiki.md", "content/Wiki/en_qgis_projections_wiki.md", "content/Wiki/en_qgis_projects_folder_structure_wiki.md", "content/Wiki/en_qgis_qgis_basics_wiki.md", "content/Wiki/en_qgis_queries_wiki.md", "content/Wiki/en_qgis_single_symbol_wiki.md", "content/Wiki/en_qgis_spatial_joins_wiki.md", "content/Wiki/en_qgis_spatial_queries_wiki.md", "content/Wiki/en_qgis_table_functions_wiki.md", "content/intro.md"], "titles": ["Repo for the \ud83d\udcda GIS Training Resource Center [TRC]", "About :)", "Glossary", "Data analysis theorie", "QGIS Installation", "Getting started with QGIS", "What is GIS? (Theory)", "Data Sources", "Geodata and Geodata processing", "Basic Geodata processing Exercise 1", "Data Sources Exercise 1", "Geodata concept", "Geodata Concept Exercise 1", "Geodata Classification Exercise 1", "Geodata Classification", "Geodata Selection and Queries", "Selection and Queries Exercise 1", "Digitalisation", "<no title>", "Print layout", "Graphical Variables and Symbology", "Map design Exercise 1", "Map design Exercise 1", "Non-Spatial Geodataprocessing", "Spatial Geodataprocessing", "How to do trainings?", "Basic QGIS Training: Full training", "Attribute Table in QGIS", "Basemaps", "Catagorized", "Data Classification", "Data sources", "Didgitalization", "Types of Geodata", "Geodata", "Geoprocessing", "Graduated", "Geodata Import in QGIS", "QGIS installation", "QGIS Interface", "Joins", "Layer Concept", "Non-Spatial Joins", "Non-Spatial Queries", "Plugins", "Projections", "Projects and Folder Structure", "QGIS Basics", "Spatial and Non-spatial queries", "Single Symbol", "Spatial Joins", "Spatial Queries", "Table function", "Welcome to the GIS Learning Hub for Humanitarian Empowerment"], "terms": {"warn": [0, 6], "construct": [0, 20], "under": [0, 4, 14, 17, 19, 20, 21, 38, 44, 45], "http": [0, 4, 6, 11, 20, 28, 38], "giscienc": 0, "github": 0, "io": 0, "content": [0, 14, 19], "intro": 0, "html": [0, 4, 6, 23, 38], "we": [0, 4, 11, 14, 15, 17, 19, 20, 21, 23, 38, 45, 46, 53], "us": [0, 4, 5, 11, 14, 15, 19, 20, 23, 24, 27, 28, 33, 37, 38, 39, 44, 45, 46], "markdown": [0, 53], "document": [0, 19, 39, 46, 53], "rich": [0, 53], "media": [0, 53], "host": 0, "elsewher": [0, 19], "serv": [0, 1, 53], "comprehens": [0, 6, 19, 20, 53], "guid": [0, 19, 53], "tutori": [0, 4, 44, 53], "refer": [0, 11, 19, 23, 33, 37, 45, 46, 53], "materi": [0, 1, 53], "The": [0, 1, 4, 5, 6, 8, 11, 15, 17, 20, 21, 23, 27, 28, 33, 37, 39, 41, 45, 46], "file": [0, 5, 6, 8, 15, 17, 21, 23, 24, 33, 39, 41, 45, 46, 53], "ar": [0, 1, 4, 5, 8, 11, 14, 15, 17, 19, 20, 21, 23, 24, 28, 38, 39, 41, 44, 45, 53], "built": 0, "static": 0, "webpag": 0, "via": [0, 4, 6, 14, 15, 20, 23], "jupyt": 0, "book": 0, "clone": 0, "git": [0, 46], "com": [0, 4, 6, 28], "set": [0, 14, 17, 19, 20, 28, 39, 41], "up": [0, 5, 8, 14, 15, 20, 23, 41, 44], "python": 0, "environ": [0, 19, 23], "e": [0, 5, 11, 14, 17, 19, 20, 21, 23, 27, 28, 39], "g": [0, 5, 14, 17, 19, 20, 23, 28, 39], "python3": 0, "m": [0, 6, 19, 28], "venv": 0, "activ": [0, 4, 17, 24, 28, 44], "sourc": [0, 4, 5, 6, 8, 11, 14, 17, 20, 23, 27, 38, 47], "bin": 0, "instal": [0, 28, 47], "depend": [0, 4, 8, 11, 14, 15, 20, 23, 38], "pip": 0, "r": [0, 27, 28], "requir": [0, 19], "txt": 0, "do": [0, 5, 6, 17, 19, 23, 45, 46], "your": [0, 4, 5, 6, 8, 11, 14, 15, 17, 19, 20, 21, 23, 28, 37, 38, 39, 41, 44, 46, 53], "chang": [0, 5, 11, 14, 15, 17, 19, 20, 46], "build": [0, 11, 17, 20, 21, 23], "local": [0, 6, 11, 19, 20], "verifi": 0, "_build": 0, "server": 0, "8080": 0, "push": 0, "main": [0, 6, 19, 20], "render": [0, 14], "branch": 0, "gh": 0, "page": [0, 4, 5, 11, 19], "command": [0, 5, 15, 39], "ghp": 0, "import": [0, 11, 17, 19, 20, 23, 34, 41, 45], "n": 0, "p": [0, 20, 23, 27], "f": [0, 11, 27], "thi": [0, 1, 5, 11, 14, 15, 17, 19, 20, 21, 23, 24, 27, 28, 39, 41, 45, 46, 53], "automat": [0, 14, 15, 19], "delet": [0, 27], "recreat": 0, "avoid": [0, 19, 44], "bloat": 0, "histori": 0, "consid": [0, 20, 23], "futur": [0, 11], "qgi": [1, 6, 8, 14, 15, 19, 20, 21, 23, 44, 53], "train": 1, "made": [1, 6, 11, 17], "peopl": [1, 23], "who": [1, 21], "believ": [1, 6], "gi": [1, 4, 5, 14, 15, 17, 19, 20, 23, 27, 39, 41], "can": [1, 4, 5, 6, 8, 11, 14, 15, 17, 19, 20, 21, 23, 28, 33, 38, 39, 41, 44, 45, 46, 53], "help": [1, 6, 14, 19, 20], "humanitarian": 1, "need": [1, 8, 11, 17, 19, 20, 21, 23, 28, 37, 44], "better": [1, 6, 14], "idea": [1, 15, 19], "platform": 1, "origin": 1, "from": [1, 4, 11, 14, 15, 17, 19, 20, 21, 23, 24, 27, 37, 38, 53], "group": [1, 6, 14, 17, 19], "german": 1, "red": [1, 19, 20, 21], "cross": [1, 5, 15], "british": 1, "netherland": 1, "A": [1, 11, 15, 17, 19, 20, 23, 27, 37, 44], "dedic": [1, 19], "student": 1, "assist": [1, 23], "employe": 1, "heidelberg": 1, "institut": 1, "geoinform": [1, 5, 41], "technolog": [1, 20], "heigit": 1, "work": [1, 6, 11, 14, 23, 37, 44], "put": [1, 14, 21], "togeth": [1, 14, 15, 53], "compet": [3, 8, 11, 24], "gener": [3, 4, 5, 17, 20, 21, 23, 38, 39], "understand": [3, 15, 41, 53], "spatial": [3, 5, 11, 17, 33, 40, 41, 45, 53], "inform": [5, 11, 14, 17, 19, 20, 23, 27, 33, 39, 41, 45, 46, 53], "paper": [], "map": [11, 14, 15, 17, 24, 27, 28, 41, 45, 53], "cartographi": 20, "etc": [5, 15, 17, 19, 20, 23, 39], "exampl": [5, 11, 14, 15, 17, 19, 20, 21, 23, 33, 39], "creat": [5, 6, 14, 15, 19, 20, 23, 37, 39, 41, 46, 53], "web": 28, "geo": 4, "mobil": [], "app": [], "overview": [11, 14, 33, 41], "hhdosdm": [], "ist": [], "open": [4, 6, 15, 17, 19, 20, 21, 27, 28, 38, 44, 45], "und": 11, "daher": [], "frei": [], "ohn": [], "kosten": [], "f\u00fcr": [], "jeden": [], "verf\u00fcgbar": [], "ihr": [], "k\u00f6nnt": [], "rechner": [], "installieren": 4, "die": [], "unter": [], "verwenden": [], "wir": [], "den": [], "osgeo4w": [4, 38], "netzwerkinstal": [], "ein": [], "projekt": [], "da": [], "bezogen": [], "softwar": [4, 5, 6, 17, 19, 20, 53], "einfach": [], "zu": [], "anbietet": [], "besucht": [], "projektseit": [], "trac": 4, "osgeo": 4, "org": [4, 6, 11, 20, 28, 38], "klickt": [], "dort": [], "auf": [], "link": [4, 8, 11, 19, 23], "download": [4, 21, 38, 46], "network": [4, 20], "achtet": [], "darauf": [], "w\u00e4hrend": [], "de": 6, "installationsprozess": [], "advanc": [4, 6, 17, 19, 53], "fortgeschritten": 4, "w\u00e4hlen": [], "nur": [], "dann": [], "k\u00f6nnen": [], "diesen": [], "kur": [], "relevant": [], "pr\u00e4zise": [], "desktop": [4, 5, 6], "grass": 4, "saga": 4, "videotutori": [], "www": [4, 6, 38], "youtub": 4, "watch": [4, 11], "v": [4, 27], "pja_ex0tvza": 4, "gew\u00e4hlt": [], "wird": [], "\u00fcber": [], "internet": 4, "heruntergeladen": [], "fly": 4, "installiert": [], "ab": [], "version": [4, 19, 23, 37, 38, 39, 44], "3": [4, 14, 15, 17, 20, 21, 23, 37, 38, 39], "30": [4, 20], "muss": [], "per": [6, 15, 23], "plugin": [4, 47], "eingebunden": [], "werden": [], "en": [4, 6, 11, 38], "site": [4, 38], "forus": [4, 38], "maco": 4, "nutzen": [], "In": [4, 5, 6, 11, 14, 15, 17, 19, 20, 21, 23, 28, 38, 39, 44, 45, 46], "process": [4, 6, 14, 15, 17, 20, 21, 37, 53], "nextgen": 4, "provid": [4, 6, 11, 15, 17, 19, 20, 28, 44, 53], "mehr": [], "wie": [], "man": 6, "aktiviert": [], "findet": [], "hier": [], "interfac": [4, 11, 19, 47], "erweiterungen": 4, "systemen": [], "mit": [], "apt": 4, "sudo": 4, "herk\u00f6mmlichen": [], "paketquellen": [], "vermutlich": [], "\u00e4ltere": [], "von": [], "sein": [], "solltet": [], "paketquel": [], "ubuntugi": 4, "beachtet": [], "folgenden": [], "hinweis": [], "alldownload": 4, "repositori": [4, 53], "hier\u00fcber": [], "m\u00fcsst": [], "noch": [], "concept": [23, 34, 53], "descript": [11, 27, 33], "hallo": [], "2": [5, 14, 15, 17, 21], "analysen": [], "im": [], "tutorium": [], "vielzahl": [], "unterschiedlich": [], "datens\u00e4tz": [], "au": [], "verschiedenen": [], "quellen": [], "auch": [], "eur": [], "abschlussaufgab": [], "werdet": [], "geodaten": [], "unterschiedlichen": [], "websit": 11, "beh\u00f6rden": [], "data": [5, 6, 15, 19, 23, 27, 41, 44, 46, 47, 53], "portalen": [], "beziehen": [], "unvollst\u00e4ndig": [], "list": [5, 8, 17, 20, 21, 23, 27, 39], "wo": [], "herunterladen": [], "name": [11, 15, 17, 19, 20, 28, 33, 45, 46], "welch": [], "u": [], "bundesamt": [], "kartographi": [], "geod\u00e4si": [], "z": [6, 28], "b": 20, "verwaltungsgebiet": [], "usg": [], "earth": [6, 11, 33], "explor": [6, 53], "landsat": [], "sentinel": [], "srtm": 28, "aster": [], "land": [11, 20, 23], "cover": [11, 15, 20, 21], "exchang": [6, 11, 33], "infrastruktur": [], "bev\u00f6lkerung": [], "wirtschaft": [], "free": 5, "sammlung": [], "sehr": [], "vielen": [], "themenbereichen": [], "pangaea": [], "freie": [], "daten": [], "umweltwissenschaftlichen": [], "themen": [], "h\u00f6hendaten": [], "90m": [], "aufl\u00f6sung": [], "openaerialmap": [], "luft": [], "sattelitenbild": [], "weltweit": [], "hd": 20, "46m": [], "copernicu": [], "monitor": [], "servic": [6, 28], "der": [], "eu": [], "hoch": [], "aufgel\u00f6st": [], "europaweit": [], "rasterdaten": [], "besiedelung": [], "w\u00e4ldern": [], "uvm": [], "digital": [], "gdz": [], "bkg": [], "bund": [], "index": 6, "php": [], "default": [19, 20, 21, 45], "eurostat": [], "geographisch": [], "ec": [], "gisco": [], "geodata": [5, 20, 39, 46], "opendatalab": [], "project": [4, 6, 15, 19, 21, 24, 34, 39, 47], "geojson": [11, 33], "util": [], "administr": [19, 21], "unit": [19, 45], "statist": [6, 20], "nut": [], "geoboundari": [], "top": [5, 15, 17, 27, 41], "naturalearthdata": [], "osm": 6, "qa": [], "tile": 28, "mapbox": [], "vector": [5, 14, 15, 17, 21, 23, 39], "osmlab": [], "geofabrik": [], "extract": [15, 53], "wiki": [5, 11, 28, 39, 46], "allgemein": [], "main_pag": [], "tag": [6, 33], "bundesanstalt": [], "geowissenschaften": [], "rohstoff": [], "bgr": [], "geoview": [], "gemeinsam": [], "geoviewer_nod": [], "produkt": [], "center": [6, 20], "produktcent": [], "terracatalog": [], "start": [8, 21, 23, 45, 53], "wetter": [], "dwd": [], "cdc": [], "portal": [], "wopr": [], "worldpop": [], "bound": 24, "box": [17, 24], "envelop": [], "extent": [19, 41], "finder": [], "bboxfind": [], "0": [19, 21], "000000": [], "dieser": [], "seit": [], "dies": [], "wichtigsten": [], "behandelt": [], "um": [], "einen": [], "allgemeinen": [], "\u00fcberblick": [], "teilnehmenden": [], "schaffen": [], "dabei": [], "folgend": [], "angesprochen": [], "verschieden": [], "tool": [5, 11, 14, 15, 17, 19, 23, 37, 39, 45], "sind": [], "nicht": [], "verarbeitung": [], "geeignet": [], "umgekehrt": [], "mehreren": [], "dateien": [], "aufgeteilt": [], "gespeichert": [], "tr\u00e4gt": [], "jede": [], "teil": [], "datei": [], "ganz": [], "bestimmt": [], "informationen": [], "darstellung": [], "gesehen": [], "kann": [], "endung": [], "shp": [11, 33, 37], "zum": [], "beispiel": [], "haupts\u00e4chlich": [], "beinhalten": [], "geometrien": [], "dbf": [11, 33], "attributtabel": [], "enthalten": [], "immer": [], "geometrietyp": [], "hei\u00dft": [], "sie": [], "entwed": [], "ausschlie\u00dflich": [], "punkt": [], "linien": [], "oder": [], "polygon": [6, 11, 21, 24], "featur": [5, 6, 11, 14, 19, 20, 21, 23, 27, 41], "niemal": [], "mischung": [], "drei": [], "textuellen": [], "austauschformaten": [], "vorhanden": [], "offen": [], "standardaustauschformat": [], "r\u00e4umlich": [], "basiert": [], "json": [], "javascript": [], "object": [11, 14, 20, 41], "notat": [], "diesem": [], "format": [6, 8, 15, 17, 19, 20, 27, 33, 41], "dargestellt": [], "sich": [], "koordinatenbezugssystem": [], "world": [6, 11, 19, 20, 28, 45, 53], "geodet": 45, "system": [4, 5, 6, 11, 19, 20, 27, 37, 38, 41, 45, 46, 53], "1984": [], "zur": [], "veranschaulichung": [], "finden": [], "g\u00fcltige": [], "quell": [], "arcgi": [], "onlin": [6, 28], "o": [], "j": 27, "doc": 6, "htm": [], "abgerufen": [], "am": [], "19": [], "10": [15, 19, 20, 23], "2020": [], "weiter": [], "verwendung": [], "zudem": [], "adress": [11, 20], "leicht": [], "selbst": [], "erstellt": [], "georeferenziert": [], "bilddateien": [], "satellitenbild": [], "graphic": [6, 17, 19, 53], "t": [5, 11, 15, 20, 21, 28, 39], "ag": [], "i": [14, 15, 21, 27], "mage": [], "il": [], "ormat": [], "heut": [], "nahezu": [], "standardm\u00e4\u00dfig": [], "al": [], "speicherformat": [], "verwendet": [], "bilddatei": [], "eingebettet": [], "metadaten": [], "georeferenz": [], "bild": [], "etwa": [], "koordinaten": [], "georeferenzierung": [], "folgendem": [], "ogc": [], "geospati": [6, 23], "consortium": [], "opengeospati": [], "008r4": [], "_geotiff": [], "standardisiert": [], "durch": [], "speicherung": [], "vektor": [], "meisten": [], "unterst\u00fctzt": [], "ide": [], "dateibasiert": [], "datenbank": [], "sqlite": [], "welcher": [], "weis": [], "all": [5, 6, 11, 14, 15, 19, 20, 21, 23, 27, 28, 33, 39, 44, 45, 46, 53], "strukturiert": [], "abgefragt": [], "problem": [5, 28, 44, 46], "beim": [], "arbeiten": [], "es": [], "zuweilen": [], "dem": [], "dateiformat": [], "spezifischen": [], "problemen": [], "kommen": [], "so": [5, 6, 14, 17, 19, 20, 21, 45], "clip": 35, "anderen": [], "wekrzeugen": [], "besond": [], "wenn": [], "\u00e4nderungen": [], "vorgenommen": [], "fehlermeldungen": [], "hervorrufen": [], "l\u00f6sen": [], "l\u00e4sst": [], "speichern": [], "also": [5, 14, 15, 17, 19, 20, 21, 23, 24, 39, 44], "exportieren": [], "ausgew\u00e4hlt": [], "vorteil": [], "liegt": [], "vergleich": [], "darin": [], "dass": [], "einer": [], "besteht": [], "kein": [], "teildatei": [], "verloren": [], "gehen": [], "sollt": [], "dagegen": [], "besser": [], "gearbeitet": [], "fehlerquellen": [], "minimieren": [], "leer": [], "weiterverarbeiten": [], "empti": 5, "gpkg": [11, 33], "w": [6, 27], "eb": [], "ap": [], "s": [5, 6, 11, 14, 15, 17, 20, 21, 23, 28, 41], "ervic": [], "erlauben": [], "euch": [], "eurem": [], "verkn\u00fcpfen": [], "abzurufen": [], "ergebni": [], "kartenbild": [], "angezeigt": [], "prinzip": [], "beispielsweis": [], "basemap": [6, 34, 47], "angewendet": [], "zugeh\u00f6rigen": [], "wikibeitrag": [], "dar\u00fcber": [], "hereinladen": [], "lassen": [], "funktionen": [], "genutzt": [], "further": [6, 11, 44], "resourc": 53, "standard": [11, 33], "layer": [5, 6, 14, 15, 19, 23, 27, 28, 34, 39, 46], "raster": [5, 17, 39], "kartographisch": [], "layern": [], "weit": [], "komplex": [], "themenfeld": [], "betrachten": [], "einig": [], "grundlegend": [], "hinwei": [], "get\u00e4tigten": [], "ver\u00e4nderungen": [], "bei": [], "lokal": [], "eurer": [], "projektdatei": [], "direkt": [], "au\u00dferhalb": [], "ge\u00f6ffnet": [], "abgab": [], "moodl": [], "hochgeladen": [], "habt": [], "darstellungseinstellungen": [], "jedoch": [], "getrennt": [], "abspeichern": [], "sieh": [], "abgaben": [], "empfehlen": [], "aber": [], "stattdessen": [], "screenshot": [14, 15, 17, 23], "dokument": [], "gleich": [], "art": [], "rechtsklick": [], "symbolog": [14, 41], "einstellung": [], "gibt": [], "bestehend": [], "style": [19, 41, 46], "kategori": [], "sollen": [], "angepasst": [], "\u00e4hnlich": [], "abschnitt": [], "entsprechend": [], "skala": [], "farbverlauf": [], "klassen": [], "eingeteilt": [], "nach": [], "bestimmten": [], "method": [11, 14, 17, 19, 24, 45], "equal": [15, 23], "interv": [14, 21], "count": 21, "klass": [], "export": [6, 15, 17, 19, 23], "save": [11, 17, 19, 21, 24, 27, 39, 44, 45, 46], "neue": [], "signatur": [], "folgt": [], "m\u00f6glicherweis": [], "namen": [], "feld": [], "attributen": [], "anpassen": [], "werten": [], "beschriftet": [], "label": [19, 21], "funktioniert": [], "manchmal": [], "semi": [], "optim": [14, 19, 45], "geht": [], "daf\u00fcr": [], "schnell": [], "startet": [], "automatischen": [], "passt": [], "posit": [17, 19, 20, 53], "an": [4, 5, 11, 14, 15, 20, 21, 23, 27, 39, 41, 44, 45, 53], "erm\u00f6glicht": [], "platziert": [], "nimmt": [], "oft": [], "viel": [], "zeit": [], "anspruch": [], "nutzung": [], "toolbar": [19, 28, 44], "doku": [], "select": [4, 5, 11, 14, 19, 20, 21, 27, 28, 37, 39, 45, 46], "locat": [5, 6, 11, 14, 17, 19, 20, 21, 39, 41, 45, 46], "non": [33, 40], "basic": [6, 11, 14, 19, 20], "attribut": [11, 14, 15, 20, 21, 23, 34], "edit": [5, 6, 20, 27], "digit": [6, 34], "creation": 46, "tabl": [11, 15, 21, 28, 33, 34, 37], "function": [4, 15, 19, 27, 28, 38, 44, 46], "queri": 6, "ii": [], "join": 24, "buffer": [20, 24, 35], "dissolv": [24, 35], "mask": [], "singl": [11, 14, 17, 20, 23, 30, 33], "symbol": [11, 14, 17, 20, 21, 30], "categor": [6, 21, 30], "graduat": [21, 30], "practic": [6, 23, 28, 34, 46, 47, 53], "therefor": [4, 38, 44], "freeli": [4, 38], "avail": [4, 5, 15, 38], "everyon": [4, 5, 38], "cost": [4, 38], "you": [4, 5, 6, 8, 11, 14, 15, 17, 19, 20, 21, 23, 28, 37, 38, 39, 44, 45, 46, 53], "window": [5, 17, 19, 21, 37, 38, 44, 45], "mac": 38, "linux": 38, "comput": [4, 5, 17, 38, 46], "cours": 38, "22": [37, 38, 39], "15": [37, 38, 39], "bia\u0142owie\u017ca": 38, "ltr": 38, "recommend": [4, 38, 53], "latest": [4, 38], "long": [4, 38], "term": [4, 14, 15, 38], "releas": [4, 38], "becaus": [4, 14, 15, 17, 19, 21, 38, 45], "most": [4, 6, 14, 17, 19, 20, 21, 23, 24, 38, 41, 45, 53], "stabl": [4, 38, 46], "contain": [4, 5, 6, 11, 15, 17, 20, 21, 23, 33, 37, 38, 39, 46], "fewest": [4, 38], "bug": [4, 38], "here": [4, 5, 8, 11, 15, 19, 20, 38, 39, 45, 46], "For": [4, 5, 11, 14, 15, 20, 21, 23, 33, 38, 39, 46], "our": [4, 14, 19, 20, 21, 23, 38, 53], "introduct": [4, 38], "standalon": [4, 38, 53], "packag": [4, 38], "suffici": [4, 38], "32": [23, 38], "bit": [17, 23, 38], "64": [23, 38], "oper": [4, 6, 20, 23, 24, 38], "alwai": [4, 5, 11, 19, 20, 28, 33, 37, 38, 39, 45, 46], "each": [4, 5, 6, 11, 14, 19, 20, 21, 23, 27, 38, 41, 53], "which": [4, 5, 6, 8, 11, 14, 15, 17, 19, 20, 21, 23, 24, 33, 37, 38, 39, 44, 46], "If": [4, 5, 14, 17, 20, 21, 23, 28, 33, 37, 38, 39, 44, 46, 53], "clear": [4, 14, 20, 38], "how": [4, 15, 17, 20, 21, 23, 38], "mani": [4, 5, 6, 14, 17, 19, 21, 23, 27, 38, 39], "ha": [4, 5, 6, 11, 14, 15, 17, 19, 20, 24, 33, 38, 39, 41, 46], "easili": [4, 5, 6, 17, 19, 20, 23, 38, 39], "find": [4, 5, 6, 8, 11, 14, 15, 28, 38, 39, 44, 45], "out": [4, 5, 6, 15, 19, 20, 38, 39, 46], "left": [4, 5, 11, 14, 17, 19, 20, 23, 38], "click": [4, 5, 8, 11, 14, 17, 19, 20, 21, 23, 24, 28, 37, 38, 41, 45, 46], "icon": [4, 14, 15, 17, 27, 38], "bottom": [4, 11, 14, 15, 19, 20, 21, 38], "screen": [4, 19, 38], "altern": [4, 17, 28, 38, 44], "search": [4, 5, 11, 15, 17, 27, 37, 38, 39, 44], "type": [4, 11, 14, 17, 19, 21, 23, 38], "keyboard": [4, 38], "entri": [4, 17, 38], "result": [4, 6, 11, 23, 38], "item": [4, 19, 24, 38], "read": [4, 5, 14, 19, 20, 38, 39], "number": [4, 6, 14, 15, 17, 19, 20, 21, 23, 38, 41, 45], "empow": 53, "through": [6, 15, 21, 23, 53], "geograph": [6, 11, 15, 17, 19, 20, 27, 53], "gatewai": 53, "wealth": 53, "knowledg": [6, 11, 20, 53], "exercis": [5, 11, 20, 53], "enabl": [6, 20, 27, 53], "har": 53, "power": [6, 53], "renown": 53, "whether": 53, "re": 53, "aspir": 53, "enthusiast": 53, "season": 53, "worker": 53, "simpli": [14, 19, 53], "curiou": 53, "about": [4, 5, 6, 11, 19, 27, 39, 45, 53], "design": [17, 19, 20, 23, 53], "immers": 53, "hand": [11, 53], "experi": [5, 53], "dive": 53, "curat": 53, "collect": [6, 11, 53], "These": [6, 11, 21, 53], "meticul": 53, "craft": 53, "cater": 53, "learner": 53, "level": [6, 11, 19, 21, 53], "expertis": 53, "beginn": 53, "user": [5, 6, 14, 20, 23, 53], "yourself": 53, "includ": [6, 15, 17, 19, 20, 23, 53], "interact": [5, 6, 14, 28, 53], "visual": [5, 6, 8, 14, 15, 19, 41, 53], "multimedia": 53, "present": [6, 14, 19, 27, 46, 53], "embed": 53, "enhanc": 53, "make": [4, 5, 6, 14, 15, 17, 19, 20, 21, 23, 39, 44, 45, 53], "dynam": 53, "engag": 53, "To": [11, 14, 15, 17, 19, 20, 23, 28, 37, 41, 44, 45, 53], "get": [11, 15, 28, 53], "navig": [6, 19, 20, 21, 53], "directori": 53, "access": [6, 17, 19, 21, 23, 28, 53], "piqu": 53, "interest": 53, "modul": [5, 23, 53], "focus": 53, "specif": [6, 20, 21, 23, 27, 44, 53], "techniqu": [6, 23, 53], "applic": [5, 14, 17, 28, 45, 53], "tip": [11, 33, 53], "new": [5, 6, 11, 15, 23, 27, 28, 33, 45, 53], "begin": 53, "foundat": 53, "gradual": 53, "progress": [23, 44, 53], "more": [4, 6, 11, 14, 15, 17, 19, 20, 21, 23, 28, 44, 45, 46, 53], "topic": 53, "primari": [14, 19, 53], "aim": 53, "skill": 53, "tailor": 53, "purpos": [27, 53], "By": [5, 8, 11, 19, 20, 21, 46, 53], "end": [6, 15, 37, 53], "journei": 53, "abl": [11, 19, 21, 53], "fundament": [20, 53], "principl": 53, "confid": 53, "effici": [17, 53], "analyz": [5, 6, 15, 17, 23, 53], "meaning": 53, "insight": [15, 20, 23, 53], "compel": 53, "contribut": [28, 53], "effort": 53, "appli": [6, 11, 14, 15, 20, 21, 45, 53], "real": [11, 19, 20, 23, 53], "scenario": 53, "enjoy": 53, "when": [5, 14, 17, 19, 20, 21, 23, 28, 37, 44, 45, 46, 53], "share": [6, 21, 23, 46, 53], "vibrant": 53, "expert": 53, "particip": [21, 53], "discuss": [6, 53], "ask": 53, "question": [6, 23, 53], "leverag": 53, "impact": [19, 53], "caus": [44, 53], "around": [15, 20, 28, 53], "let": [6, 20, 21, 53], "embark": 53, "connect": [6, 17, 28, 53], "happi": 53, "note": [4, 15, 53], "replac": 53, "link_to_imag": 53, "link_to_commun": 53, "other": [5, 6, 14, 15, 17, 19, 21, 23, 24, 33, 37, 39, 44, 53], "placehold": 53, "actual": [4, 53], "url": [28, 53], "sphere": 11, "cannot": [6, 11, 19, 44], "repres": [6, 11, 17, 19, 20, 27, 41], "flat": 11, "without": [11, 19, 23, 28, 46], "being": [6, 11, 14, 17], "distort": 11, "translat": [11, 20], "curv": 11, "surfac": [11, 19], "thousand": 11, "differ": [6, 8, 11, 14, 15, 17, 19, 23, 24, 33, 46], "exist": [11, 14, 23], "call": [5, 11, 14, 15, 44], "coordin": [5, 11, 17, 24, 33, 37, 39, 45, 46], "cr": [11, 17, 24, 46], "should": [11, 14, 17, 19, 20, 23, 24, 44, 45], "case": [11, 14, 15, 20, 21, 23], "mercat": 11, "don": [5, 11, 15, 21, 39], "area": [6, 11, 15, 19, 21, 23, 24, 45], "correctli": 11, "show": [6, 11, 14, 15, 17, 19, 20, 21, 27], "characterist": [11, 14, 15], "cylindr": 11, "lambert": 11, "alber": 11, "conic": 11, "x": [11, 20, 27, 28, 37], "shape": [6, 11, 15, 19, 20], "rotat": [5, 11, 39], "smaller": 11, "sinc": [11, 14, 19, 28, 41], "thei": [6, 11, 14, 17, 19, 20, 21, 23, 28, 44], "give": [11, 17, 19, 33], "accur": 11, "displai": [6, 11, 15, 17, 19, 20, 21, 23, 41], "expens": 11, "global": 11, "manag": [8, 11, 17, 19, 23, 45, 46], "reproject": [11, 28, 45], "input": [11, 15, 17, 37], "target": [11, 24, 45], "three": [8, 11, 15, 20, 23, 33, 45], "dot": [5, 8, 11, 45], "run": [11, 15, 37, 45, 46], "detail": [5, 6, 11, 19, 27], "instruct": 11, "video": [4, 5, 11, 14, 15, 17, 33, 39], "clickclick": 11, "warp": [11, 45], "choos": [8, 11, 14, 15, 17, 19, 20, 21], "rectangl": [11, 17, 19, 24], "explan": [11, 19], "everi": [5, 11, 39, 41, 45], "come": [6, 11], "trade": 11, "off": [11, 21], "direct": 11, "distanc": [11, 17, 19], "That": [5, 11], "why": 11, "googl": [6, 11, 33, 44], "still": [11, 19, 33, 44], "street": [6, 11, 20], "well": [5, 6, 11, 15, 19, 20, 41, 46], "small": [6, 11, 14, 23, 45], "scale": [5, 11, 14, 39], "On": [11, 20, 21], "big": [11, 19], "countri": [11, 15, 19, 20, 21, 23], "stai": [11, 19], "same": [11, 14, 15, 17, 19, 21, 45], "mispres": 11, "check": [5, 11, 15, 17, 19, 20, 21, 23, 28, 44, 46], "true": 11, "size": [11, 14, 19, 20, 21], "comparison": [11, 23], "placement": 11, "popular": 11, "greenland": 11, "africa": [6, 11], "seem": [11, 19], "realiti": 11, "lot": [11, 23], "bigger": 11, "It": [6, 11, 14, 15, 17, 19, 20, 23, 24, 46], "right": [8, 11, 14, 15, 17, 19, 20, 28, 41, 44, 45], "produc": [6, 11, 19], "wrong": 11, "code": [5, 11, 23, 46], "crucial": [11, 15, 20], "awar": [6, 11], "els": 11, "follow": [4, 11, 15, 17, 19, 21, 24, 33], "step": [11, 15, 19, 20], "explain": [5, 11, 21], "abov": [11, 14, 17], "corner": [5, 11, 19, 45], "seen": [6, 11, 15, 17], "epsg": [11, 46], "now": [6, 11, 14, 15, 17, 21], "turn": [11, 21], "1": [11, 14, 15, 17, 20, 28], "heicloud": 11, "often": [6, 11, 14, 17, 19, 23, 28, 44], "mistak": [11, 20, 23], "solut": [5, 11, 14], "geoinformat": 6, "focu": 6, "visualis": [6, 11, 20, 41], "organis": [5, 6, 46], "furthermor": 6, "allow": [5, 6, 14, 15, 17, 20, 23, 27, 28], "reveal": 6, "circumst": 6, "between": [6, 14, 15, 17, 20, 21, 23], "within": [6, 14, 15, 19, 20, 21, 23], "regard": 6, "obtain": [6, 11], "benefit": 6, "could": [6, 21, 23], "mai": [5, 6, 14, 39, 44], "have": [4, 5, 6, 11, 14, 15, 17, 19, 20, 21, 23, 28, 33, 37, 39, 44], "where": [5, 6, 8, 14, 15, 17, 19, 20, 21, 23, 39, 45, 46], "see": [5, 6, 11, 14, 15, 17, 19, 20, 21, 39, 44], "potenti": 6, "complex": [], "clearli": [], "emerg": 14, "context": 17, "happen": [], "affect": [6, 19, 21], "summar": 19, "quickli": [5, 14, 39], "decis": [6, 15, 17], "assign": [14, 21], "them": [6, 15, 19, 20], "deeper": [], "demonstr": 15, "pattern": 23, "improv": 17, "commun": [5, 6, 21], "ultim": 23, "evid": [], "base": [6, 11, 14, 15, 20, 23, 28, 41], "root": [], "geographi": [], "scienc": 20, "devot": [], "studi": [6, 19], "inhabit": 23, "phenomena": 20, "multipl": [6, 11, 17, 20, 23, 27, 33], "hardwar": [], "workflow": [], "refuge": 6, "idp": 6, "plan": 6, "remot": 6, "facilit": [6, 15, 19, 27], "keep": [6, 19, 20], "track": [6, 11, 33], "support": [6, 28, 44, 46], "secur": [6, 21], "identifi": [5, 6, 20, 23, 39], "disast": 6, "few": [5, 6, 19, 20], "reach": 6, "initi": 6, "food": [6, 14, 21], "programm": [5, 6, 39], "wfp": 6, "m\u00e9decin": 6, "san": 6, "fronti\u00e8r": 6, "msf": 6, "immap": 6, "mapact": 6, "entiti": [6, 17, 19, 20], "event": 6, "topolog": 6, "geometr": [6, 15, 23], "properti": [6, 14, 15, 19, 20, 45], "varieti": [6, 23], "ad": [6, 21, 23], "critic": [6, 14], "answer": 6, "those": [6, 11, 14, 15], "1854": 6, "outbreak": 6, "occur": 6, "london": 6, "england": 6, "common": [6, 14, 17, 20, 23, 33], "wa": [5, 6, 46], "diseas": [6, 20], "spread": 6, "air": 6, "dr": 6, "danger": 6, "water": [6, 20], "he": [6, 19], "death": 6, "soho": 6, "hous": 6, "block": [6, 20], "pump": [6, 14, 15], "found": [4, 6, 19], "correl": 6, "one": [6, 11, 15, 17, 19, 20, 21, 23, 33, 41, 45], "infect": 6, "modern": 6, "extens": [6, 11, 33], "tradit": 6, "both": [6, 14], "addit": [6, 23, 28, 41, 44], "limit": 6, "amount": 6, "cartograph": [6, 14, 20], "extrem": 6, "simplifi": 6, "physic": [6, 20], "meaningfulli": 6, "store": [6, 11, 17, 27, 33, 46], "particular": 6, "argument": 6, "natur": [6, 20], "usual": [6, 17, 44], "meant": 6, "discoveri": 6, "fairli": [6, 14], "simpl": [6, 21, 33], "styliz": 6, "intend": [6, 14, 20], "audienc": 6, "iraq": 6, "relev": [6, 20], "structur": [5, 6, 14], "high": [6, 19], "after": [6, 15, 28, 45], "nigeria": [6, 15, 21], "theme": 6, "subject": [6, 19], "colour": [6, 19, 21], "quantit": [6, 19], "qualit": 6, "rise": 6, "respect": 6, "maker": [6, 17], "greater": [6, 15, 23], "yemen": 6, "ongo": 6, "narr": 6, "element": [6, 20, 21], "report": 6, "rais": 6, "tilkaif": 6, "mosul": 6, "major": 19, "relat": [4, 15, 19, 27], "own": [5, 21], "uniqu": [15, 20, 21, 23], "capabl": [6, 20], "behind": 21, "spreadsheet": 33, "look": [8, 19, 20, 21, 23, 44], "pdf": [17, 19], "6": [14, 15], "burundi": [], "bangladesh": [], "fatal": [], "mosquito": [], "born": [], "kill": [], "over": [5, 6, 14], "620": [], "000": 23, "control": [15, 19], "insecticid": [], "treat": [], "net": [6, 28], "involv": [17, 23], "insid": [], "onc": [14, 19, 23], "twice": 19, "year": [], "howev": [14, 19, 20, 21], "order": [14, 17, 19, 20, 21], "signific": [], "protect": [], "coverag": [], "least": [11, 33], "85": [], "home": [], "mega": [], "2018": [], "aid": 17, "team": [], "move": [17, 19, 27, 28], "huge": [], "lost": 14, "popul": [20, 21, 23], "estim": [], "distribut": [6, 14, 20], "tent": [], "risk": [19, 20], "assess": [], "45": [], "53": [], "some": [17, 19, 28], "below": [14, 15, 17, 19, 20, 21, 28, 33, 44], "illustr": 6, "product": 6, "indentii": [], "kei": [5, 15, 23, 39], "deliver": [], "associ": [15, 19, 20, 23], "exhaust": 20, "vision": 20, "possibl": [6, 8, 14, 17, 19, 20, 21, 23, 28, 45], "request": 14, "variou": [15, 20], "toolbox": [17, 37], "cartong": 11, "gitlab": 11, "learn": [11, 20], "2_mobilize_mapping_gi": [], "2_1_static_map": [], "2_2_dynamic_map": [], "2_3_field": [], "At": [4, 5, 6, 14, 21], "perform": [6, 11, 23], "task": [5, 6, 17, 44], "As": [6, 19, 20, 46], "profession": 6, "mostli": [6, 45], "either": [6, 20, 44], "proprietari": 6, "openstreetmap": [6, 19, 28], "14": 6, "49": 6, "4192": 6, "8": [6, 20], "7235": 6, "databas": [6, 17], "updat": [6, 19, 23, 27], "maintain": 6, "volunt": [5, 6], "collabor": 6, "umap": 6, "fr": 6, "felt": 6, "easi": [4, 5, 6, 17, 28], "draw": [6, 15, 17, 19, 24], "upload": [6, 14], "shapefil": [6, 11, 14, 15, 21, 33, 37], "wikimapia": 6, "lang": 6, "lat": 6, "402500": 6, "lon": 6, "633100": 6, "12": [6, 15], "contributor": 6, "particularli": 6, "d": 6, "qfield": [6, 28], "qfieldcloud": 6, "devic": 6, "ani": [6, 14, 15, 17, 19, 24, 28, 44, 45], "sync": 6, "osmand": 6, "good": [5, 6, 20, 46], "offlin": 6, "kml": [6, 11, 33], "record": [6, 17, 19, 21], "trip": 6, "geoodk": 6, "combin": [6, 21, 23], "odk": 6, "survei": [6, 17], "add": [6, 8, 14, 15, 17, 19, 20, 21, 27, 37], "webmap": 6, "mayb": [], "directli": [6, 19, 23, 37], "highlight": 15, "sure": [4, 5, 19, 39, 44, 45], "mark": [], "onli": [5, 11, 14, 15, 17, 20, 21, 23, 28, 33, 44, 46], "meet": [], "criteria": 23, "dakar": [], "region": [15, 19, 21], "healthsit": [], "predic": [], "second": [14, 15, 20, 23], "dakar_thi": [], "dropdown": [17, 28], "menu": [14, 15, 17, 21], "modifi": [19, 20], "current": [5, 17, 24, 27, 39, 44, 45], "conduct": [], "row": [23, 27], "OR": 23, "AND": 23, "remov": [19, 20, 23, 27], "NOT": [19, 23], "kind": [], "arithmet": 23, "health": 19, "facil": [], "seneg": [], "than": [15, 17, 19, 21, 23], "nurs": [], "staff": 17, "valu": [11, 14, 15, 19, 20, 21, 23, 33], "column": [20, 27, 37], "staff_nur": [], "again": [5, 15, 21, 44, 46], "string": 23, "like": [11, 17, 21, 23, 28, 33], "doctor": [], "amen": [], "unser": [], "logic": [19, 23], "similar": [11, 14, 15, 17, 33], "insert": [19, 27], "redund": [], "densiti": 23, "mode": [17, 27, 41], "button": [5, 17, 19, 20], "stop": [], "squar": [], "meter": [6, 19, 45], "first": [14, 17, 19, 20, 21, 23, 45], "divid": 21, "kilomet": [], "relationship": [15, 19, 20], "overlai": [], "specifi": [17, 19, 23, 45], "segment": [19, 23], "output": 24, "individu": [14, 19], "leav": 21, "blank": 19, "usag": [], "philippin": [], "taal": [], "volcano": [], "surg": [], "hazard": [], "phivolc": [], "dost": [], "gov": [], "ph": [], "vault": [], "1basesurge_layout": [], "jan2020_a0_v5": [], "jpg": 17, "nepal": [], "earthquak": [], "april": [], "2015": [14, 23], "reliefweb": [], "int": [], "reach_npl_map_earthquakeaffected_27apr2015_a3": [], "fukushima": [], "2011": [], "integr": [4, 17], "doce": [], "emsic": [], "five": [], "incid": 21, "consider": 14, "With": [11, 21, 23, 28], "text": [17, 20, 21, 23], "csv": 33, "xl": 33, "take": [14, 24], "match": [19, 23], "defin": [11, 14, 19, 23, 24], "destin": [], "temporari": [], "hint": [], "doe": [5, 19, 20, 33, 39, 44], "tab": [17, 20, 21, 45], "dataset": [6, 11, 17, 21, 23, 33, 37], "want": [5, 8, 14, 15, 17, 20, 21, 23, 37, 39, 45, 46], "enrich": 23, "constantli": [5, 6], "evolv": 6, "increas": [6, 19], "excel": [6, 33, 37], "bi": 6, "adob": 6, "latter": [6, 20], "tablet": 6, "accord": [6, 15, 19, 20], "vizualis": 6, "oppos": 6, "previou": [6, 15], "ones": [5, 6, 8, 14, 17, 19, 27, 39], "veri": [6, 11, 19, 23, 28, 33, 45], "carri": 6, "manipul": [6, 23], "wai": [5, 6, 14, 15, 19, 20, 23, 28, 39], "browser": [5, 6, 28, 39], "detali": [], "36": [], "41": [], "mean": [5, 6, 15, 19, 20, 21, 28], "program": [5, 33], "form": [5, 17, 27, 37], "fill": [5, 14, 20, 21], "back": [5, 15], "larg": [5, 14, 19], "technic": [5, 14], "issu": 5, "forum": 5, "blog": 5, "subreddit": 5, "gis_train": 5, "folder": [5, 15, 21], "subfold": 5, "brows": [5, 8, 17], "session1": 5, "qgzfile": 5, "just": [5, 14, 15, 20, 21, 23], "templat": [5, 19, 46], "earlier": [], "close": [14, 15], "pane": [], "scroll": [5, 15, 19, 20, 39], "xyz": 28, "drag": [19, 21, 24, 41], "satellit": [11, 28], "copi": [17, 27, 46], "past": [17, 27], "cn": [], "vt": 28, "lyr": 28, "189": [], "gl": [], "y": [28, 37], "broken": [], "ok": [14, 15, 17, 19, 20, 21, 37], "newli": [], "repeat": [20, 21], "terrain": [20, 28], "load": [5, 15, 24, 28, 37, 39, 45], "point": [5, 11, 14, 15, 19, 21, 37, 39], "line": [5, 11, 19, 21], "clean": 23, "befor": [8, 19, 23], "sharepoint": 21, "acled_nigeria_2022": [], "2023": [], "comma": 33, "delimit": [24, 33], "readi": [], "next": [14, 17, 20, 21, 45], "expand": [20, 21], "geometri": [11, 17, 23, 37], "definit": 20, "section": 15, "longitud": [37, 45], "field": [5, 6, 14, 17, 20, 21, 27, 37], "latitud": [37, 45], "esri": 33, "nga_securityincid": [], "option": [14, 15, 17, 19, 20, 21, 24, 37, 44], "its": [15, 19, 20, 21, 23], "represent": [11, 19, 20], "piec": [], "even": [17, 19], "nga_secur": [], "infact": [], "exactli": 23, "dock": 27, "heigit_slid": [], "28": [4, 23], "44": [], "11": 4, "firenz": 4, "know": [5, 39], "familiar": 15, "gistool": [], "geog": [], "uni": 20, "anticipatori": [], "action": 27, "tree": [], "exercise_0": [], "blob": [], "ex0_data": [], "zip": [], "pc": [5, 15, 46], "must": [4, 14, 19, 23], "unzip": [], "beforehand": [], "hub": [], "2b93b06dc0dc4e809d3c8db5cb96ba69_0": [], "ncei": [], "noaa": [], "metadata": [], "iso": [], "id": [11, 17, 23], "ngdc": [], "mgg": [], "g012153": [], "wri": [], "globalpowerplantdatabas": [], "plant": [], "geopackag": [11, 15, 33], "test": 23, "while": [19, 27], "drop": [17, 41], "down": [5, 14, 15, 17, 19, 20, 41, 45], "costum": [], "4326": 45, "wg": [], "84": 45, "arrang": 28, "zoom": [17, 19, 27, 41], "what": [15, 19, 21, 23], "exercise_1": [], "view": [15, 17, 19, 20, 41, 45], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx": [], "miss": 44, "sierra": 14, "leon": 14, "border": 19, "geopack": [], "nation": 19, "boder": [], "provinc": [], "airport": [], "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx": [], "notic": [], "statu": [5, 39], "bar": [5, 15, 17, 20, 39], "hide": 27, "hierarchi": 19, "renam": [19, 41], "effect": [20, 23], "storag": 41, "pseudo": [], "3857": [], "indic": [19, 23], "windo": [], "lead": [], "bevor": [], "shortcut": [5, 17, 27, 39], "execut": [5, 39], "frequent": [5, 39], "special": [5, 23, 39], "among": [5, 15, 39], "thing": [5, 20, 39, 45], "later": [5, 19, 39], "central": [5, 6, 20, 39], "compon": [5, 6, 23, 27, 39], "correspond": [5, 17, 19, 23, 39], "mous": [5, 17, 19, 39], "pointer": [5, 39], "thu": [5, 39], "face": [5, 39], "south": [5, 23, 39], "side": [5, 23, 39], "anoth": [5, 15, 19, 20, 21, 28, 39, 41, 44], "try": [5, 17, 19, 39], "instead": [5, 15, 19, 21, 46], "path": [5, 23, 46], "were": [5, 6, 23, 46], "time": [5, 15, 17, 20, 23, 46], "last": [5, 6, 46], "subsequ": [5, 46], "error": [5, 44, 46], "messag": [5, 19, 44, 46], "handl": [5, 46], "unavail": [5, 46], "appear": [5, 15, 17, 19, 23, 46], "fix": [5, 19, 46], "thought": [5, 46], "prevent": [5, 46], "two": [5, 11, 15, 20, 28, 46], "until": [5, 19], "arrow": [5, 19, 20, 21, 28, 39], "hold": [5, 15], "individualis": 5, "compress": 5, "enlarg": 5, "7": [15, 21], "9": [14, 20], "numer": [14, 15, 17, 19, 20, 21, 44], "account": [14, 24], "themat": [14, 19, 20], "encompass": [14, 20], "color": [11, 14, 15, 20, 21], "presenc": 14, "outlin": [14, 20, 21], "paramet": 14, "marker": 14, "transpar": [14, 20, 21, 41], "packtpub": [], "classifi": 21, "botton": [14, 17], "panel": [5, 14, 15, 17, 19, 21, 28, 41, 44], "pictur": [11, 14, 17, 28], "insecur": [14, 21], "pannel": [14, 15], "Then": [4, 14, 15], "circl": [14, 17], "choic": [14, 15, 19], "syle": 14, "ramp": [14, 20, 21], "go": [8, 14, 15, 17, 19], "convert": 17, "specialist": 17, "firstli": [15, 17], "spatialit": 17, "place": [14, 15, 17, 19, 46], "road": [17, 19, 20, 21, 28], "transfer": 17, "opent": 17, "prefer": 17, "f6": 17, "shift": [17, 27], "filter": [17, 20, 23, 27], "ctrl": [5, 15, 17, 19, 27, 39], "visibl": [17, 21, 28], "toggl": [17, 27], "length": [15, 17, 23], "switch": [17, 20], "4": [14, 15, 17, 20, 21, 23], "enter": [15, 17, 19, 20, 24], "been": [6, 15, 17, 23], "digitis": 17, "rememb": [14, 17, 19, 21], "sever": [6, 15, 17, 19, 20, 23], "part": [15, 17], "done": [17, 20, 23], "complet": [17, 19], "fourth": 17, "slightli": [8, 17], "pleas": [15, 17], "thatth": 17, "ensur": 17, "dialog": [17, 23], "successful": [], "subset": 23, "sql": [], "languag": [11, 33], "express": [19, 20, 27], "condit": [23, 27], "mathemat": 14, "value1": [], "value2": [], "field1": [], "field2": [], "analysi": [23, 41], "But": 23, "sometim": [15, 19, 20, 23], "necessari": [19, 23], "split": [14, 23], "across": [17, 19, 23], "simplest": 23, "known": [15, 23], "uid": 23, "properli": [15, 23], "sudan": 23, "best": [20, 23, 46], "suscept": 23, "spell": 23, "transfom": 33, "filenam": [11, 33], "dscription": 33, "old": [11, 33], "wide": [11, 28, 33], "geodataformat": [11, 33], "consist": [11, 21, 33], "shx": [11, 33], "versatil": [11, 33], "datafil": [11, 33], "keyhol": [11, 33], "markup": [11, 33], "gpx": [11, 33], "gp": [11, 33], "waypoint": [11, 33], "tif": 33, "tiff": 33, "geotiff": 33, "imag": [11, 17, 19, 33], "necessarili": 33, "georefer": 33, "georeferenc": 33, "nc": 33, "netcdf": 33, "scientif": 33, "speed": 33, "temperatur": [11, 19, 33], "multibl": [33, 37], "asc": 33, "ascii": 33, "grid": [20, 33], "separ": [19, 33], "vecctor": 37, "exact": 37, "selectir": 37, "correct": [19, 20, 23, 37, 44], "xlsx": [], "transform": [19, 23, 37], "eaysier": 37, "qggi": [37, 39], "Or": [5, 39], "featuer": 39, "perfect": 45, "adjust": [20, 45], "projeckt": 45, "butten": 45, "availbel": 45, "reight": 45, "headlin": 45, "yiu": 45, "wather": 45, "th": 45, "nest": 45, "reporject": 45, "resampl": 45, "superposit": 11, "analys": [8, 11, 14], "adapt": [11, 44], "There": [11, 15, 19, 20, 23, 24, 28, 44], "matrix": 11, "pixel": [11, 20], "resolut": 11, "accuraci": 11, "elev": 11, "urban": [11, 17], "3_key_gis_concept": 11, "3_3_key_concept": 11, "3_3_1_layer": 11, "pull": 0, "commit": 0, "yourmessag": 0, "conflict": 0, "config": 0, "rebas": 0, "fals": [0, 19], "intersect": 15, "touch": 15, "alreadi": [15, 20, 23], "shown": [15, 19], "yellow": [15, 20, 23], "arriv": 15, "deselect": [15, 27], "disjoint": 15, "overlap": [15, 19], "neighbor": 15, "5": [14, 15, 19, 23], "four": 15, "op": 15, "addition": [14, 15], "plai": 15, "predict": 15, "countir": 15, "nigerian": [15, 20, 21], "describ": [15, 19], "irrespect": 15, "total": [15, 21], "independ": [15, 28], "occupi": 15, "charact": [15, 19], "space": [15, 19, 44, 46], "manual": [17, 19], "would": [14, 15, 19], "press": [15, 19], "plu": 15, "f3": 15, "board": 15, "prompt": 15, "written": [15, 23], "integ": 23, "float": [], "imagin": 15, "state": [15, 20, 21], "million": [15, 23], "37": 15, "forget": [15, 21], "doubl": [15, 20, 21], "sign": [15, 20], "figur": [15, 19, 20], "instanc": [14, 15], "lastli": 15, "thelv": 15, "admin0nam": 15, "admin0refnam": 15, "titl": 15, "simultan": 15, "shape_area": 15, "proce": 15, "connector": 15, "visit": [4, 15], "subchapt": 20, "interpret": [19, 20], "topograph": [19, 20, 28], "localis": 20, "hydrographi": 20, "convent": [4, 20], "blue": [19, 20, 21], "green": [19, 20], "forest": 20, "agricultur": 20, "flood": [19, 20], "decid": [14, 20], "rule": [19, 20], "convei": [19, 20], "brain": 20, "attempt": 20, "theoris": 20, "transcrib": 20, "hue": 20, "textur": 20, "orient": [19, 20, 28], "vari": [19, 20], "appropri": 20, "dispos": 20, "quantiti": [20, 21], "bertin": 20, "1967": 20, "percept": [14, 20], "person": 20, "physiolog": 20, "blind": [], "transcultur": 20, "slide": 20, "textlabel": 20, "wish": [19, 20], "continu": [14, 21], "settlement": 20, "font": [19, 20], "final": [19, 20], "ppp": [20, 21], "adm1_en": 20, "english": 20, "arial": 20, "bold": 20, "dark": [19, 20], "grei": 20, "pt": 20, "white": [20, 21], "capit": [19, 20], "citi": [20, 23], "\u03b5": 20, "class": [14, 20, 21, 23], "_": [20, 46], "frame": [19, 20], "doub": 20, "black": 20, "12pt": 20, "10pt": 20, "builder": 20, "witha": 19, "playout": 19, "dialer": 19, "duplic": 19, "refresh": 19, "lock": 19, "unlock": 19, "custom": 19, "a4": 19, "a3": 19, "a2": 19, "landscap": 19, "portrait": 19, "commonli": [19, 23], "__drag": 19, "canva": [19, 24, 28], "wheel": 19, "gentli": 19, "desir": [19, 23], "_rememb": 19, "explicit": 19, "river": 19, "redo": 19, "auto": 19, "reorder": 19, "ot": 19, "uncheck": 19, "reorganis": 19, "fielld": 19, "round": 19, "metr": 19, "mile": 19, "degre": 19, "width": [19, 21], "km": 19, "50": 19, "height": [14, 19], "thick": 19, "prepar": 19, "subnat": 19, "landmark": 19, "boundari": [19, 21], "oveview": 19, "never": 19, "author": 19, "word": [19, 20], "reader": 19, "contextu": 19, "precis": 19, "township": 19, "intellig": 19, "acronym": 19, "date": [19, 23], "care": 19, "maputo": 19, "mozambiqu": 19, "2022": 19, "ghardaia": 19, "algeria": 19, "imposs": [19, 20], "organ": [19, 21, 23, 27, 46], "categori": [19, 20], "background": [19, 28], "essenti": 19, "measur": [6, 19], "fraction": 19, "25000": 19, "equival": 19, "centimet": 19, "calcul": [19, 24, 27], "cm": 19, "250": 19, "gound": 19, "ground": 19, "undergo": 19, "rest": 19, "north": 19, "cite": 19, "stock": 19, "appeal": [19, 20], "distract": 19, "lose": 19, "stand": [19, 21], "eg": 19, "russia": 19, "noth": 19, "rather": [19, 23], "speak": 19, "representatin": 19, "feel": 19, "low": 19, "rate": [17, 19], "differenti": 19, "ordin": 19, "brai": 19, "priorit": 19, "certain": [19, 46], "especi": [17, 19, 20], "__if": 19, "degrad": 19, "shade": 19, "gradat": [19, 20], "neg": [19, 20, 21], "sens": [14, 19], "distinguish": [14, 19, 20], "ey": 19, "perceiv": 19, "darker": [19, 20], "lighter": [19, 20], "send": 19, "diverg": [19, 20], "opposit": 19, "itself": [19, 20], "trend": 19, "decreas": 19, "too": 19, "incorport": 19, "multitud": 19, "overload": 19, "reduc": [14, 17, 19], "readabl": 19, "difficult": [19, 20], "__the": 19, "beyond": 19, "dinstinguish": 19, "less": [19, 23], "seriou": 19, "complic": 19, "forc": 19, "captur": 5, "printabl": 5, "2002": 5, "And": 5, "toolsbar": 5, "__": 5, "card": [], "100": [], "src": [], "raw": [], "fig": [], "qgis_mov": [], "mp4": [], "qgis_move_symbol": [], "png": 28, "qgis_zoom": [], "qgis_zoom_symbol": [], "qgis_identifi": [], "qgis_open_toolbar": [], "geschlossene_toolbox_01": [], "8e2bb629d9c3189f8f635a4cf1381d2c": [], "qgis_save_project": [], "1655b97b741749bfa46c6c08ee3d0be6": [], "qgis_open_project": [], "b9ccebc4bd584fdbc5092b4804d8a742": [], "anzeigen_einblenden_ausblenden": [], "07bbf031499eb8da30daaa3bebd24769": [], "qgis_arrange_toolbar": [], "325cb2d70b0154c1bd5f38a899cd2b40": [], "qgis_map_project": [], "overrid": 7, "turbo": 7, "head": 8, "offer": [4, 23], "dure": [4, 17], "older": 4, "probabl": [4, 20], "observ": [4, 14], "camp": 6, "accompani": 6, "won": 6, "predomin": 6, "miasma": 6, "resid": 6, "boil": 6, "tendenc": 6, "li": 6, "35": 6, "broad": 6, "contamin": 6, "scheme": [14, 20], "apart": 14, "substanti": 14, "break": 14, "minim": 14, "varianc": 14, "maxim": 14, "had": [14, 23], "folk": 14, "inclin": 14, "pair": 14, "given": [14, 24], "gap": 14, "middl": 14, "rang": [14, 23, 28], "Such": 14, "approach": 14, "maximum": 14, "might": [14, 21, 44], "matter": 14, "elig": 14, "fund": 14, "extern": 14, "constraint": 14, "ride": 14, "despit": 14, "straddl": 14, "breakpoint": 14, "choropleth": 14, "much": [14, 17, 23], "clearer": 14, "emphas": 14, "evalu": 14, "psycholog": 14, "taken": 14, "radiu": 15, "trace": 17, "polylin": 17, "analogu": 17, "cad": 17, "3d": 17, "model": 17, "becom": 17, "industri": 17, "geologist": 17, "planner": 17, "member": 17, "easier": [17, 20], "compani": 17, "whenev": 17, "faster": [17, 28], "flexibl": 17, "ever": 17, "caution": 17, "inevit": 17, "undershoot": 17, "overshoot": 17, "unless": 17, "quit": 17, "fuzzi": 17, "toler": 17, "snap": 17, "minimum": 17, "node": 17, "vertic": 17, "explanatori": 19, "everyth": [19, 21], "phenomenen": 19, "variabl": 19, "arguabl": 20, "strike": 20, "disinguish": 20, "satur": 20, "sequenti": 20, "district": [20, 21], "rel": 20, "ideal": 20, "achiev": 20, "sequenc": 20, "grade": 20, "pai": 20, "attent": 20, "mind": 20, "hard": 20, "impair": 20, "jenni": 20, "bernhard": 20, "nathaniel": 20, "vaughn": 20, "kelso": 20, "2007": 20, "perspect": 20, "58": 20, "septemb": 20, "61": 20, "67": 20, "doi": 20, "14714": 20, "cp58": 20, "270": 20, "2017": 20, "bodi": 20, "2nd": 20, "quarter": 20, "john": 20, "wilson": 20, "ed": 20, "2222": 20, "gistbok": 20, "singleband": 20, "grai": 20, "band": 20, "pseudocolour": 20, "premad": 20, "selector": [20, 21], "plot": 20, "light": 20, "opac": 20, "underlign": 20, "adm0": 21, "adm1": 21, "adm2": 21, "session": 21, "weird": 21, "stly": 21, "contour": 21, "topmost": 21, "stroke": 21, "66": 21, "millimet": 21, "recent": 21, "26": 21, "cann": 21, "distric": 21, "dash": 21, "yout": 21, "hopefulli": 21, "nicer": 21, "colleagu": 21, "covid": 21, "te": 21, "acl": 21, "onto": 21, "discret": 21, "casualtie": 21, "actor": 21, "perpetr": 21, "act": 21, "event_typ": 21, "explos": 21, "preview": 21, "nga_adm1_pop": 21, "sai": 21, "rivht": 21, "cholera": 21, "unfinish": 21, "classif": 23, "econom": 23, "gain": 23, "aspect": 23, "introduc": 23, "whole": [23, 46], "decim": 23, "boolean": 23, "unus": 23, "unnecessari": 23, "ratio": 23, "viewer": 23, "max": 23, "min": 23, "averag": 23, "parent": 23, "catergori": 23, "300": 23, "live": 23, "largest": 23, "agglomer": 23, "success": 23, "chosen": 23, "valuabl": 23, "successfulli": 23, "substract": 23, "divis": 23, "remaind": 23, "IN": 23, "IS": 23, "null": 23, "yet": 23, "1950": 23, "promin": 24, "layout": 24, "bookmark": 24, "xmin": 24, "xmax": 24, "ymin": 24, "ymax": 24, "core": 27, "sort": 27, "multi": 27, "modif": 27, "reload": 27, "geometryless": 27, "cut": 27, "clipboard": 27, "c": 27, "invert": 27, "pan": 27, "undock": 27, "divers": 28, "No": 28, "clikc": 28, "seletc": 28, "info": 28, "opentopomap": 28, "opensourc": 28, "mt1": 28, "hybrid": 28, "h": 28, "aerial": 28, "ecn": 28, "t3": 28, "virtualearth": 28, "q": 28, "jpeg": 28, "advantag": [28, 46], "print": 28, "nasa": 28, "horizont": 28, "pack": 28, "whatev": 28, "offic": 39, "stack": 41, "vital": 41, "tick": 41, "customis": 41, "extend": 44, "capitalis": 44, "useful": 44, "deactic": 44, "crowd": 44, "amni": 44, "develop": 44, "obsolet": 44, "longer": 44, "optimis": 44, "newer": 44, "nevertheless": 44, "due": 44, "crash": 44, "deactiv": 44, "loss": 44, "articl": 46, "safe": 46, "pu": 46, "instet": 46, "underscor": 46, "princip": 46, "proper": 46}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"repo": 0, "gi": [0, 6, 53], "train": [0, 25, 26], "resourc": 0, "center": 0, "trc": 0, "tractor": 0, "dev": 0, "setup": 0, "ci": 0, "cd": 0, "about": 1, "glossari": 2, "data": [3, 7, 8, 10, 11, 14, 17, 20, 21, 30, 31, 33, 37, 45], "analysi": [3, 6], "theori": [3, 6, 11], "what": [5, 6, 17, 53], "instal": [4, 38, 44], "window": 4, "mac": 4, "linux": 4, "get": 5, "start": 5, "qgi": [4, 5, 17, 26, 27, 28, 37, 38, 39, 45, 46, 47], "geodatenbeschaffung": [], "deutschland": [], "und": [], "europa": [], "grenzen": [], "openstreetmap": [], "physisch": [], "geographi": [], "humangeographi": [], "onlin": [], "werkzeug": [], "geodatenform": [], "unterschied": [], "bei": [], "der": [], "arbeit": [], "mit": [], "raster": [8, 11, 20, 24, 33, 37, 45], "vektordaten": [], "vektordatenform": [], "shapefil": 17, "textuel": [], "austauschform": [], "wie": [], "z": [], "b": [], "geojson": [], "rasterdatenform": [], "geotiff": [], "datenform": [], "f\u00fcr": 24, "geopackag": 8, "web": 6, "map": [5, 6, 19, 20, 21, 22, 39], "servic": [], "wm": [], "sourc": [7, 10, 19, 31], "basic": [9, 23, 26, 47], "geodata": [8, 9, 11, 12, 13, 14, 15, 33, 34, 37], "process": [8, 9], "singl": [19, 21, 49], "symbol": [19, 49], "farb": [], "\u00e4ndern": [], "gr\u00f6\u00dfe": [], "punkt": [], "icon": 19, "polygon": [15, 17, 20], "f\u00fcllung": [], "transparenz": [], "einstellen": [], "nominal": [], "daten": 24, "categor": 14, "intervallskaliert": [], "graduat": [14, 36], "signaturen": [], "speichern": [], "laden": [], "beschriftung": [], "automatisch": [], "platzierung": [], "manuel": [], "weiter": [], "ressourcen": [], "classif": [13, 14, 30], "select": [8, 15, 16, 17, 23], "queri": [15, 16, 23, 43, 48, 51], "digitalis": 17, "design": [21, 22], "non": [15, 23, 42, 43, 48], "spatial": [6, 15, 23, 24, 42, 43, 48, 50, 51], "geodataprocess": [23, 24], "how": [14, 25, 45, 53], "do": 25, "full": 26, "attribut": [8, 17, 27], "tabl": [17, 23, 27, 52], "basemap": [8, 28], "catagor": 29, "subsect": [30, 34, 35, 40, 47, 48, 52], "creat": [17, 30, 34, 35, 40, 47, 48, 52], "didgit": 32, "geoprocess": 35, "import": [6, 8, 14, 37], "interfac": [5, 39], "join": [23, 40, 42, 50, 53], "layer": [11, 17, 20, 21, 24, 37, 41, 45], "concept": [5, 11, 12, 41], "plugin": [28, 44], "project": [5, 11, 45, 46], "function": [5, 23, 52], "welcom": 53, "learn": 53, "hub": 53, "humanitarian": [6, 53], "empower": 53, "s": 53, "insid": 53, "us": [6, 17, 21, 53], "object": [5, 39, 53], "commun": 53, "applic": [6, 11], "excercis": 11, "vector": [8, 11, 20, 24, 33, 37, 45], "file": [11, 37], "format": 11, "gener": 6, "inform": 6, "why": 6, "ar": 6, "analys": 6, "introduct": [6, 23], "an": [6, 19], "definit": [], "A": 6, "formal": [], "compon": [], "we": 6, "respons": 6, "paper": 6, "cartographi": 6, "exampl": 6, "from": [6, 28, 46], "past": 6, "john": 6, "snow": 6, "cholera": 6, "vs": [6, 19], "refer": 6, "infrastructur": 6, "themat": 6, "situat": 6, "descript": 6, "malaria": [], "The": [14, 19], "battl": [], "against": [], "indoor": [], "residu": [], "sprai": [], "ir": [], "coordin": [], "camp": [], "platform": 6, "geo": [6, 8], "mobil": 6, "app": 6, "overview": [5, 6, 19, 39], "understand": [6, 19], "so": [], "manual": [15, 23], "featur": [8, 15, 17], "save": [5, 15], "same": 20, "all": [], "type": [20, 33], "locat": 15, "tool": 6, "express": [15, 23], "delet": [17, 23], "field": [15, 23], "calcul": 23, "buffer": [], "without": [], "dissolv": [], "galaxi": 6, "intro": 5, "introduc": 5, "excel": [], "32": 4, "bit": 4, "64": 4, "video": [], "exercis": [9, 10, 12, 13, 16, 21, 22], "1": [9, 10, 12, 13, 16, 19, 21, 22], "mag": [], "2": 20, "ii": [], "builder": [], "oper": 15, "text": [8, 15, 19, 33, 37], "open": [5, 37, 39, 46], "move": [5, 39, 41], "zoom": [5, 39], "properti": [5, 39, 41], "toolbar": [5, 17, 39], "check": 45, "epsg": 45, "code": 45, "cr": [5, 45], "your": 45, "chang": [21, 41, 45], "represent": [], "graphic": 20, "semiolog": [19, 20], "visual": 20, "variabl": [20, 21], "symbolog": [20, 21], "style": [14, 20, 21], "panel": [20, 39], "label": 20, "ad": [8, 19, 20], "differ": [20, 21], "print": 19, "layout": 19, "compos": 19, "element": 19, "new": [17, 19, 46], "box": 19, "legend": 19, "scale": 19, "bar": 19, "good": [19, 33], "practic": [19, 33], "common": 19, "mistak": 19, "composit": 19, "kei": 19, "4": 19, "error": [17, 19], "proport": 19, "circl": 19, "solid": 19, "color": 19, "gradient": [19, 20], "distinct": 19, "palett": 19, "between": 19, "two": 19, "limit": 19, "geometr": 19, "complex": 19, "configur": 28, "view": [5, 39], "delimit": 8, "further": 5, "show": [5, 39, 41], "set": [5, 46], "toolbox": [5, 39], "hide": [5, 39, 41], "displai": [5, 39], "arrang": [5, 39], "goal": 14, "classifi": 14, "click": 15, "arithmet": 15, "integ": 15, "float": 15, "string": 15, "e": 15, "g": 15, "like": 15, "placehold": 15, "logic": 15, "AND": 15, "OR": [15, 24], "digit": 17, "creation": 17, "point": [17, 20], "line": [17, 20], "edit": 17, "titl": 19, "colour": 20, "blind": 20, "assign": 20, "base": 21, "rang": 21, "add": [23, 28], "statist": 23, "categori": 23, "clip": 24, "extent": 24, "dropdown": 24, "here": 24, "tab": [24, 37], "mask": 24, "auch": 24, "button": 27, "tabel": 27, "standard": [28, 46], "googl": 28, "bing": 28, "quickmapservic": 28, "navig": 28, "osm": 28, "place": 28, "search": 28, "via": 37, "drag": 37, "drop": 37, "netcdf": 37, "csv": 37, "xlsx": 37, "have": 41, "you": 41, "lost": 41, "hierarchi": 41, "name": 41, "manag": 44, "allow": 44, "experiment": 44, "extens": 44, "folder": 46, "structur": 46, "step": 46, "up": 46, "scratch": 46, "exist": 46}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}}) \ No newline at end of file