Coder Social home page Coder Social logo

dewey / my-life-in-weeks Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 0.0 2.38 MB

Scanning your photo library and creating a high level overview over countries you visited. Just for fun. ๐ŸŒŽ

Go 88.33% HTML 9.76% Shell 1.91%
quantified-self waitbutwhy

my-life-in-weeks's Introduction

My Life in Weeks

This is a small fun project inspired by KrauseFx's howisfelix.today, which, in turn, is inspired by Wait But Why's project.

I decided to do it based on the EXIF data of my personal photo collection in Photos.app. The caveat there is that properly GPS tagged data is only available from the point in time when I got my first iPhone (January 2008).

Output

Here's a work in progress screenshot, with around 50% of my images correctly tagged with the location (I ran out of API credits).

Screenshot 2023-08-14 at 19 07 58 png@2x

Usage

This is a two-step process, first we are scanning the Photos.app library and extracting the GPS coordinates. Then we use a service like Positionstack.com to reverse geocode these into Country / City information.

All this information is stored in a local SQLite database. Running the import step another time will skip all entries which are in the database already.

While the data is importing you can already watch the progress by starting the web interface of the tool (See: "Generate report" below).

Configuration

  • POSITIONSTACK_TOKEN: Add your API token from http://positionstack.com
  • PHOTO_PATH: The absolute path to your Photos.app originals directory
  • LOCATION_BACKEND (Default: positionstack): The backend used to translate coordinates to country / city information.

Import data

Make sure Exiftool is installed and available in your $PATH.

Run ./run_develop.sh to scan your Photos.app library.

Generate report

Run ./run_develop_web.sh to generate the report. You can look at it on "http://localhost:8080" by default.

Other thoughts

  • It might be more efficient to dig into the SQLite database of Photos.app directly. The schema is not straight forward though. This could be implemented as a different importer plugin.

my-life-in-weeks's People

Contributors

dewey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.