image-location-scan


Nameimage-location-scan JSON
Version 0.2.22 PyPI version JSON
download
home_pageNone
SummaryA tool that uses exifdata to organise geolocated image files (e.g. drones images) into a geopackage file with associated metadata. Additional features, such as can also create a webpage with a leaflet map.
upload_time2024-12-17 20:03:50
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords exiftool drone geolocation photography photogrammetry metashape leaflet folium
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## Image Location Scan

**Image Location Scan** is a powerful tool designed to extract Exif metadata from images, monitor a specified directory for changes, and maintain a synchronized [geopackage file](https://www.geopackage.org/). This script is ideal for users who need to keep track of photo metadata and visualize it on a map, especially in dynamic environments where files are frequently added, removed, or modified. Requires [exiftool](https://exiftool.org/) to be installed and callable by subprocess. Optionally scans and matches Metashape psx and psz files.

### Features

- **Directory Monitoring**: Utilizes `watchdog` to monitor a specified directory for changes and keeps a GeoPackage map updated in real-time.
- **Exif Metadata Extraction**: Extracts Exif metadata from images using `ExifTool`, including GPS coordinates, camera make and model, and more.
- **GeoPackage Synchronization**: Maintains a GeoPackage file that is updated with the latest metadata from the monitored directory.
- **HTML Map Generation**: Generates an HTML map and table to visualize the metadata, with options to include additional map layers.
- **Configurable Logging**: Supports dual logging to both console and file, with customizable log levels.
- **Persistent Observer**: Optionally persists the observer state to resume monitoring after interruptions.
- **Integration with Kart**: Supports integration with Kart for version control and remote repository synchronization.
- **Additonal Metadata**: Manually add key/value metadata by saving `metadata.xlsx` files in the directory structure.

### Installation

To install the package, use the following command:

```bash
pip install image-location-scan
```

### Usage

The script can be run from the command line with various options to customize its behavior. Below is an example of how to use it:

```bash
py -m exifScan '\\file\Shared\SEESPhotoDatabase' --config .\config.json --watchDirectory
```

### Command Line Arguments

- `path`: The path to scan for Exif data (required).
- `--WorkDirectory`: The working directory (defaults to current working directory).
- `--MetashapeDirectory`: Directory to search for Metashape project files.
- `--KartRemote`: Kart remote repository URL for pushing updates.
- `--KartDirectory`: Directory for the Kart repository.
- `--GeopackageDirectory`: Directory to save the GeoPackage file (defaults to WorkDirectory).
- `--LogDirectory`: Directory to save log files (defaults to current directory).
- `--OutputGeopackage`: Name of the output GeoPackage file (defaults to `Photos.gpkg`).
- `--htmlFolder`: Directory to save the HTML map and table.
- `--mapFileName`: Name of the HTML map file (defaults to `map.html`).
- `--otherMapLayers`: List of paths to additional map layers.
- `--otherMapLayerNames`: List of names for additional map layers.
- `--ExifOutputFile`: Name of the Exif output file (defaults to `outdb`).
- `--readExifFromOutputFile`: Read Exif data from the output file instead of scanning.
- `--recursive`: Scan directories recursively.
- `--ignoreDirs`: List of directories to ignore during scanning.
- `--ignoreMetashape`: Ignore directories containing `.files` and `auto-project`.
- `--persistObserver`: Persist the observer state to resume monitoring after interruptions.
- `--dualLogging`: Enable logging to both console and file.
- `--groupByTags`: List of tags to group by. Always groups by folder, but can also split into the groups specified by this flag (defaults to `["Make", "Model"]`).
- `--xyTagNames`: List of tag names for x and y coordinates (defaults to `['GPSLongitude', 'GPSLatitude']`).
- `--zTagName`: Tag name for z coordinate (defaults to `GPSAltitude`).
- `--imageFileExtensions`: List of image file extensions to scan (defaults to `['JPG']`).
- `--metashapeCacheTime`: Time to keep Metashape data cached (in minutes, defaults to 120).
- `--pollingInterval`: Time (in seconds) between polling intervals.
- `--config`: Path to a JSON config file.
- `--watchDirectory`: Watch directory for changes after initial scan.
- `--logLevel`: Set the logging level (choices: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`). Only if dualLogging is disabled.

### Dependencies

- `argparse`
- `sys`
- `json`
- `logging`
- `os`
- `time`
- `datetime`
- `copy`
- `threading`
- `subprocess`
- `folium`
- `pandas`
- `geopandas`
- `ExifTool`
- `watchdog`

### Acknowledgments

Thanks to Phil Harvey and his excellent exiftool software.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "image-location-scan",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "exiftool, drone, geolocation, photography, photogrammetry, Metashape, leaflet, folium",
    "author": null,
    "author_email": "Jonathan Davidson <jrjdavidson@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/64/eb/29f894ccc3ae3c79a20b62befb3f3e1998f89ede430ffed038e6ecd0e80a/image_location_scan-0.2.22.tar.gz",
    "platform": null,
    "description": "## Image Location Scan\r\n\r\n**Image Location Scan** is a powerful tool designed to extract Exif metadata from images, monitor a specified directory for changes, and maintain a synchronized [geopackage file](https://www.geopackage.org/). This script is ideal for users who need to keep track of photo metadata and visualize it on a map, especially in dynamic environments where files are frequently added, removed, or modified. Requires [exiftool](https://exiftool.org/) to be installed and callable by subprocess. Optionally scans and matches Metashape psx and psz files.\r\n\r\n### Features\r\n\r\n- **Directory Monitoring**: Utilizes `watchdog` to monitor a specified directory for changes and keeps a GeoPackage map updated in real-time.\r\n- **Exif Metadata Extraction**: Extracts Exif metadata from images using `ExifTool`, including GPS coordinates, camera make and model, and more.\r\n- **GeoPackage Synchronization**: Maintains a GeoPackage file that is updated with the latest metadata from the monitored directory.\r\n- **HTML Map Generation**: Generates an HTML map and table to visualize the metadata, with options to include additional map layers.\r\n- **Configurable Logging**: Supports dual logging to both console and file, with customizable log levels.\r\n- **Persistent Observer**: Optionally persists the observer state to resume monitoring after interruptions.\r\n- **Integration with Kart**: Supports integration with Kart for version control and remote repository synchronization.\r\n- **Additonal Metadata**: Manually add key/value metadata by saving `metadata.xlsx` files in the directory structure.\r\n\r\n### Installation\r\n\r\nTo install the package, use the following command:\r\n\r\n```bash\r\npip install image-location-scan\r\n```\r\n\r\n### Usage\r\n\r\nThe script can be run from the command line with various options to customize its behavior. Below is an example of how to use it:\r\n\r\n```bash\r\npy -m exifScan '\\\\file\\Shared\\SEESPhotoDatabase' --config .\\config.json --watchDirectory\r\n```\r\n\r\n### Command Line Arguments\r\n\r\n- `path`: The path to scan for Exif data (required).\r\n- `--WorkDirectory`: The working directory (defaults to current working directory).\r\n- `--MetashapeDirectory`: Directory to search for Metashape project files.\r\n- `--KartRemote`: Kart remote repository URL for pushing updates.\r\n- `--KartDirectory`: Directory for the Kart repository.\r\n- `--GeopackageDirectory`: Directory to save the GeoPackage file (defaults to WorkDirectory).\r\n- `--LogDirectory`: Directory to save log files (defaults to current directory).\r\n- `--OutputGeopackage`: Name of the output GeoPackage file (defaults to `Photos.gpkg`).\r\n- `--htmlFolder`: Directory to save the HTML map and table.\r\n- `--mapFileName`: Name of the HTML map file (defaults to `map.html`).\r\n- `--otherMapLayers`: List of paths to additional map layers.\r\n- `--otherMapLayerNames`: List of names for additional map layers.\r\n- `--ExifOutputFile`: Name of the Exif output file (defaults to `outdb`).\r\n- `--readExifFromOutputFile`: Read Exif data from the output file instead of scanning.\r\n- `--recursive`: Scan directories recursively.\r\n- `--ignoreDirs`: List of directories to ignore during scanning.\r\n- `--ignoreMetashape`: Ignore directories containing `.files` and `auto-project`.\r\n- `--persistObserver`: Persist the observer state to resume monitoring after interruptions.\r\n- `--dualLogging`: Enable logging to both console and file.\r\n- `--groupByTags`: List of tags to group by. Always groups by folder, but can also split into the groups specified by this flag (defaults to `[\"Make\", \"Model\"]`).\r\n- `--xyTagNames`: List of tag names for x and y coordinates (defaults to `['GPSLongitude', 'GPSLatitude']`).\r\n- `--zTagName`: Tag name for z coordinate (defaults to `GPSAltitude`).\r\n- `--imageFileExtensions`: List of image file extensions to scan (defaults to `['JPG']`).\r\n- `--metashapeCacheTime`: Time to keep Metashape data cached (in minutes, defaults to 120).\r\n- `--pollingInterval`: Time (in seconds) between polling intervals.\r\n- `--config`: Path to a JSON config file.\r\n- `--watchDirectory`: Watch directory for changes after initial scan.\r\n- `--logLevel`: Set the logging level (choices: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`). Only if dualLogging is disabled.\r\n\r\n### Dependencies\r\n\r\n- `argparse`\r\n- `sys`\r\n- `json`\r\n- `logging`\r\n- `os`\r\n- `time`\r\n- `datetime`\r\n- `copy`\r\n- `threading`\r\n- `subprocess`\r\n- `folium`\r\n- `pandas`\r\n- `geopandas`\r\n- `ExifTool`\r\n- `watchdog`\r\n\r\n### Acknowledgments\r\n\r\nThanks to Phil Harvey and his excellent exiftool software.\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A tool that uses exifdata to organise geolocated image files (e.g. drones images) into a geopackage file with associated metadata. Additional features, such as can also create a webpage with a leaflet map.",
    "version": "0.2.22",
    "project_urls": null,
    "split_keywords": [
        "exiftool",
        " drone",
        " geolocation",
        " photography",
        " photogrammetry",
        " metashape",
        " leaflet",
        " folium"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "811935626d1d3522c7ce29e7e29f230eac5035a00eacc4f0a5daeef66242100d",
                "md5": "3d929fe396ce42dec57284afe0c03cf6",
                "sha256": "aae7a6ed02eb160724eeb3e8b7d3fa3a712e75ed8f88ffbb5d8189563bc9a1d3"
            },
            "downloads": -1,
            "filename": "image_location_scan-0.2.22-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3d929fe396ce42dec57284afe0c03cf6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 50603,
            "upload_time": "2024-12-17T20:03:47",
            "upload_time_iso_8601": "2024-12-17T20:03:47.259231Z",
            "url": "https://files.pythonhosted.org/packages/81/19/35626d1d3522c7ce29e7e29f230eac5035a00eacc4f0a5daeef66242100d/image_location_scan-0.2.22-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "64eb29f894ccc3ae3c79a20b62befb3f3e1998f89ede430ffed038e6ecd0e80a",
                "md5": "0236defdc4be35e7303febbbcc7a3a69",
                "sha256": "3582084f53a8af649b3b95e756970d5b4e0446cb2b424e8a58c39447685b881f"
            },
            "downloads": -1,
            "filename": "image_location_scan-0.2.22.tar.gz",
            "has_sig": false,
            "md5_digest": "0236defdc4be35e7303febbbcc7a3a69",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 58693,
            "upload_time": "2024-12-17T20:03:50",
            "upload_time_iso_8601": "2024-12-17T20:03:50.307248Z",
            "url": "https://files.pythonhosted.org/packages/64/eb/29f894ccc3ae3c79a20b62befb3f3e1998f89ede430ffed038e6ecd0e80a/image_location_scan-0.2.22.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-17 20:03:50",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "image-location-scan"
}
        
Elapsed time: 0.45961s