This is a tool designed to take simple latitude/longitude JSON's and add various Google Street View metadata to them. This includes:
- Temporal data
- Date
- Time
- Month
- Year
- Geographical data
- Country
- State
- Locality
- Population1
- Elevation
- Terrestrial data
- Solar azimuth (direction)
- Solar altitude (height)
- Cloud cover
- Precipitation
- Snow depth
- Driving direction
The underlying script works around the maps folder; the paths can be configured in config.json. maps/base is a convenient folder to store all maps you work with, however you can run the script from anywhere. For any map you wish to tag, there are two options:
- Run
MetaTag.exefrom releases for a simple GUI and visualization python metatag.py <command: tag, delete, clear> <mapfile> <arguments>
- Download the latest version from Releases
- Extract and run
MetaTag.exe
git clone https://github.com/ccmdi/MetaTag.gitpip install -r requirements.txt
For any given map, simply upload the file. You will see a view showing settings to add on the left, and a simplistic map viewer on the right. Checking the checkboxes and clicking submit will run the script with for desired attributes, and refresh the map view with the new map file. It will also be outputted to the maps/tagged folder for external use.
If you are running metatag.py, this is the list of arguments that are presently available. Each section name denotes an action, followed by the command's name.
-t --time-d --date-m --month-y --year-a --country-b --state-c --locality-s --solarDirection/altitude cardinal directions-S --SOLARDirection/altitude exact (° rounded to nearest integer)-u --cloudsCloud cover classification (Overcast, Mostly Cloudy, Partly Cloudy, Clear)-U --CLOUDSCloud cover exact (% rounded to nearest integer)-p --precipitationPrecipitation (mm)-w --snowSnow depth (m)-e --elevationElevation (m)-D --drivingdirectionDriving direction (°)-H --headingOrient heading to [drivingdirection, solar,<heading>,<pitch>]
--round <int>Integer by which to round time (nearest 15 min, 30 min, etc.)2--loadLoads date from tags--accuracy <int>Accuracy of date fetch (in seconds) -- defaults to 1-n --no-cache-inNo cache input (ignores existing meta file; this will overwrite)-N --no-cache-outNo cache output (does not create meta file)-M --metaOnly creates meta file, no tagging
-b --baseBase file-m --metaAssociated meta file-t --taggedAssociated tagged file(s)-c --cascadeAll associated files
--format [percent/count]Format of output -- defaults to 'count'--classify [direction, altitude, cloud_cover_event, none]Post-processing classifier for attribute (can use 'none' in the case of multiple attributes)--include-noneInclude 'none' values for attribute as seperate column
Tagged files are designed for elements you want visible, in whatever application is using it. map-making.app is an example of an existing Street View map viewer that is quite effective, though it becomes hard to handle at more than a thousand tags. MetaTag includes metadata associated with map-making.app, like tag ordering and colors. These are enabled by default, but once again can be changed in configuration.
Cloud cover, precipitation and snow depth are not precise. These attributes are fetched at hourly intervals and rounded lat/lng with historic data from Open-Meteo. This data is fantastic and wide-ranging, but low resolution; do not expect precise results. Also, file size is a concern that is not addressed at the moment. There is often duplicate data in several places with the current setup, with the intention to isolate your data; the original file is never touched. Likewise, with plain text, file size is hardly a concern, so duplication of data shouldn't be either. However, it would be ideal to remove the need for a tagged folder at all.
Inspired by this project by macca7224.
