Compare commits
No commits in common. "399bf3e096917df7d6aa243be6cb112bf55ce90e" and "dcf844632e6a458dbee79679a2355b8437571801" have entirely different histories.
399bf3e096
...
dcf844632e
7 changed files with 142 additions and 57 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
.vscode
|
|
114
.vscode/.ropeproject/config.py
vendored
Executable file
114
.vscode/.ropeproject/config.py
vendored
Executable file
|
@ -0,0 +1,114 @@
|
||||||
|
# The default ``config.py``
|
||||||
|
# flake8: noqa
|
||||||
|
|
||||||
|
|
||||||
|
def set_prefs(prefs):
|
||||||
|
"""This function is called before opening the project"""
|
||||||
|
|
||||||
|
# Specify which files and folders to ignore in the project.
|
||||||
|
# Changes to ignored resources are not added to the history and
|
||||||
|
# VCSs. Also they are not returned in `Project.get_files()`.
|
||||||
|
# Note that ``?`` and ``*`` match all characters but slashes.
|
||||||
|
# '*.pyc': matches 'test.pyc' and 'pkg/test.pyc'
|
||||||
|
# 'mod*.pyc': matches 'test/mod1.pyc' but not 'mod/1.pyc'
|
||||||
|
# '.svn': matches 'pkg/.svn' and all of its children
|
||||||
|
# 'build/*.o': matches 'build/lib.o' but not 'build/sub/lib.o'
|
||||||
|
# 'build//*.o': matches 'build/lib.o' and 'build/sub/lib.o'
|
||||||
|
prefs['ignored_resources'] = ['*.pyc', '*~', '.ropeproject',
|
||||||
|
'.hg', '.svn', '_svn', '.git', '.tox']
|
||||||
|
|
||||||
|
# Specifies which files should be considered python files. It is
|
||||||
|
# useful when you have scripts inside your project. Only files
|
||||||
|
# ending with ``.py`` are considered to be python files by
|
||||||
|
# default.
|
||||||
|
# prefs['python_files'] = ['*.py']
|
||||||
|
|
||||||
|
# Custom source folders: By default rope searches the project
|
||||||
|
# for finding source folders (folders that should be searched
|
||||||
|
# for finding modules). You can add paths to that list. Note
|
||||||
|
# that rope guesses project source folders correctly most of the
|
||||||
|
# time; use this if you have any problems.
|
||||||
|
# The folders should be relative to project root and use '/' for
|
||||||
|
# separating folders regardless of the platform rope is running on.
|
||||||
|
# 'src/my_source_folder' for instance.
|
||||||
|
# prefs.add('source_folders', 'src')
|
||||||
|
|
||||||
|
# You can extend python path for looking up modules
|
||||||
|
# prefs.add('python_path', '~/python/')
|
||||||
|
|
||||||
|
# Should rope save object information or not.
|
||||||
|
prefs['save_objectdb'] = True
|
||||||
|
prefs['compress_objectdb'] = False
|
||||||
|
|
||||||
|
# If `True`, rope analyzes each module when it is being saved.
|
||||||
|
prefs['automatic_soa'] = True
|
||||||
|
# The depth of calls to follow in static object analysis
|
||||||
|
prefs['soa_followed_calls'] = 0
|
||||||
|
|
||||||
|
# If `False` when running modules or unit tests "dynamic object
|
||||||
|
# analysis" is turned off. This makes them much faster.
|
||||||
|
prefs['perform_doa'] = True
|
||||||
|
|
||||||
|
# Rope can check the validity of its object DB when running.
|
||||||
|
prefs['validate_objectdb'] = True
|
||||||
|
|
||||||
|
# How many undos to hold?
|
||||||
|
prefs['max_history_items'] = 32
|
||||||
|
|
||||||
|
# Shows whether to save history across sessions.
|
||||||
|
prefs['save_history'] = True
|
||||||
|
prefs['compress_history'] = False
|
||||||
|
|
||||||
|
# Set the number spaces used for indenting. According to
|
||||||
|
# :PEP:`8`, it is best to use 4 spaces. Since most of rope's
|
||||||
|
# unit-tests use 4 spaces it is more reliable, too.
|
||||||
|
prefs['indent_size'] = 4
|
||||||
|
|
||||||
|
# Builtin and c-extension modules that are allowed to be imported
|
||||||
|
# and inspected by rope.
|
||||||
|
prefs['extension_modules'] = []
|
||||||
|
|
||||||
|
# Add all standard c-extensions to extension_modules list.
|
||||||
|
prefs['import_dynload_stdmods'] = True
|
||||||
|
|
||||||
|
# If `True` modules with syntax errors are considered to be empty.
|
||||||
|
# The default value is `False`; When `False` syntax errors raise
|
||||||
|
# `rope.base.exceptions.ModuleSyntaxError` exception.
|
||||||
|
prefs['ignore_syntax_errors'] = False
|
||||||
|
|
||||||
|
# If `True`, rope ignores unresolvable imports. Otherwise, they
|
||||||
|
# appear in the importing namespace.
|
||||||
|
prefs['ignore_bad_imports'] = False
|
||||||
|
|
||||||
|
# If `True`, rope will insert new module imports as
|
||||||
|
# `from <package> import <module>` by default.
|
||||||
|
prefs['prefer_module_from_imports'] = False
|
||||||
|
|
||||||
|
# If `True`, rope will transform a comma list of imports into
|
||||||
|
# multiple separate import statements when organizing
|
||||||
|
# imports.
|
||||||
|
prefs['split_imports'] = False
|
||||||
|
|
||||||
|
# If `True`, rope will remove all top-level import statements and
|
||||||
|
# reinsert them at the top of the module when making changes.
|
||||||
|
prefs['pull_imports_to_top'] = True
|
||||||
|
|
||||||
|
# If `True`, rope will sort imports alphabetically by module name instead
|
||||||
|
# of alphabetically by import statement, with from imports after normal
|
||||||
|
# imports.
|
||||||
|
prefs['sort_imports_alphabetically'] = False
|
||||||
|
|
||||||
|
# Location of implementation of
|
||||||
|
# rope.base.oi.type_hinting.interfaces.ITypeHintingFactory In general
|
||||||
|
# case, you don't have to change this value, unless you're an rope expert.
|
||||||
|
# Change this value to inject you own implementations of interfaces
|
||||||
|
# listed in module rope.base.oi.type_hinting.providers.interfaces
|
||||||
|
# For example, you can add you own providers for Django Models, or disable
|
||||||
|
# the search type-hinting in a class hierarchy, etc.
|
||||||
|
prefs['type_hinting_factory'] = (
|
||||||
|
'rope.base.oi.type_hinting.factory.default_type_hinting_factory')
|
||||||
|
|
||||||
|
|
||||||
|
def project_opened(project):
|
||||||
|
"""This function is called after opening the project"""
|
||||||
|
# Do whatever you like here!
|
BIN
.vscode/.ropeproject/objectdb
vendored
Executable file
BIN
.vscode/.ropeproject/objectdb
vendored
Executable file
Binary file not shown.
16
.vscode/launch.json
vendored
Executable file
16
.vscode/launch.json
vendored
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
// Verwendet IntelliSense zum Ermitteln möglicher Attribute.
|
||||||
|
// Zeigen Sie auf vorhandene Attribute, um die zugehörigen Beschreibungen anzuzeigen.
|
||||||
|
// Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Python: Aktuelle Datei",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"args": ["../Speiche_Deutschland_gmapsupp.img"],
|
||||||
|
"console": "integratedTerminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
3
.vscode/settings.json
vendored
Executable file
3
.vscode/settings.json
vendored
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"python.pythonPath": "/usr/bin/python3"
|
||||||
|
}
|
33
README.md
33
README.md
|
@ -1,33 +0,0 @@
|
||||||
# sp_replace_typ
|
|
||||||
|
|
||||||
Dieses Python-Skript passt mit Hilfe von TYP-Dateien und dem Tool
|
|
||||||
[GMT](https://www.gmaptool.eu) die Darstellung der Karte an.
|
|
||||||
|
|
||||||
Hierzu werden einige Parameter abgefragt, anhand derer die richtige
|
|
||||||
TYP-Datei ermittelt wird. Die eigentliche Arbeit verrichtet dann GMT.
|
|
||||||
|
|
||||||
## Systemvoraussetzungen
|
|
||||||
- Linux oder Windows
|
|
||||||
- Python >= 3.6
|
|
||||||
|
|
||||||
## Verwendung
|
|
||||||
Die Aufruf ist denkbar einfach. Zu beachten ist, dass es sich um ein
|
|
||||||
Kommandozeilentool handelt. Es gibt keine grafische Benutzeroberfläche.
|
|
||||||
Falls sich das Programm nicht im gleichen Verzeichnis wie die TYP-Dateien
|
|
||||||
befindet, kann das TYP-Verzeichnis angegeben werden.
|
|
||||||
|
|
||||||
Hier die Ausgabe von `sp_replace_typ.py --help`
|
|
||||||
|
|
||||||
```
|
|
||||||
usage: sp_replace_typ.py [-h] [-t TYPDIR] imgfile
|
|
||||||
|
|
||||||
Das Programm passt die Darstellung der Garmin-"Speichenkarte" an.
|
|
||||||
|
|
||||||
positional arguments:
|
|
||||||
imgfile Garmin gmapsupp-Datei
|
|
||||||
|
|
||||||
optional arguments:
|
|
||||||
-h, --help show this help message and exit
|
|
||||||
-t TYPDIR, --typdir TYPDIR
|
|
||||||
Verzeichnis mit den TYP-Dateien
|
|
||||||
```
|
|
|
@ -17,24 +17,15 @@ def get_famid_name_from_imgfile(imgfile_path):
|
||||||
# shell=True, capture_output=True, text=True).stdout.strip()
|
# shell=True, capture_output=True, text=True).stdout.strip()
|
||||||
# name = subprocess.run(f'{GMT} -i {imgfile_path} | grep ", FID " | cut -d\',\' -f 3 | sed -e \'s/ //\'',
|
# name = subprocess.run(f'{GMT} -i {imgfile_path} | grep ", FID " | cut -d\',\' -f 3 | sed -e \'s/ //\'',
|
||||||
# shell=True, capture_output=True, text=True).stdout.strip()
|
# shell=True, capture_output=True, text=True).stdout.strip()
|
||||||
|
output = subprocess.run(
|
||||||
# output = subprocess.run(
|
[f'{GMT} -i {imgfile_path}'], shell=True, capture_output=True, text=True).stdout
|
||||||
# [f'{GMT} -i "{imgfile_path}"'], shell=True, capture_output=True, text=True).stdout
|
pattern = ".* FID (\d+), (.*)"
|
||||||
|
|
||||||
session = subprocess.Popen(
|
|
||||||
[GMT, '-i', imgfile_path], stdout=subprocess.PIPE)
|
|
||||||
output, _ = session.communicate()
|
|
||||||
pattern = b".* FID (\d+), (.*)"
|
|
||||||
|
|
||||||
#pattern = ".* FID (\d+), (.*)"
|
|
||||||
match = re.search(pattern, output)
|
match = re.search(pattern, output)
|
||||||
if not match:
|
if not match:
|
||||||
sys.exit(
|
sys.exit(
|
||||||
f"Keine gültige gmapsupp-Datei: {imgfile_path}\nBitte geben Sie eine gültige Datei an.")
|
f"Keine gültige gmapsupp-Datei: {imgfile_path}\nBitte geben Sie eine gültige Datei an.")
|
||||||
|
|
||||||
fid = str(match.group(1), 'UTF-8').strip()
|
return (match.group(1), match.group(2))
|
||||||
name = str(match.group(2), 'UTF-8').strip()
|
|
||||||
return (fid, name)
|
|
||||||
|
|
||||||
|
|
||||||
def ask_for_visualization():
|
def ask_for_visualization():
|
||||||
|
@ -126,13 +117,9 @@ def main():
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description='Das Programm passt die Darstellung der Garmin-"Speichenkarte" an. ')
|
description='Das Programm passt die Darstellung der Garmin-"Speichenkarte" an. ')
|
||||||
parser.add_argument('imgfile', type=str, help='Garmin gmapsupp-Datei')
|
parser.add_argument('imgfile', type=str, help='Garmin gmapsupp-Datei')
|
||||||
parser.add_argument('-t', '--typdir', type=str,
|
parser.add_argument()
|
||||||
help='Verzeichnis mit den TYP-Dateien')
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
imgfile = args.imgfile
|
imgfile = args.imgfile
|
||||||
typ_dir = os.getcwd()
|
|
||||||
if args.typdir:
|
|
||||||
typ_dir = args.typdir
|
|
||||||
|
|
||||||
(fid, name) = get_famid_name_from_imgfile(imgfile)
|
(fid, name) = get_famid_name_from_imgfile(imgfile)
|
||||||
|
|
||||||
|
@ -140,14 +127,13 @@ def main():
|
||||||
|
|
||||||
typ_file = f'TYP_{name}_{fid}{basic}{srtm}{text}_gmapsupp.typ'
|
typ_file = f'TYP_{name}_{fid}{basic}{srtm}{text}_gmapsupp.typ'
|
||||||
|
|
||||||
print(f'\nGewählte TYP Datei: {typ_file}')
|
print(f'\nGewählte TYP Datei: {typ_file}\n')
|
||||||
print(f'Verzeichnis mit den TYP-Dateien: {typ_dir}\n')
|
|
||||||
|
|
||||||
if not os.path.isfile(typ_dir + os.sep + typ_file):
|
if not os.path.isfile(typ_file):
|
||||||
sys.exit('FEHLER: Die Typdatei ist nicht vorhanden.')
|
sys.exit('FEHLER: Die Typdatei ist nicht vorhanden.')
|
||||||
|
|
||||||
print('Wende die Typ-Datei an…')
|
print('Wende die Typ-Datei an…')
|
||||||
subprocess.run([GMT, '-wx', imgfile, typ_dir + os.sep + typ_file])
|
subprocess.run([GMT, '-wx', imgfile, typ_file])
|
||||||
print('\nFertig.')
|
print('\nFertig.')
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,5 +141,5 @@ if __name__ == "__main__":
|
||||||
if platform.system() == 'Linux':
|
if platform.system() == 'Linux':
|
||||||
GMT = './gmt'
|
GMT = './gmt'
|
||||||
else: # Windows…
|
else: # Windows…
|
||||||
GMT = 'gmt.exe'
|
GMT = './gmt.exe'
|
||||||
main()
|
main()
|
||||||
|
|
Loading…
Reference in a new issue