{"id":37320070,"url":"https://github.com/csiro/ibenthos-geotagging-tool","last_synced_at":"2026-01-16T03:17:03.063Z","repository":{"id":309988753,"uuid":"1008774031","full_name":"csiro/ibenthos-geotagging-tool","owner":"csiro","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-15T02:30:03.000Z","size":19487,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-10T06:42:10.556Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/csiro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-26T04:41:20.000Z","updated_at":"2025-08-15T02:28:41.000Z","dependencies_parsed_at":"2025-08-15T02:35:03.107Z","dependency_job_id":null,"html_url":"https://github.com/csiro/ibenthos-geotagging-tool","commit_stats":null,"previous_names":["csiro/ibenthos-geotagging-tool"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/csiro/ibenthos-geotagging-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro%2Fibenthos-geotagging-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro%2Fibenthos-geotagging-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro%2Fibenthos-geotagging-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro%2Fibenthos-geotagging-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csiro","download_url":"https://codeload.github.com/csiro/ibenthos-geotagging-tool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro%2Fibenthos-geotagging-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T03:17:02.938Z","updated_at":"2026-01-16T03:17:03.047Z","avatar_url":"https://github.com/csiro.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iBenthos Geotagging Tool\n\nA desktop application for geotagging underwater photos using GPS data from transect files. The application helps marine researchers synchronize underwater images with GPS tracks and export metadata in iFDO (Image File Data Object) format for marine research purposes.\n\n## Features\n\n- **Photo Geotagging**: Automatically add GPS coordinates to underwater photos using GPX track data\n- **Time Synchronization**: Sync camera timestamps with GPS timestamps using reference photos\n- **Marine Research Metadata**: Export comprehensive iFDO metadata files for FAIR data principles\n- **KML Export**: Generate KML/KMZ files with geotagged photo locations for visualization in Google Earth\n- **Attribution Metadata**: Embed researcher and copyright information directly into photo EXIF data\n- **Cross-Platform**: Native desktop applications for Windows and macOS\n\n## Requirements\n\n- Python 3.11 or higher (for development)\n- uv for dependency management\n- ExifTool (automatically downloaded during build)\n\n## Development Setup\n\n### Prerequisites\n\n1. Install Python 3.11+ from [python.org](https://python.org)\n2. Install uv:\n   ```bash\n   curl -LsSf https://astral.sh/uv/install.sh | sh\n   ```\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/csiro/ibenthos-geotagging-tool.git\n   cd ibenthos-geotagging-tool\n   ```\n\n2. Install dependencies using Poetry:\n   ```bash\n   uv venv\n   uv pip install .\n   source .venv/bin/activate\n   ```\n\n3. Run the application in development mode:\n   ```bash\n   python src/main.py\n   ```\n\n### Testing\n\nRun the test suite:\n```bash\npytest\n```\n\nRun specific test files:\n```bash\npytest tests/test_user_input_model.py\n```\n\n## Building for Distribution\n\n### macOS (Universal x86)\n\nThe macOS build targets x86_64 architecture, which runs natively on Intel Macs and via Rosetta on Apple Silicon Macs.\n\n#### Automated Build\n\n```bash\n./build_x86.zsh\n```\n\n#### Manual Build Steps\n\n1. Build the application bundle:\n   ```bash\n   pyinstaller --clean --noconfirm main.spec\n   ```\n\n#### Building Universal x86 on Apple Silicon\n\nTo ensure x86_64 compatibility on Apple Silicon Macs:\n\n1. Install Python using the universal2 build from python.org\n2. Set your terminal to Rosetta mode: Right-click iTerm2 → Get Info → Use Rosetta\n3. Create an x86_64 virtual environment:\n   ```bash\n   python -m venv x86_builder\n   source x86_builder/bin/activate\n   ```\n4. Install packages with x86_64 architecture:\n   ```bash\n   arch -x86_64 pip install poetry\n   arch -x86_64 poetry install\n   ```\n5. Set `target_arch = \"x86_64\"` in `main.spec`\n6. Build with PyInstaller\n\n### Windows\n\n#### Automated Build\n\n```powershell\n./build_x86.ps1\n```\n\nThis script:\n- Builds the application bundle using PyInstaller\n- Downloads ExifTool for Windows\n- Creates a Windows installer using Inno Setup\n\n#### Manual Build Steps\n\n1. Build the application:\n   ```bash\n   poetry run pyinstaller --clean --noconfirm main.spec\n   ```\n\n2. The Windows installer setup is defined in the `.iss` file and can be compiled with Inno Setup.\n\n## Dependencies and Acknowledgments\n\nThis application is built using the following open-source libraries and tools:\n\n### Core Framework\n- **PySide6** - Cross-platform GUI framework by The Qt Company\n- **Python** - Programming language by the Python Software Foundation\n\n### Image and GPS Processing\n- **geotag-pt** - GPS photo tagging library (CSIRO internal)\n- **PyExifTool** - Python wrapper for ExifTool by Phil Harvey\n- **Pillow (PIL)** - Python Imaging Library for image processing\n- **simplekml** - KML generation library\n\n### Data and Configuration\n- **PyYAML** - YAML parser and emitter for Python\n- **NumPy** - Numerical computing library\n\n### Build and Distribution\n- **PyInstaller** - Packaging Python applications\n- **Poetry** - Dependency management and packaging\n- **Inno Setup** - Windows installer creator (Windows builds)\n\n### External Tools\n- **ExifTool** by Phil Harvey - Command-line application for reading, writing and editing meta information\n\n## License\n\nThis project is distrbuted under the [LGPLv3](LICENSE) license.\n\n## Citation\n\nIf you use this software in your research, please cite:\n\n```\niBenthos Geotagging Tool. (2025). Commonwealth Scientific and Industrial Research Organisation (CSIRO). \nhttps://github.com/csiro/ibenthos-geotagging-tool\n```\n\n---\n\n**Author**: Brendan Do (brendan.do@csiro.au)  \n**Organization**: Commonwealth Scientific and Industrial Research Organisation (CSIRO)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsiro%2Fibenthos-geotagging-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsiro%2Fibenthos-geotagging-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsiro%2Fibenthos-geotagging-tool/lists"}