41554 blogs · [ { "id": "01a0876c-e5ce-7110-ab36-11b10f200833", "title": "Fractal dimensions or how to generalize geometries in Python and how it affects data", "url": "https://digital-geography.com/fractal-dimensions-or-how-to-generalize-geometries-in-python-and-how-it-affects-data/", "published_at": "2025-11-28T23:23:04+00:00" }, { "id": "01a0876c-e5cf-71db-b4e1-e8d56b6097fc", "title": "Map Challenge – Day 2 (lines): Straightening the A2", "url": "https://digital-geography.com/map-challenge-day-2-lines-straightening-the-a2/", "published_at": "2025-11-02T12:19:40+00:00" }, { "id": "01a0876c-e5cf-71db-b4e1-e8d56bbee350", "title": "🗺️ Turning a Simple Excel Table into a Map — My #30DayMapChallenge Story", "url": "https://digital-geography.com/%f0%9f%97%ba%ef%b8%8f-turning-a-simple-excel-table-into-a-map-my-30daymapchallenge-story/", "published_at": "2025-11-01T08:47:54+00:00" }, { "id": "01a0876c-e5cf-71db-b4e1-e8d56be7fc94", "title": "Create Pseudo 3D Topographies in QGIS", "url": "https://digital-geography.com/create-pseudo-3d-topographies-in-qgis/", "published_at": "2023-12-27T19:37:01+00:00" }, { "id": "01a0876c-e5cf-71db-b4e1-e8d56cb464d7", "title": "Create your own vector basemaps the easy way", "url": "https://digital-geography.com/create-your-own-vector-basemaps-the-easy-way/", "published_at": "2021-07-19T22:09:13+00:00" }, { "id": "01a0c508-0f42-72ab-8047-91a6a640ba3e", "title": "How to use PyQGIS as standalone script on Ubuntu", "url": "https://digital-geography.com/how-to-use-pyqgis-as-standalone-script-on-ubuntu/", "published_at": "2021-02-04T17:52:30+00:00" }, { "id": "01a0c508-0f42-72ab-8047-91a6a6eaa297", "title": "Joining Data with the Placekey QGIS Plugin", "url": "https://digital-geography.com/joining-data-with-the-placekey-qgis-plugin/", "published_at": "2020-12-17T16:30:00+00:00" }, { "id": "01a0c508-0f42-72ab-8047-91a6a748be0e", "title": "OSM, PostGIS and Docker: an approach for automatic processing", "url": "https://digital-geography.com/osm-postgis-and-docker-an-approach-for-automatic-processing/", "published_at": "2020-01-12T21:31:26+00:00" }, { "id": "01a0c508-0f42-72ab-8047-91a6a807bdbd", "title": "Automated UI tests with AutoIt for QGIS", "url": "https://digital-geography.com/automated-ui-tests-with-autoit-for-qgis/", "published_at": "2019-12-23T21:14:31+00:00" }, { "id": "01a0c508-0f42-72ab-8047-91a6a86a14d7", "title": "qgis2web in the wild", "url": "https://digital-geography.com/qgis2web-in-the-wild/", "published_at": "2019-12-22T22:27:30+00:00" }, { "id": "01a0c518-9aa5-7190-924c-a7aca7eb21c3", "title": "Run GIS functions directly in Python with GeoPandas", "url": "https://digital-geography.com/run-gis-functions-directly-in-python-with-geopandas/", "published_at": "2019-12-21T22:08:23+00:00" }, { "id": "01a0c518-9aa5-7190-924c-a7aca83a94ce", "title": "How to create a custom Web AppBuilder Widget for your Portal with ORS", "url": "https://digital-geography.com/how-to-create-a-custom-web-appbuilder-widget-for-your-portal-with-ors/", "published_at": "2019-12-16T08:34:42+00:00" }, { "id": "01a0c518-9aa5-7190-924c-a7aca91507ab", "title": "GDEM V3 vs SRTM 1: a comparison", "url": "https://digital-geography.com/gdem-v3-vs-srtm-1-a-comparison/", "published_at": "2019-08-11T17:41:14+00:00" }, { "id": "01a0c518-9aa5-7190-924c-a7aca968e4fe", "title": "QGIS2web with interactive filters", "url": "https://digital-geography.com/qgis2web-with-interactive-filters/", "published_at": "2019-07-31T14:55:56+00:00" }, { "id": "01a0c518-9aa5-7190-924c-a7aca973ce2c", "title": "Comparing Isochrone APIs: an insight into different providers", "url": "https://digital-geography.com/comparing-isochrone-apis-an-insight-into-different-providers/", "published_at": "2019-06-06T13:56:11+00:00" }, { "id": "01a0c523-87b4-73cb-b37d-c851a0ab812a", "title": "ArcGIS REST API and QGIS: a practical example", "url": "https://digital-geography.com/arcgis-rest-api-and-qgis-a-practical-example/", "published_at": "2019-06-01T12:05:15+00:00" }, { "id": "01a0c523-87b4-73cb-b37d-c851a118b705", "title": "Places of Interest in QGIS: HQGIS", "url": "https://digital-geography.com/places-of-interest-in-qgis-hqgis/", "published_at": "2019-05-24T07:46:55+00:00" }, { "id": "01a0c523-87b4-73cb-b37d-c851a1670dc7", "title": "Geocoding with Microsoft’s Azure Maps", "url": "https://digital-geography.com/geocoding-with-microsofts-azure-maps/", "published_at": "2019-05-15T21:15:43+00:00" }, { "id": "01a0c523-87b4-73cb-b37d-c851a168bc52", "title": "Short Note: CodingBat or Python, stupid!", "url": "https://digital-geography.com/short-note-python-stupid-codingbat/", "published_at": "2019-05-13T08:53:34+00:00" }, { "id": "01a0c523-87b4-73cb-b37d-c851a2146677", "title": "Colaborative Working in PostGIS", "url": "https://digital-geography.com/colaborative-working-in-postgis/", "published_at": "2019-05-12T10:44:42+00:00" }, { "id": "01a0c52e-ff2b-7043-909c-b734699f1d5c", "title": "Short Note: export layers to PostGIS with Processing", "url": "https://digital-geography.com/short-note-export-layers-to-postgis-with-processing/", "published_at": "2019-05-06T18:18:49+00:00" }, { "id": "01a0c52e-ff2b-7043-909c-b7346a831951", "title": "Vessel tracking the python way", "url": "https://digital-geography.com/vessel-tracking-the-python-way/", "published_at": "2018-10-02T08:56:29+00:00" }, { "id": "01a0c52e-ff2b-7043-909c-b7346b43b791", "title": "Query OpenStreetMap in ArcGIS: OSMQuery", "url": "https://digital-geography.com/query-openstreetmap-in-arcgis-osmquery/", "published_at": "2018-08-28T14:13:18+00:00" }, { "id": "01a0c52e-ff2b-7043-909c-b7346b793f66", "title": "Copernicus, Sentinel and your favourite GIS", "url": "https://digital-geography.com/copernicus-sentinel-and-your-favourite-gis/", "published_at": "2018-06-04T06:42:37+00:00" }, { "id": "01a0c52e-ff2b-7043-909c-b7346c742dc3", "title": "Short Announcement: kepler.gl is available now – free and open", "url": "https://digital-geography.com/short-announcement-kepler-gl-is-available-now-free-and-open/", "published_at": "2018-05-30T11:08:34+00:00" }, { "id": "01a0c539-5d2f-7384-a8a7-31bee000dafc", "title": "openrouteservice v4.5 is released", "url": "https://digital-geography.com/openrouteservice-v4-5-released/", "published_at": "2018-03-06T15:55:31+00:00" }, { "id": "01a0c539-5d2f-7384-a8a7-31bee0497e9d", "title": "QGIS 3 officially released", "url": "https://digital-geography.com/qgis-3-officially-released/", "published_at": "2018-02-26T08:09:50+00:00" }, { "id": "01a0c539-5d2f-7384-a8a7-31bee05d9839", "title": "Short Announcement: OpenWhateverMap", "url": "https://digital-geography.com/short-announcement-openwhatevermap/", "published_at": "2018-02-06T12:21:59+00:00" }, { "id": "01a0c539-5d2f-7384-a8a7-31bee100f893", "title": "ArcGIS Online (AGOL) for free: The Developer Way", "url": "https://digital-geography.com/arcgis-online-agol-for-free-the-developer-way/", "published_at": "2018-01-26T14:06:13+00:00" }, { "id": "01a0c539-5d2f-7384-a8a7-31bee1059934", "title": "Service Areas, Traffic and QGIS", "url": "https://digital-geography.com/service-areas-traffic-and-qgis/", "published_at": "2018-01-17T21:12:05+00:00" }, { "id": "01a0c542-a974-728a-8b5d-910fed71e1d4", "title": "Short Announcement: Your Input is Needed… A Readers Survey", "url": "https://digital-geography.com/short-announcement-readers-survey/", "published_at": "2017-12-31T12:00:24+00:00" }, { "id": "01a0c542-a974-728a-8b5d-910fed942951", "title": "Create Bounding Boxes without Desktop GIS", "url": "https://digital-geography.com/create-bounding-boxes-without-desktop-gis/", "published_at": "2017-10-16T09:09:30+00:00" }, { "id": "01a0c542-a975-7116-99e1-cdf61d30fcb6", "title": "Short Announcement: Retro View of Mankind’s Habitat / Pastvu.com", "url": "https://digital-geography.com/short-announcement-retro-view-mankinds-habitat-pastvu-com/", "published_at": "2017-10-16T09:08:04+00:00" }, { "id": "01a0c542-a975-7116-99e1-cdf61e0b921e", "title": "OpenRouteService API: A Leaflet example for Isochrones", "url": "https://digital-geography.com/openrouteservice-api-a-leaflet-example-for-isochrones/", "published_at": "2017-09-26T09:02:11+00:00" }, { "id": "01a0c542-a975-7116-99e1-cdf61e1fae40", "title": "Donut Polygons in QGIS, ArcMap, ArcGIS Pro and geoJSON", "url": "https://digital-geography.com/donut-polygons-in-qgis-and-arcgis-pro/", "published_at": "2017-09-18T21:11:00+00:00" }, { "id": "01a0c54b-7cbe-7050-8b68-7f97dda897f5", "title": "Short Announcement: PlayMapsCube using Three.JS", "url": "https://digital-geography.com/shourt-announcement-playmapscube/", "published_at": "2017-09-12T15:55:46+00:00" }, { "id": "01a0c54b-7cbe-7050-8b68-7f97de9e5b91", "title": "Short Announcement: ESRI World Imagery Basemap now open for OSM Mapping", "url": "https://digital-geography.com/short-announcement-esri-world-imagery-basemap-now-open-for-osm-mapping/", "published_at": "2017-08-29T15:28:28+00:00" }, { "id": "01a0c54b-7cbe-7050-8b68-7f97df724d70", "title": "A Digital Earth: the Potential of Data Brokers", "url": "https://digital-geography.com/digital-earth-potential-data-brokers/", "published_at": "2017-08-25T13:14:53+00:00" }, { "id": "01a0c54b-7cbe-7050-8b68-7f97dfbf8be7", "title": "Short Announcement: New Sentinel Cloudless Atlas", "url": "https://digital-geography.com/short-announcement-new-cloudless-sentinel-atlas/", "published_at": "2017-08-25T08:05:52+00:00" }, { "id": "01a0c54b-7cbe-7050-8b68-7f97e04e7e4e", "title": "Supporting humanitarian logistics with OSM in a more sustainable way: New Disaster OpenRouteService for Africa, South America and Indonesia", "url": "https://digital-geography.com/supporting-humanitarian-logistics-osm-sustainable-way-new-disaster-openrouteservice-africa-south-america-indonesia/", "published_at": "2017-07-15T06:44:01+00:00" }, { "id": "01a0c553-bacc-7107-821c-dd7c666443db", "title": "Maps Marker – WordPress Map Plugin", "url": "https://digital-geography.com/maps-marker-wordpress-map-plugin/", "published_at": "2017-06-25T10:34:20+00:00" }, { "id": "01a0c553-bacc-7107-821c-dd7c66b5a492", "title": "How to start with “VANE language” API – MODIS example", "url": "https://digital-geography.com/start-vane-language-api-modis-example/", "published_at": "2017-05-22T17:53:34+00:00" }, { "id": "01a0c553-bacc-7107-821c-dd7c678696e5", "title": "How to set up a tileserver using Tilestache, Gunicorn and Nginx", "url": "https://digital-geography.com/set-tileserver-using-tilestache-gunicorn-nginx/", "published_at": "2017-05-17T17:59:16+00:00" }, { "id": "01a0c553-bacc-7107-821c-dd7c67f60fef", "title": "Short Announcement: New OSM routing plugin for QGIS OSM Tools", "url": "https://digital-geography.com/short-announcement-new-osm-routing-plugin-for-qgis-osm-tools/", "published_at": "2017-05-12T12:44:20+00:00" }, { "id": "01a0c553-bacc-7107-821c-dd7c68a13fed", "title": "Vagrant: Setup and Share your Digital Geo-Lab", "url": "https://digital-geography.com/vagrant-setup-and-share-your-digital-geo-lab/", "published_at": "2017-05-07T09:54:02+00:00" }, { "id": "01a0c55c-23bd-7349-9a61-98ce9d2c38eb", "title": "Web Geological Modeling in 3D with Geomodelr. View what’s changed with a new tutorial.", "url": "https://digital-geography.com/web-geological-modeling-3d-geomodelr-view-whats-changed-new-tutorial/", "published_at": "2017-04-19T06:59:17+00:00" }, { "id": "01a0c55c-23bd-7349-9a61-98ce9dcb14b8", "title": "NASA’s Black Marble 2016 or Syrian Dark Years", "url": "https://digital-geography.com/nasas-black-marble-2016-or-syrian-dark-years/", "published_at": "2017-04-18T20:28:24+00:00" }, { "id": "01a0c55c-23bd-7349-9a61-98ce9e11b1ca", "title": "Description code for article “Using the Google Earth Engine (GEE) for Detection of Burned Areas”", "url": "https://digital-geography.com/description-code-article-using-google-earth-engine-gee-detection-burned-areas/", "published_at": "2017-04-18T18:46:52+00:00" }, { "id": "01a0c55c-23bd-7349-9a61-98ce9efce856", "title": "Off Topic: self hosted GIT-server with Bonobo", "url": "https://digital-geography.com/ot-self-hosted-git-server-bonobo/", "published_at": "2017-04-12T20:41:12+00:00" }, { "id": "01a0c55c-23bd-7349-9a61-98ce9fe1195d", "title": "Working with Clusters in Leaflet: Increasing Useability", "url": "https://digital-geography.com/working-with-clusters-in-leaflet-increasing-useability/", "published_at": "2017-04-07T11:26:18+00:00" }, { "id": "01a0c564-7158-71cf-bad0-18455e9610a5", "title": "Custom Google Maps style – How to design your own Google Maps style?", "url": "https://digital-geography.com/custom-googlemaps-style-how-to-design-your-own-googlemaps-style/", "published_at": "2017-04-05T19:49:37+00:00" }, { "id": "01a0c564-7158-71cf-bad0-18455e9d214f", "title": "Using the Google Earth Engine (GEE) for Detection of Burned Areas", "url": "https://digital-geography.com/using-google-earth-engine-detection-burned-areas/", "published_at": "2017-03-26T20:20:20+00:00" }, { "id": "01a0c564-7158-71cf-bad0-18455f70fb6b", "title": "planlauf/TERRAIN – a lightweight 3D DEM viewer for daily usage", "url": "https://digital-geography.com/planlaufterrain-lightweight-3d-dem-viewer-daily-usage_/", "published_at": "2017-03-16T23:39:13+00:00" }, { "id": "01a0c564-7158-71cf-bad0-18455ffccbd6", "title": "ALOS World 3D V1.1 vs. SRTM1", "url": "https://digital-geography.com/alos-world-3d-vs-srtm1/", "published_at": "2017-03-10T14:11:44+00:00" }, { "id": "01a0c564-7158-71cf-bad0-18456076e93b", "title": "Short Announcement: QGIS 3.0 is on its way", "url": "https://digital-geography.com/short-announcement-qgis-3-0-is-on-its-way/", "published_at": "2017-03-08T15:17:26+00:00" }, { "id": "01a0c56b-a12e-73cd-bcdd-fca8c701ff70", "title": "Map your family tree with Gramps and QGIS – how to digitize and visualize genealogy data", "url": "https://digital-geography.com/map-family-tree-gramps-qgis-digitize-visualize-genealogy-data/", "published_at": "2017-01-03T17:57:01+00:00" }, { "id": "01a0c56b-a12e-73cd-bcdd-fca8c78d9919", "title": "JuxtaposeJS and the Death (and Re-Birth) of Bogoslof Island", "url": "https://digital-geography.com/the-death-and-birth-of-bogoslof-island/", "published_at": "2017-01-02T01:40:04+00:00" }, { "id": "01a0c56b-a12e-73cd-bcdd-fca8c8287355", "title": "The Atom Code Editor", "url": "https://digital-geography.com/atom-code-editor/", "published_at": "2016-12-29T21:36:58+00:00" }, { "id": "01a0c56b-a12e-73cd-bcdd-fca8c8597fd9", "title": "Geospatial cloud solutions: Software-as-a-Service vs Roll-your-own", "url": "https://digital-geography.com/geospatial-cloud-solutions-software-service-vs-roll/", "published_at": "2016-12-22T20:07:38+00:00" }, { "id": "01a0c56b-a12e-73cd-bcdd-fca8c88ce0cc", "title": "FME and Talend: ETL tools for your spatial data", "url": "https://digital-geography.com/fme-and-talend-etl-tools-for-your-spatial-data/", "published_at": "2016-12-12T09:31:12+00:00" }, { "id": "01a0c575-3208-729d-8f2b-dd4b5970edc3", "title": "Isochrones in Webmaps: Three Approaches for Leaflet", "url": "https://digital-geography.com/isochrones-in-webmaps-three-approaches-for-leaflet/", "published_at": "2016-12-03T00:45:05+00:00" }, { "id": "01a0c575-3208-729d-8f2b-dd4b5a1f822e", "title": "Some ways to produce topographic swath profiles", "url": "https://digital-geography.com/ways-produce-topographic-swath-profiles/", "published_at": "2016-11-30T00:36:48+00:00" }, { "id": "01a0c575-3208-729d-8f2b-dd4b5aacaca4", "title": "Observing deforestation with Sentinel-1", "url": "https://digital-geography.com/observing-deforestation-sentinel-1/", "published_at": "2016-11-22T18:58:33+00:00" }, { "id": "01a0c575-3208-729d-8f2b-dd4b5af4f192", "title": "Do you need open data? Ask for it.", "url": "https://digital-geography.com/need-open-data-ask/", "published_at": "2016-11-09T16:15:15+00:00" }, { "id": "01a0c575-3208-729d-8f2b-dd4b5bb87b9e", "title": "QGIS and basemaps: QuickMapServices", "url": "https://digital-geography.com/qgis-quickmapservices/", "published_at": "2016-10-20T13:18:39+00:00" }, { "id": "01a0c582-ffc3-7362-9958-204d8d143f83", "title": "Map your CV", "url": "https://digital-geography.com/map-cv/", "published_at": "2016-10-19T09:44:54+00:00" }, { "id": "01a0c582-ffc3-7362-9958-204d8d7196ce", "title": "Intergeo 2016 Day One: drones and drones and drones", "url": "https://digital-geography.com/intergeo-2016-day-one-drones-drones-drones/", "published_at": "2016-10-11T15:20:28+00:00" }, { "id": "01a0c582-ffc3-7362-9958-204d8d7e203d", "title": "Intergeo 2016: Meet us!", "url": "https://digital-geography.com/intergeo-2016-meet-us/", "published_at": "2016-09-16T13:32:53+00:00" }, { "id": "01a0c582-ffc3-7362-9958-204d8daafaa6", "title": "QGIS 2.16 tutorial: georeferencing images", "url": "https://digital-geography.com/qgis-2-16-tutorial-how-to-georeference-images/", "published_at": "2016-09-09T07:17:48+00:00" }, { "id": "01a0c582-ffc3-7362-9958-204d8e783b7b", "title": "The Coup in Turkey: the Twitter Perspective", "url": "https://digital-geography.com/coup-turkey-twitter-perspective/", "published_at": "2016-08-04T20:46:14+00:00" }, { "id": "01a0c590-fcd2-702e-9ad7-8b709ae26130", "title": "5 ways to get a job in the “geo-industry”", "url": "https://digital-geography.com/5-ways-get-job-geo-industry/", "published_at": "2016-08-02T04:09:41+00:00" }, { "id": "01a0c590-fcd2-702e-9ad7-8b709bc57399", "title": "Pokémon Go: 3 Maps to find Pokémon easily", "url": "https://digital-geography.com/pokemon-go-maps-find-pokemon-easily/", "published_at": "2016-07-29T11:24:44+00:00" }, { "id": "01a0c590-fcd2-702e-9ad7-8b709bda1dfc", "title": "Geocoding in GIS: ArcGIS, QGIS, Leaflet", "url": "https://digital-geography.com/geocoding-in-gis/", "published_at": "2016-07-17T13:04:18+00:00" }, { "id": "01a0c590-fcd2-702e-9ad7-8b709c0eddf5", "title": "PostgreSQL and PostGIS: A brief introduction", "url": "https://digital-geography.com/postgresql-postgis-brief-introduction/", "published_at": "2016-06-30T20:52:45+00:00" }, { "id": "01a0c590-fcd2-702e-9ad7-8b709c386ac9", "title": "Accessing Landsat and Sentinel-2 on Amazon Web services", "url": "https://digital-geography.com/accessing-landsat-and-sentinel-2-on-amazon-web-services/", "published_at": "2016-06-28T09:19:51+00:00" } ] posts Claim your blog
Back to digital-geography.com
Blog · corpus.blog/blogs/digital-geography.com/posts

digital-geography.com

digital-geography.com

2025

2023

2021

2020

2019

2018

2017

2016