<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://blog.geo.ai/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.geo.ai/" rel="alternate" type="text/html" /><updated>2026-05-01T11:45:26+00:00</updated><id>https://blog.geo.ai/feed.xml</id><title type="html">The Geo Blog</title><subtitle>Marking places with meaning</subtitle><entry><title type="html">Upgrading to the new Synced</title><link href="https://blog.geo.ai/Synced-Upgrade-Here/" rel="alternate" type="text/html" title="Upgrading to the new Synced" /><published>2024-10-12T00:00:00+00:00</published><updated>2024-10-12T00:00:00+00:00</updated><id>https://blog.geo.ai/Synced-Upgrade-Here</id><content type="html" xml:base="https://blog.geo.ai/Synced-Upgrade-Here/"><![CDATA[<p>We’re superhype to welcome you to the new Synced, which is now live!</p>

<p><img src="/images/2024-10-12-Synced-Upgrade-Here.jpg" alt="_config.yml" />
<em>artwork by <a href="https://deepmind.google/technologies/imagen-3/">Imagen 3</a></em></p>

<h3 id="whats-in-the-new-synced">What’s in the new Synced?</h3>
<p>Some big (and many smaller) changes to elevate your exploring experience, including:</p>

<ul>
  <li>
    <p><strong>Dashboards</strong> - You can create dashboards to follow regions of interest. Dashboards gather
marks that you and others leave in the region along with other regional updates.</p>
  </li>
  <li>
    <p><strong>Geo-bounties (private beta)</strong> - Want specific kinds of information on your dashboards? You will be able to 
issue geo-bounties to other Synced users for collecting data of interest. And you’ll be 
able to earn paid-bounties for gathering information others would like. (<strong>get in touch to trial these</strong>)</p>
  </li>
  <li>
    <p><strong>A new interface</strong> - Our new interface is based on your feedback and you’ll find it significantly 
easier to use.</p>
  </li>
  <li>
    <p><strong>Progressive Web Apps (PWAs)</strong> - Web technology has advanced so we can implement the above just 
as well with web apps as we could with native mobile apps. You can also now install apps directly from the web with PWA technology.</p>
  </li>
</ul>

<h3 id="how-to-install-it">How to install it</h3>
<p>The old Synced apps have ceased to function and will no longer be available in the app stores. The new Synced is now installable via the web itself! To upgrade:</p>

<ul>
  <li>Uninstall your existing Synced app if you have it installed.</li>
  <li>Visit the Synced <a href="https://synced.to">homepage</a> in your mobile browser.</li>
  <li>On Android (Chrome), go to the menu and select “Add to Home Screen”.</li>
  <li>On iOS (Safari), tap the “Share” icon, and select “Add to Home Screen”.</li>
  <li>Click on the icon to open the app, login and you’ll find all your existing marks nestled in a shiny new user interface.</li>
</ul>

<p>&lt;3 for your continued support!</p>

<p><a href="https://twitter.com/syncedto">- Tejas</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[We’re superhype to welcome you to the new Synced, which is now live!]]></summary></entry><entry><title type="html">The Synced Upgrade is Almost Here</title><link href="https://blog.geo.ai/Synced-Upgrade-Coming/" rel="alternate" type="text/html" title="The Synced Upgrade is Almost Here" /><published>2023-09-25T00:00:00+00:00</published><updated>2023-09-25T00:00:00+00:00</updated><id>https://blog.geo.ai/Synced-Upgrade-Coming</id><content type="html" xml:base="https://blog.geo.ai/Synced-Upgrade-Coming/"><![CDATA[<p>After a while baking in the oven the new Synced is almost ready to serve.</p>

<p><img src="/images/2023-09-25-Synced-Update-Almost-Here.jpg" alt="_config.yml" />
<em>artwork by <a href="https://openai.com/dall-e-2">DALL-E</a></em></p>

<h3 id="whats-in-the-new-synced">What’s in the new Synced?</h3>
<p>There’s a few big changes, along with lots of little changes, that together will elevate your exploring experience.</p>

<ul>
  <li>
    <p><strong>Dashboards</strong> - You will be able to create dashboards to follow regions of interest. Dashboards gather
marks that you and others leave in the region along with other regional updates.</p>
  </li>
  <li>
    <p><strong>Geo-bounties</strong> - Want specific kinds of information on your dashboards? You will be able to 
issue geo-bounties to other Synced users for collecting data of interest. And you’ll be 
able to earn paid-bounties for gathering information others would like.</p>
  </li>
  <li>
    <p><strong>A new interface</strong> - Our new interface is based on your feedback and you’ll find it significantly 
easier to use.</p>
  </li>
  <li>
    <p><strong>Progressive Web Apps (PWAs)</strong> - Web technology has moved on the point where we found we could implement the above 
as well with web apps as we could with native mobile apps. You can also now install apps directly from the web with PWA technology. And from our end we can deploy bugfixes and updates instantly. So we’ve jumped on board the PWA train, and you’ll find the next version of Synced installable via our website.</p>
  </li>
</ul>

<h3 id="when-will-the-upgrade-happen">When will the upgrade happen?</h3>
<p>We expect it’ll happen around <s>early to mid October 2023</s> <em>(Update, we now expect it’ll be in <s>May 2024</s> October 2024)</em>.<br />
We’ll announce the exact date &amp; time closer to the moment on the Synced blog and on our X (formerly Twitter).</p>

<h3 id="how-do-existing-app-users-upgrade">How do existing app users upgrade?</h3>
<p>Following the upgrade, the existing Synced apps will cease to function. We will also unpublish the apps
from the app stores - since the new Synced will be installable via the web itself. 
Upgrading will involve the following:</p>

<ul>
  <li>Uninstall your existing Synced app.</li>
  <li>Visit the Synced <a href="https://synced.to">homepage</a> in your mobile browser.</li>
  <li>On Android (Chrome), go to the menu and select “Add to Home Screen”.</li>
  <li>On iOS (Safari), tap the “Share” icon, and select “Add to Home Screen”.</li>
  <li>Click on the icon to open the app, login and you’ll find all your existing marks nestled in a shiny new user interface.</li>
</ul>

<p>Watch this space!</p>

<p><a href="https://twitter.com/syncedto">- Tejas</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[After a while baking in the oven the new Synced is almost ready to serve.]]></summary></entry><entry><title type="html">Synced Developer Log (Febuary 2023) - Dashboards &amp;amp; Bounties</title><link href="https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log-Feb-23/" rel="alternate" type="text/html" title="Synced Developer Log (Febuary 2023) - Dashboards &amp;amp; Bounties" /><published>2023-02-28T00:00:00+00:00</published><updated>2023-02-28T00:00:00+00:00</updated><id>https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log-Feb-23</id><content type="html" xml:base="https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log-Feb-23/"><![CDATA[<p>Here’s Febuary 2023’s development log for Synced’s dashboards and bounty features.</p>

<p><img src="/images/2023-02-28-Synced-Dashboards-Bounties-Dev-Log-Feb-23-1.jpg" alt="_config.yml" />
<em>artwork by <a href="https://openai.com/dall-e-2">DALL-E</a></em></p>

<h3 id="progress-in-feb-2023">Progress in Feb 2023</h3>
<ul>
  <li>
    <p>Initial dashboard merge has been performed on development web app.
<img src="/images/2023-02-28-Synced-Dashboards-Bounties-Dev-Log-Feb-23-2.png" alt="_config.yml" /></p>
  </li>
  <li>
    <p>Familiarity with Stellar’s Soroban smart contract platform, through entering Hacka-Soroban-athon.</p>
  </li>
</ul>

<h3 id="aims-for-march-2023">Aims for March 2023</h3>
<ul>
  <li>Add description and chat functionality to dashboards</li>
  <li>Complete web redesign on dev web-app incorpoating dashboards</li>
  <li>Release initial dashboard release to live web-app</li>
</ul>

<h3 id="additional-aims">Additional Aims</h3>
<ul>
  <li>Migrate away from MongoDB</li>
</ul>

<p>Thanks for reading</p>

<p><a href="https://twitter.com/syncedto">- Tejas</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s Febuary 2023’s development log for Synced’s dashboards and bounty features.]]></summary></entry><entry><title type="html">Synced Developer Log (December 2022) - Dashboards &amp;amp; Bounties</title><link href="https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log-Dec/" rel="alternate" type="text/html" title="Synced Developer Log (December 2022) - Dashboards &amp;amp; Bounties" /><published>2022-12-01T00:00:00+00:00</published><updated>2022-12-01T00:00:00+00:00</updated><id>https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log-Dec</id><content type="html" xml:base="https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log-Dec/"><![CDATA[<p>Here’s December’s development log for Synced’s new dashboards and bounty features. Watch this space to follow our progress.</p>

<p><img src="/images/2022-12-01-Synced-Dashboards-Bounties-Dev-Log-Dec-1.jpg" alt="_config.yml" />
<em>artwork by <a href="https://openai.com/dall-e-2">DALL-E</a></em></p>

<h3 id="aims-for-december-2022">Aims for December 2022</h3>
<ul>
  <li>Release dashboards on Development web app</li>
  <li>Learn Rust and Soroban</li>
  <li>Write a simple DAO contract test</li>
</ul>

<h3 id="progress-will-be-updated-as-we-go">Progress (will be updated as we go)</h3>
<ul>
  <li>Figured out how to merge dashboards into main product while allowing old and new versions to co-exist</li>
  <li>Read Rust book, now comfortable in Rust.
    <ul>
      <li>Turns out Soroban smart contracts make very little use of Rust, way less complicated than Rust.</li>
    </ul>
  </li>
</ul>

<p>Thanks for reading</p>

<p><a href="https://twitter.com/syncedto">- Tejas</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s December’s development log for Synced’s new dashboards and bounty features. Watch this space to follow our progress.]]></summary></entry><entry><title type="html">Synced Developer Log - Dashboards &amp;amp; Bounties</title><link href="https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log/" rel="alternate" type="text/html" title="Synced Developer Log - Dashboards &amp;amp; Bounties" /><published>2022-10-09T00:00:00+00:00</published><updated>2022-10-09T00:00:00+00:00</updated><id>https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log</id><content type="html" xml:base="https://blog.geo.ai/Synced-Dashboards-Bounties-Dev-Log/"><![CDATA[<p>Here’s the development log for Synced’s new dashboards and bounty features. Watch this space to follow our progress.</p>

<p><img src="/images/2022-10-09-Synced-Dashboards-Bounties-Dev-Log-1.jpeg" alt="_config.yml" />
<em>artwork by <a href="https://huggingface.co/spaces/stabilityai/stable-diffusion">Stable Diffusion</a></em></p>

<h3 id="week-ending-18th-nov-2022">Week ending 18th Nov 2022</h3>
<ul>
  <li>Experimenting with Stellar Soroban smart contracts</li>
  <li>Merging dashboards into core</li>
</ul>

<h3 id="week-ending-11th-nov-2022">Week ending 11th Nov 2022</h3>
<ul>
  <li>Preparing for final of China（Shenzhen）Innovation &amp; Entrepreneurship International Competition entry</li>
  <li>Presentation at final of China（Shenzhen）Innovation &amp; Entrepreneurship International Competition</li>
  <li>Experimenting with Stellar Soroban smart contracts</li>
</ul>

<h3 id="week-ending-4th-nov-2022">Week ending 4th Nov 2022</h3>
<ul>
  <li>Experimenting with Stellar Soroban smart contracts</li>
</ul>

<h3 id="week-ending-28th-oct-2022">Week ending 28th Oct 2022</h3>
<ul>
  <li>Merging dashboards into core</li>
  <li>Experimenting with Stellar Soroban smart contracts</li>
  <li>Preparing China（Shenzhen）Innovation &amp; Entrepreneurship International Competition entry</li>
</ul>

<h3 id="week-ending-21st-oct-2022">Week ending 21st Oct 2022</h3>
<ul>
  <li>Merging dashboards into core</li>
  <li>Preparing China（Shenzhen）Innovation &amp; Entrepreneurship International Competition entry</li>
</ul>

<h3 id="week-ending-14th-oct-2022">Week ending 14th Oct 2022</h3>
<ul>
  <li>Stellar Meridian conference</li>
</ul>

<h3 id="week-ending-7th-oct-2022">Week ending 7th Oct 2022</h3>
<ul>
  <li>Continued simplifying existing codebase pre-dashboard code merge</li>
  <li>Early test of <a href="https://soroban.stellar.org/docs">Soroban</a> functionality, to see if we can use DAOs from the start for bounty payouts.</li>
</ul>

<p>Thanks for reading</p>

<p><a href="https://twitter.com/syncedto">- Tejas</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the development log for Synced’s new dashboards and bounty features. Watch this space to follow our progress.]]></summary></entry><entry><title type="html">Complaints of New York</title><link href="https://blog.geo.ai/Complaints-Of-New-York/" rel="alternate" type="text/html" title="Complaints of New York" /><published>2021-09-15T00:00:00+00:00</published><updated>2021-09-15T00:00:00+00:00</updated><id>https://blog.geo.ai/Complaints-Of-New-York</id><content type="html" xml:base="https://blog.geo.ai/Complaints-Of-New-York/"><![CDATA[<p>New York seen through the everyday service requests of New Yorkers.</p>

<p><img src="/images/2021-09-15-Complaints-Of-New-York-1.jpg" alt="_config.yml" /></p>

<link rel="stylesheet" href="https://synced.to/static/theme/assets/css/fontawesome/css/all.min.css" />

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@main/dist/en/v7.0.0/legacy/ol.css" type="text/css" />

<link rel="stylesheet" href="https://blog.synced.to/datascripts/311-complaints-articles-scripts/dashboard.css" />

<script src="https://synced.to/static/theme/assets/js/moment.min.js?v=8c2de"></script>

<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@main/dist/en/v7.0.0/legacy/ol.js"></script>

<div class="sydb-container">
<div class="sydb-inner-container">
<!--
<div class="sydb-header-container">
<h4>Complaints of New York</h4>
<div style="max-width: 400px; text-align: center; margin-bottom: 6px;">
Life in New York, seen through the everyday complaints of  New Yorkers.  
</div>
</div>
-->
<div class="sydb-dashboard-container">
<div class="sydb-map-container">
<div id="sydb-map" style="height: 100%;">
</div>
<div id="sydb-date-display"></div>
</div>
<div class="sydb-content-container">
<div id="sydb-anim-controls" aria-label="Animation controls">
  <div class="sydb-slider-container">
      <input type="range" min="0" max="1440" value="0" class="sydb-slider" id="sydb-timerange" />
  </div>
  <i id="sydb-toggleplay" class="sydb-toggleplay fas fa-play sydb-icon-button" aria-hidden="true"></i>
  <i id="sydb-reset" class="fas fa-stop sydb-icon-button" aria-hidden="true"></i>
  <i id="sydb-togglevolume" class="fas fa-volume-down sydb-icon-button" aria-hidden="true"></i>

</div>
<div id="sydb-content"></div>
<span id="sydb-content-cover-menu">

<div>
    <h4>Choose a date</h4>
</div>

<div id="sydb-content-cover-menu-input">
<input id="sydb-viewdate" name="viewdate" type="date" />
<i id="sydb-toggleplay-cover-menu" class="sydb-toggleplay fas fa-play sydb-icon-button-large" aria-hidden="true"></i>
</div>

<div id="sydb-suggested-dates">
    <a data-suggested-event="newyear" class="sydb-suggested" href="#">
        New years
    </a>
    <a data-suggested-event="lockdown" class="sydb-suggested" href="#">
        Lockdown
    </a>
</div>

<img id="sydb-loading-spinner" src="https://blog.synced.to/datascripts/311-complaints-articles-scripts/three-dots.svg" />

</span>
</div>
</div>


<div style="text-align: center; font-size: 1rem; flex: 0; padding: 6px;">
</div>

</div>
</div>

<script src="https://blog.synced.to/datascripts/311-complaints-articles-scripts/main_ts_multicity.js"></script>

<script>
    var uri_fn = function(fromstr, tostr){
                return `https://data.cityofnewyork.us/resource/erm2-nwe9.json?$where=created_date between '${fromstr}' and '${tostr}'&$order=created_date ASC&$limit=100000`
    }
    var soundpath = '/datascripts/311-complaints-articles-scripts/NYCAmbience.mp3'
    var data_format_fn = function (item) {
        return item
    }
    var latestdate = moment.utc().set({hour:0,minute:0,second:0,millisecond:0})
                           .subtract(3,'days').set({hour:0,minute:0,second:0,millisecond:0})
    var earliestdate = latestdate.clone().subtract(3, "years").set({hour:0,minute:0,second:0,millisecond:0})
    var opts = {
        city_coords: [-73.8404, 40.7360],
        map_zoom: 9,
        periodlength_mins: null,
        periodlength_maxcount: null,
        latestdate: latestdate,
        earliestdate: earliestdate
    }
    loadAppForCity(uri_fn, data_format_fn, soundpath, opts) 
</script>

<p><a href="https://www.linkedin.com/in/rahman-zane/">Rahman</a> and <a href="https://www.linkedin.com/in/sachinvasudevan/">Sachin</a> - <a href="mailto:team@synced.to">team@synced.to</a></p>

<p><em>311 complaints data from <a href="https://opendata.cityofnewyork.us/">NYC OpenData</a>, photo by <a href="https://unsplash.com/@victorhwn725">Victor He</a>, sound by <a href="https://freesound.org/people/lazymonk/sounds/214319/">freesound/lazymonk</a></em></p>

<p><em>See more on <a href="http://onelink.to/8ttzr9">the Synced app</a>, where you can explore meaningful places, nearaway and faraway.</em></p>]]></content><author><name></name></author><summary type="html"><![CDATA[New York seen through the everyday service requests of New Yorkers.]]></summary></entry><entry><title type="html">Complaints of San Francisco</title><link href="https://blog.geo.ai/Complaints-Of-San-Francisco/" rel="alternate" type="text/html" title="Complaints of San Francisco" /><published>2021-07-12T00:00:00+00:00</published><updated>2021-07-12T00:00:00+00:00</updated><id>https://blog.geo.ai/Complaints-Of-San-Francisco</id><content type="html" xml:base="https://blog.geo.ai/Complaints-Of-San-Francisco/"><![CDATA[<p>Following on from our popular <a href="/Complaints-Of-New-York/">post on NYC 311 data</a>, 
here San Francisco seen through the everyday service requests of San Franciscans.</p>

<p><img src="/images/2021-07-12-Complaints-Of-San-Francisco-1.jpg" alt="_config.yml" /></p>

<link rel="stylesheet" href="https://synced.to/static/theme/assets/css/fontawesome/css/all.min.css" />

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@main/dist/en/v7.0.0/legacy/ol.css" type="text/css" />

<link rel="stylesheet" href="https://blog.synced.to/datascripts/311-complaints-articles-scripts/dashboard.css" />

<script src="https://synced.to/static/theme/assets/js/moment.min.js?v=8c2de"></script>

<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@main/dist/en/v7.0.0/legacy/ol.js"></script>

<div class="sydb-container">
<div class="sydb-inner-container">
<!--
<div class="sydb-header-container">
<h4>Complaints of New York</h4>
<div style="max-width: 400px; text-align: center; margin-bottom: 6px;">
Life in New York, seen through the everyday complaints of  New Yorkers.  
</div>
</div>
-->
<div class="sydb-dashboard-container">
<div class="sydb-map-container">
<div id="sydb-map" style="height: 100%;">
</div>
<div id="sydb-date-display"></div>
</div>
<div class="sydb-content-container">
<div id="sydb-anim-controls" aria-label="Animation controls">
  <div class="sydb-slider-container">
      <input type="range" min="0" max="1440" value="0" class="sydb-slider" id="sydb-timerange" />
  </div>
  <i id="sydb-toggleplay" class="sydb-toggleplay fas fa-play sydb-icon-button" aria-hidden="true"></i>
  <i id="sydb-reset" class="fas fa-stop sydb-icon-button" aria-hidden="true"></i>
  <i id="sydb-togglevolume" class="fas fa-volume-down sydb-icon-button" aria-hidden="true"></i>

</div>
<div id="sydb-content"></div>
<span id="sydb-content-cover-menu">

<div>
    <h4>Choose a date</h4>
</div>

<div id="sydb-content-cover-menu-input">
<input id="sydb-viewdate" name="viewdate" type="date" />
<i id="sydb-toggleplay-cover-menu" class="sydb-toggleplay fas fa-play sydb-icon-button-large" aria-hidden="true"></i>
</div>

<div id="sydb-suggested-dates">
    <a data-suggested-event="newyear" class="sydb-suggested" href="#">
        New years
    </a>
    <a data-suggested-event="lockdown" class="sydb-suggested" href="#">
        Lockdown
    </a>
</div>

<img id="sydb-loading-spinner" src="https://blog.synced.to/datascripts/311-complaints-articles-scripts/three-dots.svg" />

</span>
</div>
</div>


<div style="text-align: center; font-size: 1rem; flex: 0; padding: 6px;">
</div>

</div>
</div>

<script src="https://blog.synced.to/datascripts/311-complaints-articles-scripts/main_ts_multicity.js"></script>

<script>
    var uri_fn = function(fromstr, tostr){
                return `https://data.sfgov.org/resource/vw6y-z8j6.json?$where=requested_datetime between '${fromstr}' and '${tostr}'&$order=requested_datetime ASC&$limit=100000`
    }
    var soundpath = '/datascripts/311-complaints-articles-scripts/SFAmbience.mp3'
    var data_format_fn = function (item) {
        var output_item = {}
        output_item['created_date'] = item['requested_datetime']
        output_item['complaint_type'] = item['service_name'].replace(/_/g, ' ')
        output_item['latitude'] = item['lat']
        output_item['longitude'] = item['long']
        output_item['borough'] = item['police_district']
        output_item['agency'] = null
        output_item['street_name'] = item['street']
        output_item['descriptor'] = item['service_subtype'].replace(/_/g, ' ') + 
                                    ( item['service_subtype'].replace(/_/g, ' ') == 
                                      item['service_details'].replace(/_/g, ' ')
                                    ? '' : (', ' + item['service_details'].replace(/_/g, ' ')))
        return output_item
    }
    var latestdate = moment.utc().set({hour:0,minute:0,second:0,millisecond:0})
                           .subtract(3,'days').set({hour:0,minute:0,second:0,millisecond:0})
    var earliestdate = latestdate.clone().subtract(2, "years").set({hour:0,minute:0,second:0,millisecond:0})
    var opts = {
        city_coords: [-122.446747, 37.733795],
        map_zoom: 11,
        periodlength_mins: null,
        periodlength_maxcount: null,
        latestdate: latestdate,
        earliestdate: earliestdate
    }
    loadAppForCity(uri_fn, data_format_fn, soundpath, opts) 
</script>

<p><a href="https://twitter.com/syncedto">Tejas</a> - <a href="mailto:team@synced.to">team@synced.to</a></p>

<p><em>311 complaints data from <a href="https://datasf.org/opendata/">DataSF</a>, photo by <a href="https://unsplash.com/@sam_beasley">Sam Beasley</a>, sound by <a href="https://freesound.org/people/Barna/sounds/495497/">freesound/Barna</a></em></p>

<p><em>See more on <a href="http://onelink.to/8ttzr9">the Synced app</a>, where you can explore meaningful places, nearaway and faraway.</em></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Following on from our popular post on NYC 311 data, here San Francisco seen through the everyday service requests of San Franciscans.]]></summary></entry><entry><title type="html">What Happened to Crime During the UK Lockdown?</title><link href="https://blog.geo.ai/Impact-Covid-19-On-UK-Crime/" rel="alternate" type="text/html" title="What Happened to Crime During the UK Lockdown?" /><published>2021-01-30T00:00:00+00:00</published><updated>2021-01-30T00:00:00+00:00</updated><id>https://blog.geo.ai/Impact-Covid-19-On-UK-Crime</id><content type="html" xml:base="https://blog.geo.ai/Impact-Covid-19-On-UK-Crime/"><![CDATA[<p>Using the UK police’s crime <a href="https://data.police.uk/">dataset</a> we looked at how crime changed in the UK’s cities during 2020’s first nationwide lockdown.</p>

<p><img src="/images/2021-01-30-Impact-Covid-19-On-UK-Crime-1.jpg" alt="_config.yml" />
<em>by <a href="https://unsplash.com/photos/LIrbNMnQ-jc">Mark Timberlake</a></em></p>

<p>We started by scanning crimes over a 100km squared area in five of the largest cities in the UK (London, Leeds, Birmingham, Bristol and Liverpool) during 2018, 2019 and 2020. We were looking for differences in crimes committed between the 2020 lockdown period (23rd March to Early June ) and the same period in 2018 and 2019 (we didn’t extend further back in time because of incomplete data).</p>

<p>Once we’d retrieved the crime data, we wanted to convert it into single scores for each city in each year. Luckily for us the Office for National Statistics (ONS) had already devised The Crime Severity Score. It is a way of assigning a single score for the crime level in an area. The ONS has given each type of crime a <a href="https://www.ons.gov.uk/peoplepopulationandcommunity/crimeandjustice/datasets/crimeseverityscoredatatool">weight</a>, using a broadly sentencing-based methodology:</p>

<blockquote>
  <p>Sentencing data, sourced from the Ministry of Justice (MoJ) have been used as the primary source for calculating offence weights. It was decided that sentencing would provide an appropriate metric for determining the seriousness of offences. It can be argued that sentencing is an objective measure, reflecting how society views crimes differently, given that it is based on legislation set by Parliament on behalf of the public. <a href="https://www.ons.gov.uk/peoplepopulationandcommunity/crimeandjustice/articles/researchoutputsdevelopingacrimeseverityscoreforenglandandwalesusingdataoncrimesrecordedbythepolice/2016-11-29">(source)</a></p>
</blockquote>

<p>So, for example, possession of cannabis (weight of 3) is at the bottom end of the scale, along with e.g. dishonest use of electricity (weight of 7). Whilst homicide has the highest weight at 7,979. For each city and each year, we collected the crimes, multiplied each crime by the severity score for its category and them summed them, finally dividing by the population.</p>

<p>We’ve plotted the results below, aggregating the city scores for each year by taking the mean. The results show a very pronouned drop in crime serverity from March to June. It probably reinforces your intuition that lockdown would result in less crime.</p>

<style>
table {
    border: 0;
    border-collapse: collapse;
    border-spacing: 0;
    font: 0.7em "Titillium Web", sans-serif;
    margin-left: auto;
    margin-right: auto;
}
th {
    border: 0;
    padding: 10px;
    text-align: left;
    text-shadow: 1px 1px 1px #fff;
    font-weight: bold;
}
tbody td {
    border: 0;
    color: #333;
    padding: 10px;
    text-shadow: 1px 1px 1px #fff;
}
</style>

<script src="https://d3js.org/d3.v3.js"></script>

<script src="https://blog.synced.to/datascripts/2021-01-30-Impact-Covid-19-On-UK-Crime-1/d3.legend.js"></script>

<style>
.chart-1-container {
    font: 0.6em "Titillium Web", sans-serif;
}

.chart-1-container .axis path, .chart-1-container .axis line {
    fill: none;
    stroke: #000;
    shape-rendering: crispEdges;
}

.chart-1-container .x.axis path {
    display: none;
}

.chart-1-container .line {
    fill: none;
    stroke: steelblue;
    stroke-width: 1.5px;
}

.chart-1-container .legend rect {
    fill:white;
    stroke:black;
    opacity:0.8;
}
</style>

<div class="d3-chart-container chart-1-container"></div>
<p><em>Crime severity score over lockdown period compared to previous years, mean of London, Leeds, Birmingham, Bristol and Liverpool</em></p>

<script src="https://blog.synced.to/datascripts/2021-01-30-Impact-Covid-19-On-UK-Crime-1/crimescores.js"></script>

<p>Digging into the data a little more however, we found some nuances - which we’ll show next, using London as a case study.</p>

<h3 id="case-study---london">Case Study - London</h3>
<p>Digging into the datasets for each city, we saw it wasn’t just a clear-cut case of crime falling across the board. Some types of crime actually rose during lockdown! As an illustrative example, we grouped all the crimes the the 10km x 10km area around London in the chart below.</p>

<p>During 2020’s lockdown London saw more anti-social behaviour than in previous years. This would likely be instances of people defying the lockdown measures. We were further told by a serving police officer that regular offenders also used the lockdown and school closures as an opportunity to add to the anti-social behaviour statistics.</p>

<p>On the other hand, instances of theft fell sharply during lockdown. With much fewer people out and about muggings and pickpocketing were less frequent. Plus many burglaries are opportunistic and with people sat at home it’s harder for burglars to operate.</p>

<p>The ‘violence against the person’ category paints a mixed picture. Perhaps there were fewer pub fights, but there was also an increase in domestic violence. We didn’t really have the fine-grained data to unpick this.</p>

<style>
.chart-2-container {
  font: 16px "Titillium Web", sans-serif;
}

.chart-2-container .axis path, .chart-2-container .axis line {
  fill: none;
  stroke: #000;
  shape-rendering: crispEdges;
}

.chart-2-container .x.axis {
  display: none;
}
</style>

<div class="d3-chart-container chart-2-container"></div>
<p><em>Number of crimes by type, 100km^2 square around London.</em> 
<em>ASB - anti-social behaviour, ARS - arson, DRG - drug offences, WPN - weapons offences, VEH - vehicle offences, VIO - violent crime, THF - theft</em></p>

<script src="https://blog.synced.to/datascripts/2021-01-30-Impact-Covid-19-On-UK-Crime-2/crimebreakdown.js"></script>

<h3 id="summary">Summary</h3>
<p>The overall picture during the UK’s lockdown is that while less severe crimes may have increased, more severe crime saw a decrease. The net result was a sharp decrease in overall crime severity.</p>

<p><a href="https://www.linkedin.com/in/sachinvasudevan/">Sachin</a> and <a href="https://www.linkedin.com/in/rahman-zane/">Rahman</a> - <a href="mailto:team@synced.to">team@synced.to</a></p>

<p><em>Explore more on <a href="http://onelink.to/8ttzr9">the Synced app</a>, where you can find meaningful places, nearaway and faraway.</em></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Using the UK police’s crime dataset we looked at how crime changed in the UK’s cities during 2020’s first nationwide lockdown.]]></summary></entry><entry><title type="html">Charting the Impact of Covid-19 on Air Travel Using ADS-B Data (Part 2)</title><link href="https://blog.geo.ai/Impact-Covid-19-On-Air-Travel-2/" rel="alternate" type="text/html" title="Charting the Impact of Covid-19 on Air Travel Using ADS-B Data (Part 2)" /><published>2020-10-11T00:00:00+00:00</published><updated>2020-10-11T00:00:00+00:00</updated><id>https://blog.geo.ai/Impact-Covid-19-On-Air-Travel-2</id><content type="html" xml:base="https://blog.geo.ai/Impact-Covid-19-On-Air-Travel-2/"><![CDATA[<p>Using crowdsourced flight tracking data, we quantified Covid-19’s unprecedented disruption to air travel. In <a href="https://blog.synced.to/Impact-Covid-19-On-Air-Travel-1/">Part 1</a> we showed how we did it using the <a href="https://opensky-network.org/" title="OpenSky Network Homepage">OpenSky Network</a> dataset, and now in <strong>Part 2</strong> we show what we found.</p>

<p><img src="/images/2020-10-11-Impact-Covid-19-On-Air-Travel-2-1.jpg" alt="_config.yml" />
<em>by <a href="https://unsplash.com/photos/CGf5m4OYKQE">Tomas Williams</a></em></p>

<p>We looked at flights in and out of the following 12 airports worldwide, for which good data was available - and from 17th November 2019, when the first case of coronavirus was recorded, until late September 2020.</p>

<style>
table {
    border: 0;
    border-collapse: collapse;
    border-spacing: 0;
    font: 0.7em "Titillium Web", sans-serif;
    margin-left: auto;
    margin-right: auto;
}
th {
    border: 0;
    padding: 10px;
    text-align: left;
    text-shadow: 1px 1px 1px #fff;
    font-weight: bold;
}
tbody td {
    border: 0;
    color: #333;
    padding: 10px;
    text-shadow: 1px 1px 1px #fff;
}
</style>

<table>
  <thead>
    <tr>
      <th>Europe</th>
      <th>USA</th>
      <th>East Asia</th>
      <th>Mid East/South Asia</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>London (LHR)</td>
      <td>New York (KJFK)</td>
      <td>Singapore (WSSS)</td>
      <td>New Delhi (VIDP)</td>
    </tr>
    <tr>
      <td>Paris (LFPG)</td>
      <td>Los Angeles (KLAX)</td>
      <td>Seoul (RKSI)</td>
      <td>Dubai (OMDB)</td>
    </tr>
    <tr>
      <td>Rome (LIRF)</td>
      <td>Dallas (KDFW)</td>
      <td>Hong Kong (VHHH)</td>
      <td> </td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
      <td>Tokyo (RJTT)</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<p><em>Unfortunately airports in mainland China didn’t have enough data, and for Tokyo we used Haneda as Narita had patchy data.</em></p>

<h3 id="changes-in-the-number-of-flights">Changes in the number of flights</h3>
<p>We tracked the number of daily flights (arrivals and departures) at each of our airports.</p>

<script src="https://d3js.org/d3.v3.js"></script>

<style>

.chart-1-container {
font: 0.7em "Titillium Web", sans-serif;
}


.chart-1-container .axis path,
.chart-1-container .axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}

.chart-1-container .x.axis path {
display: none;
}

.chart-1-container .line {
fill: none;
stroke: steelblue;
stroke-width: 1.5px;
}

.chart-1-container .legend rect {
fill:white;
stroke:black;
opacity:0.8;}

</style>

<div class="d3-chart-container chart-1-container"></div>
<p><em>Air traffic late 2019 through 2020</em></p>

<script src="https://blog.synced.to/datascripts/2020-10-11-Impact-Covid-19-On-Air-Travel-2-1/dailyflights.js"></script>

<p>As expected we see significant drops between March and April, corresponding to national lockdowns, followed by a recovery in flight numbers.</p>

<p>The re-opening recovery period is quite varied amongst airports and regions. US airports had a sharp bounce back in flights numbers in July, while in Asia most airports appear to have followed a very smooth and gradual re-opening. Europe sits in between. Paris had the sharpest recovery in Europe, but it looks to be reversing as a second wave emerges. On a casual look the sharpness of the airport recovery curve correlated strongly to infection rates in that region.</p>

<h3 id="the-top-air-corridors-for-different-airports-before-and-during-the-pandemic">The Top Air Corridors for Different Airports before and during the Pandemic</h3>
<p>We wondered if the flights still running were arriving from and going to the same places as pre-pandemic. So we extracted the top 3 most popular country routes for each airport on a monthly basis, and calculated a popularity score, which is charted below. There are columns for  November 2019, April and September 2020. These are a snapshot of pre-pandemic, lockdown and re-opening.</p>

<style>

.chart-2-container {
font: 10px "Titillium Web", sans-serif;
}


.chart-2-container .axis path,
.chart-2-container .axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}

.chart-2-container .x.axis {
display: none;
}

</style>

<div class="d3-chart-container chart-2-container"></div>
<p><em>most popular countries by airport and month</em></p>

<script src="https://blog.synced.to/datascripts/2020-10-11-Impact-Covid-19-On-Air-Travel-2-2/combined.js"></script>

<p>Much of the data is as expected, and the picture was similar to the months we didn’t show. In Europe there were small fluctuations between the different months and most flights were to surrounding European countries or to the US. There’s not many surprises with Dubai and New Delhi either.</p>

<p>With the United States and East Asia, we were confused to see Alaska (AK) making an appearance multiple times on both charts. We dug around and found that over the course of the pandemic, with passenger traffic down by over 90% at the worst points and cargo demand on the rise, Alaska’s <a href="https://edition.cnn.com/travel/article/anchorage-airport-world-busiest/index.html">Anchorage International Airport became a hub for the international transport of critical medical goods</a>. With the geographical advantage of being at most a 9.5hr flight from 90% of the industrialised world, Anchorage rose from being to the fifth busiest cargo airport to claiming top spot.</p>

<p>Another quirk in the data was Bermuda becoming the second most popular airport for Texas. We went back to digging for a reason, however we didn’t unearth any clear answer. Perhaps with a large drop in prices, Texans jumped on the opportunity to go to a popular holiday at such a low price.</p>

<h3 id="the-ratio-of-domestic-to-international-flights">The Ratio of Domestic to International Flights</h3>

<p>Lastly we wanted to see whether the drops in air traffic were from reducing international or domestic flights (or both).</p>

<style>

.chart-3-container {
font: 0.7em "Titillium Web", sans-serif;
}


.chart-3-container .axis path,
.chart-3-container .axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}

.chart-3-container .x.axis path {
display: none;
}

.chart-3-container .line {
fill: none;
stroke: steelblue;
stroke-width: 1.5px;
}

.chart-3-container .legend rect {
fill:white;
stroke:black;
opacity:0.8;}

</style>

<div class="d3-chart-container chart-3-container"></div>
<p><em>ratio of domestic flights to international (higher means more domestic)</em></p>

<script src="https://blog.synced.to/datascripts/2020-10-11-Impact-Covid-19-On-Air-Travel-2-3/domvsint.js"></script>

<p>Italy was first in Europe to be hit by Coronavirus and it was hit hard. This is reflected in the large spike in Rome’s <em>domestic:international</em> flight ratio over the March-July period. At its peak, this ratio jumped four-fold on its pre-March trend levels (i.e. many more domestic flights relative to international). The sharp rise could be attributed to other countries placing travel restrictions on flights to and from Italy. There were also smaller jumps for London and Paris in the second half of March, coinciding with national lockdowns in those countries.</p>

<p>In the US we see jumps in the ratio of domestic flights for Los Angeles and New York, followed by a trough. We wonder if the trough is due to the subsequent cancellation of domestic flights, perhaps combined with a jump in cargo and repatriation flights. Interestingly Dallas appears to have remained largely unchanged in its ratio throughout.</p>

<p>For East Asia we excluded Tokyo because Haneda isn’t Tokyo’s main aiport and its ratio is very skewed to deomestic flights. Narita, traditionally Tokyo’s main international airport, had patchy data. Singapore’s airport also had somewhat patchy data to discern domestic vs international flights. Hong Kong’s ratio appears less affected than Seoul. It appears as if Seoul reduced international air traffic from mid-Feb and it has not yet returned to a more normal state.</p>

<p>Looking at Dubai, though not clearly visible due to the scaling with New Delhi, there was a huge spike (visible as a bump) towards the end of March, as Europe and Asia stopped allowing commercial international flights. This resulted in a short drastic reduction in international flights in an out of Dubai, which is a transit hub. For New Delhi we see a familiar spike as international flights were cancelled. The trough after from April to mid-May we suspect is a combination of cancelling domestic flights (with the nation under lockdown), starting repatriation flights and perhaps more cargo flights.</p>

<p>The large changes in the balance of domestic versus international travel we’ve observed, along with being driven by policy, could also be driven by a lack of consumer demand. Who wants to go on holiday abroad when you have to quarantine for two weeks at the other end?</p>

<h3 id="summary">Summary</h3>

<p>It comes as no surpise that the pandemic has hugely disrupted air traffic worldwide. What’s been interesting are the similarities and differences in the approaches cities adopted. Following the initial shutdown to air travel, which was worldwide and almost simultaneous (over weeks), cities have been returning to normal at different paces. From cavalier Dallas through to cautious Seoul.</p>

<p>And for a brief time Alaska had one of the world’s busiest airports.</p>

<p><a href="https://www.linkedin.com/in/rahman-zane/">Rahman</a> and <a href="https://www.linkedin.com/in/sachinvasudevan/">Sachin</a> - <a href="mailto:team@synced.to">team@synced.to</a></p>

<p><em>Explore more on <a href="http://onelink.to/8ttzr9">the Synced app</a>, where you can find meaningful places, nearaway and faraway.</em></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Using crowdsourced flight tracking data, we quantified Covid-19’s unprecedented disruption to air travel. In Part 1 we showed how we did it using the OpenSky Network dataset, and now in Part 2 we show what we found.]]></summary></entry><entry><title type="html">Charting the Impact of Covid-19 on Air Travel Using ADS-B Data (Part 1)</title><link href="https://blog.geo.ai/Impact-Covid-19-On-Air-Travel-1/" rel="alternate" type="text/html" title="Charting the Impact of Covid-19 on Air Travel Using ADS-B Data (Part 1)" /><published>2020-09-27T00:00:00+00:00</published><updated>2020-09-27T00:00:00+00:00</updated><id>https://blog.geo.ai/Impact-Covid-19-On-Air-Travel-1</id><content type="html" xml:base="https://blog.geo.ai/Impact-Covid-19-On-Air-Travel-1/"><![CDATA[<p>Using crowdsourced flight tracking data, we quantified Covid-19’s unprecedented disruption to air travel. Here in <strong>Part 1</strong> we show how we did it using the <a href="https://opensky-network.org/" title="OpenSky Network Homepage">OpenSky Network</a> dataset, and in <a href="https://blog.synced.to/Impact-Covid-19-On-Air-Travel-2/">Part 2</a> we show what we found.</p>

<p><img src="/images/2020-09-27-Impact-Covid-19-On-Air-Travel-1-1.jpg" alt="_config.yml" />
<em>by <a href="https://unsplash.com/photos/XGKpAZxUE8o">Markus Winkler</a></em></p>

<h3 id="covid-19-as-seen-through-geospatial-data">Covid-19 as seen through geospatial data</h3>
<p>Air travel has been drastically affected by Covid-19, and although some air corridors have started to re-open, normal service seems far from resuming. We wondered if we could crunch some data to see how far from normal worldwide air traffic actually is.</p>

<h3 id="the-opensky-network">The OpenSky Network</h3>
<p>We searched for a data source that might be able to answer this question, and came across the <a href="https://opensky-network.org/" title="OpenSky Network Homepage">OpenSky Network</a>, an API providing flight data for airports across the world.</p>

<p>After fetching some data from the API (which was very user-friendly), we noticed not all airports are covered, e.g. a search for flights in and out of Wuhan Tainhe International Airport gave us nothing. In trying to find out why, we dug deeper into how the OpenSky Network dataset is generated, and realised it’s a great story in itself.</p>

<p>The OpenSky Network is a non-profit association founded in 2012 as a research project between Armasuisse (Switzerland), University of Kaiserslautern (Germany), and University of Oxford (UK). Its aim is to improve the security, reliability and efficiency of air space usage by providing open access of real-world air traffic control data.</p>

<p>We initially thought the data was somehow obtained from airports themselves. But it turns out the data is crowdsourced from a plethora of sensors connected to the Internet by private volunteers, industrial supporters, and academic/governmental organizations. The collected data is then archived in a large historical database. This also explains why not every airport is covered yet.</p>

<p><a href="https://opensky-network.org/contribute/improve-coverage">Anyone can add to the dataset</a> with information about flight traffic near them - and tracking the planes flying overhead is surprisingly simple and cheap. It all comes down to the Automatic Dependent Surveillance-Broadcast (ADS-B) system and Mode S.</p>

<h3 id="ads-b--mode-s">ADS-B &amp; Mode S</h3>
<p>Automatic dependent surveillance-broadcast is a primary surveillance technology found in aircraft that determines their position via satellite navigation and periodically broadcasts it.</p>

<p>Mode S is then a secondary surveillance radar process. It uses a unique 24-bit address for each aircraft to allow selective interrogation of the aircraft. These signals can be be picked up using software defined radio receiver (SDR receiver).</p>

<p><img src="/images/2020-09-27-Impact-Covid-19-On-Air-Travel-1-2.jpg" alt="_config.yml" />
<em>Basic graphic of ADS-B by the <a href="https://commons.wikimedia.org/wiki/File:FAA_NextGen_ADS-B_implementation.jpg">FAA</a></em></p>

<p>Simply put, it’s a way for planes to communicate their positions with each other and with air traffic control. And since Mode S is broadcast by radio on the 1090 MHz frequency band, it’s possible to listen out for planes flying overhead with the right kit. We decided to give it a try ourselves.</p>

<p><img src="/images/2020-09-27-Impact-Covid-19-On-Air-Travel-1-3.jpg" alt="_config.yml" />
<em>Software Defined Radio Receiver (SDR) USB stick with banana for scale</em></p>

<p>We purchased a cheap Software Defined Radio Receiver USB stick and used a combination of the <a href="https://github.com/antirez/dump1090">Dump1090 software</a> (written by antirez, yes of <a href="https://redis.io/">Redis</a> fame) to retrieve the raw data of each nearby aircraft. Below shows an example of two aircraft within the receiver’s range.</p>

<p><img src="/images/2020-09-27-Impact-Covid-19-On-Air-Travel-1-4.png" alt="_config.yml" />
<em>raw terminal output of Dump1090</em></p>

<p>In order to convert this raw data into a more visual format, we used <a href="https://www.virtualradarserver.co.uk/">Virtual Radar on Windows</a>. This decodes the raw data and uses it to plot the flight path on a map. The software also allows users to identify the type of aircraft, as well as the airline and destination.</p>

<p>Below shows an animation of how a RyanAir Boeing 737 makes it way from London Heathrow to Ireland.</p>

<p><img src="/images/2020-09-27-Impact-Covid-19-On-Air-Travel-1-5.gif" alt="_config.yml" />
<em>GUI output of Dump1090</em></p>

<p>An OpenSky Network contributor would keep monitoring this radio data, and would then upload it to the OpenSky Network database. Many thousands of other contributors around the world also doing this creates a dataset of worldwide air traffic that is being used to track the pandemic and to measure its secondary effects.</p>

<p>OpenSky Network has released a special <a href="https://zenodo.org/record/3901482#.X0aDe5NKjlw">Covid-19 dataset</a>, which has proven invaluable to researchers from a multitude of fields. For example the Bank of England has been using the flight data for some of its <a href="https://www.bankofengland.co.uk/report/2020/monetary-policy-report-financial-stability-report-may-2020">Covid-19 economic indicators</a>.</p>

<h3 id="so-what-does-the-data-show">So what does the data show?</h3>
<p>Below is a plot of air traffic in and out of various airports in Europe.</p>

<script src="https://d3js.org/d3.v3.js"></script>

<script src="https://blog.synced.to/datascripts/2020-09-27-Impact-Covid-19-On-Air-Travel-1-1.js"></script>

<style>

.chart-1-container {
font: 10px "Titillium Web", sans-serif;
}


.axis path,
.axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}

.x.axis path {
display: none;
}

.line {
fill: none;
stroke: steelblue;
stroke-width: 1.5px;
}

.legend rect {
fill:white;
stroke:black;
opacity:0.8;}

</style>

<div class="d3-chart-container chart-1-container"></div>
<p><em>Select European air traffic late 2019 through 2020</em></p>

<script src="https://blog.synced.to/datascripts/2020-09-27-Impact-Covid-19-On-Air-Travel-1-2.js"></script>

<p>This is just a tidbit of what we found in the data. To see the rest, <a href="https://blog.synced.to/Impact-Covid-19-On-Air-Travel-2/">head on over to Part 2!</a></p>

<p><a href="https://www.linkedin.com/in/sachinvasudevan/">Sachin</a> and <a href="https://www.linkedin.com/in/rahman-zane/">Rahman</a> - <a href="mailto:team@synced.to">team@synced.to</a></p>

<p><em>Explore more on <a href="http://onelink.to/8ttzr9">the Synced app</a>, where you can find meaningful places, nearaway and faraway.</em></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Using crowdsourced flight tracking data, we quantified Covid-19’s unprecedented disruption to air travel. Here in Part 1 we show how we did it using the OpenSky Network dataset, and in Part 2 we show what we found.]]></summary></entry></feed>