Giter Site home page Giter Site logo

vida-nyu / shadow-accrual-maps Goto Github PK

View Code? Open in Web Editor NEW
26.0 8.0 3.0 2.1 MB

Accumulated shadow data computed for New York City

Python 100.00%
visualization shadow urban-planning new-york-city new-york-university nyu chicago boston washington-dc los-angeles

shadow-accrual-maps's Introduction

Shadow Accrual Maps

5/12/2020: New shadow data for Chicago, Los Angeles, Washington D.C. and Boston, see below.

Large-scale shadows from buildings in a city play an important role in determining the environmental quality of public spaces. They can be both beneficial, such as for pedestrians during summer, and detrimental, by impacting vegetation and by blocking direct sunlight. Determining the effects of shadows requires the accumulation of shadows over time across different periods in a year. In our paper Shadow Accrual Maps: Efficient Accumulation of City-Scale Shadows over Time, we present a simple yet efficient class of approach that uses the properties of sun movement to track the changing position of shadows within a fixed time interval. This repository presents the computed shadow information for New York City, Chicago, Los Angeles, Washington D.C., Boston and a script for retrieving the data.

The technique was first presented in the paper:

Shadow Accrual Maps: Efficient Accumulation of City-Scale Shadows over Time
Fabio Miranda, Harish Doraiswamy, Marcos Lage, Luc Wilson, Mondrian Hsieh, Claudio T. Silva
IEEE Transactions on Visualization and Computer Graphics, vol. 25, no. 3, pp. 1559-1574, Mar 2019

Citation:

@ARTICLE{8283638,
author={F. Miranda and H. Doraiswamy and M. Lage and L. Wilson and M. Hsieh and C. T. Silva},
journal={IEEE Transactions on Visualization and Computer Graphics},
title={Shadow Accrual Maps: Efficient Accumulation of City-Scale Shadows Over Time},
year={2019},
volume={25},
number={3},
pages={1559-1574},
keywords={Urban areas;Ray tracing;Buildings;Visual analytics;Sun;Tools;Shadow accumulation;shadow accrual maps;visual analysis;urban development},
doi={10.1109/TVCG.2018.2802945},
ISSN={1077-2626},
month={March}}

Shadow Accrual Maps has been feature on The New York Times, together with an interactive visualization of the accumulated shadows in New York City. It has also been feature on GeoAwesomeness, Technical.ly, among others.

A video is available here.

Shadow accrual map example

Shadow Accumulation Data

Shadow example

The shadow accumulation data can be downloaded through Open Science Framework here, or visualized here. We have made available data for:

The accumulated shadows were computed for three days of the year: June 21 (summer solstice), September 22 (autumnal equinox) and December 21 (winter solstice). Shadows can be greatly distorted when they are near the horizon, so all the shadows in the model are estimated from one and a half hours after sunrise to one and a half hours before sunset.

Each tar.gz or zip file contains a folder structure following the slippy tiles hierarchy (see here), with both png and binary files; the png files can be visualized over any map that uses slippy tiles (e.g., Google Maps, OpenStreetMap). The binary files contain the raw accumulation values for the considered time ranges. We provide a python script to facilitate the retrieval of shadow values, given a lat/lon as an input. For example:

python shadow.py --lat 40.749785 --lon -73.987774 --path ./slippy-nyc-dec-21

shadow-accrual-maps's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shadow-accrual-maps's Issues

Rounding error in shadow.py

I was exploring the NYC dataset and encountered occasional errors when using shadow.py. It looks like the calculation for pos in line 20 of shadow.py is currently producing a small rounding error which introduces some data distortion and can push pos off the end of the file. changing pos = int(tilePix[1] * 256 + tilePix[0]) to pos = int(int(tilePix[1]) * 256 + tilePix[0]) seems to have fixed the problem.

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.