Easily convert, merge and compress GPX and KML files.
Project description
Welcome to gpx-kml-converter
Welcome to the GPX KML Converter application, a versatile tool designed for processing geographical data files (GPX and KML). The application offers both an intuitive Graphical User Interface (GUI) and a robust command line interface for various file manipulation tasks.
Installation
Download from PyPI.
💾 For more installation options see install.
pip install gpx-kml-converter
Run GUI from command line
gpx-kml-converter-gui
Run CLI from command line
gpx-kml-converter-cli --help
2. Main Features 🚀
2.1. Graphical User Interface (GUI) 🖥️
The application features a comprehensive GUI that simplifies the process of managing and processing your geographical data.
-
Dual File Lists: The GUI presents two distinct listboxes:
-
Input Files: Displays the files selected by the user for processing. 📁
-
Generated Files: Shows the output files produced after a successful processing operation. 📊
-
-
File Information at a Glance: Both listboxes display not only the file names but also their respective file sizes in kilobytes, providing immediate feedback on file changes (e.g., after compression). 📏
-
Interactive File Access: Files listed in both the input and generated file sections are clickable. Double-clicking a file will open it using your operating system's default application or launch the file explorer with the file selected. 🖱️📂
-
Integrated Logging: A dedicated log output area provides real-time feedback on application operations, warnings, and errors. Directory paths mentioned in the logs are clickable, allowing direct navigation to the output folders. 📝🔗
2.2. GPX/KML File Processing Capabilities 🗺️
The core strength of the application lies in its ability to handle GPX and KML files with several powerful processing modes:
-
Compression: Reduce the size of your track files by optimizing the number of track points and cleaning unnecessary metadata. 📉
-
Merging: Combine multiple GPX/KML files into a single, consolidated GPX file, ideal for creating continuous routes from fragmented data. ➕
-
POI Extraction: Automatically identify and extract the starting points of tracks and routes from your files, saving them as Waypoints (Points of Interest) in a new GPX file. 📍
3. Detailed Features 🔍
3.1. File Management 🗃️
-
Adding Input Files: Use the "Open Files" button or the "File -> Open..." menu option to select one or multiple GPX, KML, or even ZIP archives containing GPX/KML files. The application intelligently extracts and lists valid geographical data files. ➕📂
-
Removing Input Files:
-
"Remove Selected" Button: Select one or more files in the "Input Files" listbox and click this button to remove them from the processing queue. 🗑️
-
"Clear Input Files" Button: Remove all files from the "Input Files" list. 🧹
-
-
Clearing Generated Files: The "Clear Generated Files" button allows you to empty the output list, useful for managing the display after multiple processing runs. ✨
3.2. Processing Logic 🧠
-
Selective Processing: If you have selected specific files in the "Input Files" list, only those files will be processed when a "Compress," "Merge," or "Extract POIs" operation is initiated. If no files are selected, the application will process all files currently in the input list. ✅
-
Output Directory Management: Generated files are saved into a new directory, automatically named with a timestamp (e.g.,
gpx_processed_YYYY-MM-DD_HHMMSS), ensuring clean organization of your outputs. This directory path is explicitly logged and made clickable. 📁📅
3.3. Data Optimization ⚙️
The underlying processing engine includes sophisticated optimization techniques:
-
min_distParameter: During compression and merging, the application uses a configurable minimum distance parameter (min_dist). Track points closer than this distance are removed, reducing file size without significant loss of detail. 🤏 -
Metadata Cleaning: Irrelevant metadata (e.g., time, extensions, comments, descriptions, symbols) is stripped from points, tracks, and routes to further reduce file size and declutter the data. 🧼
-
Elevation Adjustment:
-
The application attempts to integrate SRTM (Shuttle Radar Topography Mission) elevation data to correct or enhance elevation values in your tracks and waypoints. ⛰️
-
If SRTM data cannot be initialized (e.g., due to network issues or library unavailability), the application gracefully falls back to using the original elevation data present in the GPX/KML files or defaults to zero, ensuring continued functionality. Warnings are logged if SRTM is unavailable. ⚠️
-
3.4. Logging and Configuration 🚦
-
Real-time Logging: The "Log Output" pane provides detailed information about every operation, helping you monitor progress and troubleshoot issues. 🪵
-
Configurable Log Level: Adjust the verbosity of the log output (DEBUG, INFO, WARNING, ERROR, CRITICAL) directly from the GUI, allowing you to control the level of detail displayed. 🎚️
-
Settings Dialog: Access a comprehensive settings dialog from the "Options -> Settings" menu. Here, you can configure various application parameters, including
min_dist, date formats, and other internal settings. Changes made here are saved toconfig.yamlfor persistence across sessions. 🔧💾
4. Usage ▶️
To run the GUI application, execute the following command in your project's root directory:
Run with CLI from source
python -m gpx_kml_converter.cli [OPTIONS] path/to/file
Run with GUI from source
python -m gpx_kml_converter.gui
Once the GUI is launched, you can:
-
Open Files: Click "Open Files" to add GPX/KML files to the input list. ➕📁
-
Select Files (Optional): Click on files in the input list to select them for specific processing. If no files are selected, all loaded input files will be processed. ✅
-
Choose a Processing Mode: Click one of the processing buttons ("Compress," "Merge," "Extract POIs") to start the operation. ▶️
-
Monitor Progress: Observe the log output and the progress bar. ⏳
-
View Results: Check the "Generated Files" list for your processed outputs. Double-click an output file to open it or navigate to its containing directory. 🌟
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gpx_kml_converter-1.0.5.tar.gz.
File metadata
- Download URL: gpx_kml_converter-1.0.5.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8a3fe9dbe983e32cbcd3f6f946f159e4dc851aa9d94b6d142ca11e65fffffa9
|
|
| MD5 |
4b77dfe1822f31828988174136c5aca6
|
|
| BLAKE2b-256 |
507bce5c6c786c2990c406bfdd361151fd464964b8d0b5f99a31a3ac60db492b
|
File details
Details for the file gpx_kml_converter-1.0.5-py3-none-any.whl.
File metadata
- Download URL: gpx_kml_converter-1.0.5-py3-none-any.whl
- Upload date:
- Size: 38.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40530beed4032ced53223352c905d753d8d0c38e35c6a2d768edd1503dd9e4ad
|
|
| MD5 |
97ca1bde703d42ae93c9730dc9ac2d92
|
|
| BLAKE2b-256 |
f96602d4e65daa7a0ce1ea2039b8e2491c22fe6948e81a01290ff345f8952fa8
|