Skip to content

davidoesch/swisstopoBatchNmerge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


swisstopoBatchNmerge

PC / Mac / Linux Anwendung für den Download von swisstopo Landeskarten Luftbilder Höhenmodellen

Link Typ Betriebssystem
Download .exe Windows
Installation Python Windows macOS Linux

· Report Bug · Request Feature

Inhalt
  1. Das Projekt
  2. Getting started
  3. Beispiele
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

Das Projekt

Product Name Screen Shot

Ein einfaches graphisches Werkzeug um die aktuellsten swisstopo Karten und Höhenmodell und Luftbilder für ein Gebiet (die Grösse des Fenster durch ziehen anpassen) als ein File richtig zugeschnitten zu beziehen - ist umgesetzt.

Des weiteren können die über swisstopo website Werkzeuge erstellten Listen von DownloadLinks (CSV) via Kommando Zeile einfache bezogen zusammengeführt und zurechtgeschnitten werden.

Hauptfunktionen:

  • Herunterladen und zusammenführen in einem Schritt. Der "fehlende letzte Schritt " für das CSV von swisstopo
  • Einfach: keine Installation nötig , graphisches Nutzerinterface 😄
  • Automatisierter Datenbezug: über die Command Line kann eine Vielzahl von verschiedenen Datenbezügen gemacht werden

Voraussetzung: es handelt sich um Rohdatenbezug: der Speicherplatzbedarf kann je nach gewähltem Perimeter und Produkt gross sein. Für Anwendungen bei denen keine hohen Auflösungen benötigt werden, ist mit Vorteil der PDF Export von map.geo.admin.ch oder einer der entsprechenden api.geo.admin.ch Dienste zu nutzen.

Eine Liste häufig verwendeter Ressourcen, die ich hilfreich finde, ist in den acknowledgements aufgeführt.

Limitierung (current version)

  • Zusammenführen und ausschneiden nur für Landeskarte , Luftbild/Swissimage und Höhenmodell/Swissalti möglich

Warning

  • Es können sehr grosse Datenmengen bezogen werden. Bitte prüfen Sie vorab, dass auf ihrem System die berechnete Disk Space zur Verfügung steht und das ihr System mit dieser Datenmenge umgehen kann .

Getting Started

Um swisstopoBatchNmerge local zu nutzen, folge diesen einfachen Schritten

Voraussetzungen

  • Windows 10
  • Mac & Linux , python 3.*

(Keine) Installation

.EXE / Direkt ausführbar

Windows: .EXE -Binaries

  1. Download der Datei:
  2. Doppelklick auf swisstopoBatchNmerge.exe

Ptyhon 3.*

MAC / LINUX / Windows

  1. Clone the repo

    git clone https://github.com/davidoesch/swisstopoBatchNmerge.git
  2. Install pip packages

    python -m pip install -r requirements.txt 

    GDAL Windows: GDAL: follow this guide https://opensourceoptions.com/blog/how-to-install-gdal-for-python-with-pip-on-windows/ folegndes wheel file hat unter WIN10 funktioniert GDAL-3.4.3-cp310-cp310-win_amd64.whl on Win10 LINUX: https://pypi.org/project/GDAL/

  3. plug&pray swisstopoBatchNmerge.py

    python swisstopoBatchNmerge.py

Beispiele

Für WINDOWS / DOS. Für MAC LINUX jeweils python swisstopoBatchNmerge.py anstatt swisstopoBatchNmerge.exe einsetzen

GUI starten

swisstopoBatchNmerge.exe

PROXY

Falls du über einen PROXY (meist in Firmennetzwerken der Fall) Zugang hast, musst du den Proxy definieren

swisstopoBatchNmerge.exe --PROXY http://proxy_url:proxy_port

respektive für SSL PROXY

swisstopoBatchNmerge.exe --PROXYS https://proxy_url:proxy_port

CSV

Ein Liste mit einer Download URL des geo.admin.ch STAC item pro Zeile wird abgearbeitet: heruntergeladen und zusammengeführt. Optionen --noMERGE 1 --PROXY http:https://proxy_url:proxy_port

swisstopoBatchNmerge.exe --CSV "C:\Downloads\ch.swisstopo.swissimage-dop10-5H5DQOGd.csv" --noGUI 1 

PRODUKT und PERIMETER (Vierreck) via URL

Via STAC API Aufruf kann ein swisstopo Produkt über einen viereckigen Ausschnitt bezogen werden.

  • Produkte (collection): Identifier zB ch.swisstopo.landeskarte-farbe-10

  • Perimeter (bbox): Rechteck: Koordinatenpaar unten links (Lower left LON LAT) und oben rechts (UR LON LAT) zB 7.43,46.95,7.69,47.10 Optionen --noMERGE 1 --noCROP 1 --PROXY http:https://proxy_url:proxy_port

    swisstopoBatchNmerge.exe --URL "https://data.geo.admin.ch/api/stac/v0.9/collections/ch.swisstopo.pixelkarte-farbe-pk50.noscale/items?bbox=7.43,46.95,7.69,47.10" --noGUI 1 

PRODUKT und GEMEINDE

Via StAC API und geo.admin API Aufruf kann ein swisstopo Produkt über einen Gemeinde bezogen werden.

  • LOCATION : Offizieler Gemeindenamen zB "Trimmis"

  • PRODUCT: (collection): Identifier zB ch.swisstopo.pixelkarte-farbe-pk50.noscale Optionen --noMERGE 1 --noCROP 1 --PROXY http:https://proxy_url:proxy_port

    swisstopoBatchNmerge.exe --LOCATION "Trimmis" --PRODUCT "ch.swisstopo.pixelkarte-farbe-pk50.noscale" --noGUI 1 

--noMERGE

Mit --noMERGE 1 werden die Datein nur heruntergeladen, aber nicht zusammengesetzt

--noCROP

Mit --noCROP 1 werden die Datein heruntergeladen, zusammengesetzt, aber nicht auf die BBOX oder die Gemeinde zugeschnitten

Roadmap

Siehe open issues bzgl liste von geplanten features (oder issues (von denen es viele hat.... )).

Contributing

Beiträge sind das, was die Open-Source-Gemeinschaft zu einem so grossartigen Ort des Lernens, der Inspiration und der Kreativität macht. Jeder Beitrag, den du leistest, wird dankbar geschätzt.

  1. Forke das Project
  2. Erstelle deine Feature Branch (git checkout -b feature/AmazingFeature)
  3. Committe deine Changes (git commit -m 'Add some AmazingFeature')
  4. Push in deine Branch (git push origin feature/AmazingFeature)
  5. Öffne ein Pull Request

Ausführbare binaries /EXE

Die WINDOWS Version wurde mit pyinstaller realisiert. pyinstaller und gdal - das ist so ein Sache. Lösungsschritte

  1. Install pip packages
    pip install pyinstaller 
  2. pyinstaller initial ausführen
    pyinstaller --noconfirm --onefile --console --add-data "<PythonPfad>/Lib/site-packages/osgeo;osgeo/" --add-data "<PythonPfad>/Lib/site-packages/customtkinter;customtkinter/"  "swisstopoBatchNmerge.py" 
  3. Die Datei (swisstopoBatchNmerge.spec) for der Zeile (pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) mit ergänzen
    from PyInstaller.building.datastruct import TOC
    x = 'cp310-win_amd64.pyd'
    datas_upd = TOC()
    
    for d in a.datas:
       if x not in d[0] and x not in d[1]:
           datas_upd.append(d)
    
    a.datas = datas_upd
  4. pyinstaller zum zweiten mal ausführen
    pyinstaller swisstopoBatchNmerge.spec 

License

Distributed under the MIT License. See LICENSE for more information.

Contact

David Oesch - @davidoesch

Project Link: https://github.com/davidoesch/swisstopoBatchNmerge

Acknowledgements