Experiments with overlaying time-series satellite imagery on a map

Overview

Videomap.earth

Experiments with overlaying time-series satellite imagery as video over maps.

TODO: Add instructions on generating video files using stac2video.

Frontend Setup

The frontend fetches a GeoJSON FeatureCollection representing the video files that need to be displayed alongwith their bounding boxes.

The default location for the video file is in videos/videos.geojson. If you want to fetch from somewhere else, you can pass a custom url parameter in the querystring for the page.

So, if you are running the site at http://localhost:9000 and have your GeoJSON served at http://example.com/myvideos.geojson, you can go to http://localhost:9000/?url=http://example.com/myvideos.geojson . You will need to ensure that your GeoJSON file as well as all videos are being served with headers to enable CORS.

The GeoJSON feature collection has the following top-level properties:

  • base_url: The Base URL for the video files. You can omit this or leave as empty string if specifying absolute URLs for videos.
  • center: REQUIRED: The point the map should be centered on when loading
  • zoom: REQUIRED: The zoom level of the map when loading
  • frames: Optional: Object containing metadata to be displayed per frame / timecode. See videos.geojson for an example.

The FeatureCollection must also contain a property called features which is an array of GeoJSON features. Each feature MUST:

  • Be of the type Polygon
  • The coordinates of the Polygon must be an array, with a single array inside it, which has 5 members, each of which is an array of [lng, lat]. See the example GeoJSON file.
  • Each feature must have a property called url which is the path to the video file. This can be a path relative to the base_url or an absolute URL. If it is an absolute URL coming from another domain, it will need to be served with CORS headers.

See videos/videos.geojson for an example.

If you are running this yourself, use your own Mapbox token by editing the mapboxgl.accessToken value in index.js.

To run, use your favourite method to serve a local web-server in this folder. With python3 this is:

    python3 -m http.server 9000

Then, go to http://localhost:9000 in your browser.

You might also like...

Well Read is a website for tracking your reading of long book series.

Well Read is a website for tracking your reading of long book series.

Read without losing the plot. Well Read helps you organize your notes about books you're reading, so you're never lost when starting a new volume.

Dec 15, 2022

🎬 Movie, TV Series and Actor website made with TMDb, Next.js and TailwindCSS.

🎬 Movie, TV Series and Actor website made with TMDb, Next.js and TailwindCSS.

Movie App Demo Getting Started 🛠 Development Server npm install --s --f && npm run dev # or yarn install && yarn dev 🛠 Production Server npm install

Dec 27, 2022

Application for organizing, rating, and sharing TV series and movies that you are watching or would like to watch.

Application for organizing, rating, and sharing TV series and movies that you are watching or would like to watch.

Watch This! We're living in an age of virtually unlimited ntertainment options, and keeping up with it all can be a little overwhelming. Using the Wat

Jun 13, 2022

Movies and series web app developed using NextJS.

Movies and series web app developed using NextJS.

Disney+ Movies and series web app developed using NextJS. Deployed Link : https://disney-clone-ndmiypj8n-suchitd11.vercel.app/ Preview Login Homescree

Jun 28, 2022

This is for homework submission of Filecoin Chinese Education Series - Coding with Filecoin.

This is for homework submission of Filecoin Chinese Education Series - Coding with Filecoin.

Coding-with-Filecoin-Homework 课程简介 随着互联网和大数据技术的发展,我们正愈发依赖中心化的服务来存储和处理相关数据。但这背后有两个潜在的问题:用户不能完全控制自身数据的使用与传播,且很难验证公开数据的完整性与可靠性。为了解决这两个问题,新一代的协议和点对点网络已经问世

Jul 14, 2022

A plugin that can query multiple APIs for movies, series, anime, games, music and wiki articles, and import them into your vault.

Obsidian Media DB Plugin A plugin that can query multiple APIs for movies, series, anime, games, music and wiki articles, and import them into your va

Dec 21, 2022

A web app demonstrating how the Fourier series can be used to approximate user-inputted line drawing

Fourier Series Animation An interactive React web app that demonstrates how an arbitrary user-inputted line drawing can be approximated using the Four

Dec 22, 2022

Make your kids happier with a custom TV offline series from Juhuhu :))

Juhuhu Downloader Simple downloader which takes the array of streams with defined duration and number of sub-streams and make an offline version of Ju

Oct 12, 2022

A time-based one-time password (TOTP) generator and authenticator for Gun DB

A time-based one-time password (TOTP) generator and authenticator for Gun DB

Entangler A time-based one-time password (TOTP) generator and authenticator for Gun DB Entangler generates a 6 digit passcode every 30 seconds. It gen

Nov 9, 2022
Comments
  • Fix weirdness on page load

    Fix weirdness on page load

    Right now, we wait for the map load event, and then on that event pause all the videos.

    This is terrible for multiple reasons: the videos tend to load before the map load event fires, and at different times - this means that the videos start playing at different times, and then pause at different times, making the first render of the page before hitting Play look really awkward.

    This is a bit tricky to solve because I'm not sure how to:

    • Not autoplay the videos and start them in a paused state, and I'm not convinced this will solve it really. Would have to look at the internals of the VideoLayer implementation to see how one might do this.

    I think what I want to do for now is:

    • Listen to the loadedmetadata or so event on the Video elements. Once we know that the loadedmetadata event has fired for all the videos, set all their currentTime to 0, and play. So we keep the autoplay behaviour, just have a few seconds before the videos "get in sync"
    • Display some loading indicator while all this happens so the user doesn't get weird flashes (or at least sees a loading indicator to know something is "still happening")

    I feel like I have a pretty clear idea of what's happening and what's needed to fix, so can take a stab at this.

    cc @nerik @yellowcap

    opened by batpad 0
Owner
Development Seed
Development Seed
A Web UI toolkit for creating rapid prototypes, experiments and proof of concept projects.

MinimalComps2 A Web UI tookkit for creating rapid prototypes, experiments and proof of concept projects. The site: https://www.minimalcomps2.com/ Full

Keith Peters 32 Apr 18, 2022
aka Scaletor, take screenshots of a piece of a map and scale/compare with other parts of the map

scale-a-tron A quick-and-dirty map that lets you compare one area to another. Draw a shape around a region, zoom in to another place on the map, and c

Stamen Design 24 Nov 7, 2022
A Node.js microservice to store and query time series data

Time series storage microservice This is a simple Node.js application which allows the storage and query of time series datasets in an InfluxDB 2.0 in

JTEKT 3 Apr 25, 2022
A book series on JavaScript. @YDKJS on twitter.

You Don't Know JS Yet (book series) - 2nd Edition This is a series of books diving deep into the core mechanisms of the JavaScript language. This is t

Kyle Simpson 162.7k Dec 29, 2022
Reference for How to Write an Open Source JavaScript Library - https://egghead.io/series/how-to-write-an-open-source-javascript-library

Reference for How to Write an Open Source JavaScript Library The purpose of this document is to serve as a reference for: How to Write an Open Source

Sarbbottam Bandyopadhyay 175 Dec 24, 2022
It maintains my version of js notes which I learned from the famous Namaste Javascript Youtube Series by Akshay Saini.

Welcome to Namaste Javascript Notes ?? ❓ what it is This repo maintains my version of javascript notes which I learned from the famous Namaste Javascr

Alok Raj 682 Jan 4, 2023
Code accompanying my illustrated Data structures video series on YouTube

Code accompanying my illustrated Data structures video series on YouTube

Kamran Ahmed 122 Dec 10, 2022
This is a Netflix clone where you can watch movies or series

Netlfix Clone This is a Netflix clone where you can watch movies or series. Visit Now ?? Things I Implemented SignIn/SignUp Movie/Series Filter Watch

Neelesh Singh 3 Dec 1, 2022
Use your web inspector to hack your way through a series of challenges.

hacker-challenge Use your inspector to hack your way through a series of challenges. Made for those who are new to the inspector. A web inspector is a

jessicard 0 Jun 17, 2022
Movies and series web app developed using NextJS.

Disney+ Clone Movies and series web app developed using NextJS. Deployed Link : https://disney-clone-ndmiypj8n-suchitd11.vercel.app/ Preview Login Hom

Suchit Deshmukh 16 Dec 9, 2022