Year-Round Shaded Urban Routes: How to Spot Trees, Buildings, and Sun Orientation on a Map

Year-Round Shaded Urban Routes: How to Spot Trees, Buildings, and Sun Orientation on a Map

Learn a practical, map-first method to find walking and biking routes with reliable shade in every season—by reading sun azimuth/elevation, checking street orientation, and identifying evergreen trees, tall buildings, and more.

“Shade all year” is often not as simple as “this side of the street will be shaded in the summer.” What it often means is, “you can get reliable shade during your key time window (whether that’s commuting or in your lunch hour) in summer and winter, not necessarily all the time, every day of the week.” Using sun azimuth (what direction the sun is coming from) and sun elevation (how high above the horizon it is), you can predict what side of the street will be shaded over a given location on a certain date and time. NOAA’s solar calculator report azimuth (clockwise from north) and elevation (in degrees above the horizon). Your own local shading patterns will be more complex than NOAA’s predictions because they do not account for the shape of the terrain, the config of the buildings, or whether trees are in leaf (gml.noaa.gov). If you want reliable winter shade, favor buildings/arcades and evergreen canopy (most deciduous trees have no leaves in the winter, and their shade is weaker in the winter as well). OpenStreetMap can sometimes tell you the leaf cycle of urban trees via tags (wiki.openstreetmap.org). Absence of greenery is a major component of heat islands in established urban areas, so summer shading predictably means cooler temperatures, while (in winter) shade means blocking heat loss. Again, local detailing is going to make things more complex than NOAA suggests. Trusted maps usually tell you when tree shading is going to happen, but a tree without leaves doesn’t provide any shade to speak of, even though its trunk takes up space in the OSM who’s overlaying the shading polygon on common base maps.

Quick rules of thumb for estimating how much shading you’re getting: shadow length is approximately equal to tree height divided by the tangent of the angle the sun is clockwise of due North (the azimuth), multiplied by negative one (in radians, but it’s easy to convert) to get approximate shadow length. That long shadow in winter that’s clearly shading you and even keeping the sidewalk and street cool, means the sun is relatively low in the sky. A high sun in the summer means shorter shadows overall.

If you want the most accurate map-based “shade” modeling of real-world street environments, combine a DSM (digital surface model) instead of a terrain model with solar position tools. DSMs constitute all surface features, and terrain models delve no lower than the ground, so DSMs also include treetops, buildings, etc. (usgs.gov). For medical (risk of heat illness, current medications, chronic conditions) specific advice, contact a clinician.

The 3 inputs you need: sun direction, sun height, and street/sidewalk orientation

To predict shade from a map, all you need to know are 3 inputs: (1) where the sun is coming from (azimuth), (2) how high is it in the sky (elevation/altitude), and (3) the orientation and spacing of the streets, the buildings and the trees. NOAA’s Solar Position Calculator describes azimuth as degrees clockwise from north and elevation as degrees “up” from the horizon. (gml.noaa.gov)

  • Sun azimuth answers the question “Is the sun in the south, or southeast or west…?”
  • Sun elevation answers the question “Is the sun low (long shadows), or high (very short shadows)?”
  • Street orientation answers the question: “Which side of this street/building is facing the sun right now?”

The toolkit: Step-by-step, find a shaded route with free web tools (i.e., no GIS)
Remember, sunshine/zade is only a few days a year. I look for a better walking route based on shade. You can change your spice levels route in less than an hour (two if you lug your cat along to watch nabes).

So, choose your “shade window.” Example: weekdays 12:00–2:00 PM (lunch walk), or 7:30–8:30 AM (commute).

Pick 2-3 “test dates” that yield very different sun paths. This gives a reliable set to test; at least one summer date (which sun path will give you the most shade) one winter date (which path gives least relative shade from buildings), and an equinox–ish date (spring/fall) (where power lines become evident. Your testing against a low-sun day as well as a high-sun day).

You can get sun azimuth/elevation for your site and date/time, one of two ways. NOAA has a tool called Solar Position Calculator, but I get along pretty fine with gml.noaa.gov that is based on SunCalc.

I’ll read it for you:
The shadow will generally fall into the general sun direction. (That is why trees on the south side of the street can “help” shutter sunlight reaching the block against building shadows). Without going in-depth here, if the azimuth was headed from me, southeast (135 degrees), for example, the shadows will trend to trend into 325-310(ish) to the northwest.

  1. Pinpointing “continuous shade candidates”: (a) streets canyons; (b) long walls of buildings if wide setbacks; (c) arcades/overhangs; (d) tree-tunnels with dense canopy.
  2. Decide for each of these corridors what side of the street you are more likely to find in shade during your test time. Then maybe go one block out of your way, but stay on the shaded side.
  3. Reality-check on street level photos (different months if you have them) for density of tree canopy, deciduous trees or not, and whether sidewalks in question are in fact continuous and walkable.

This simple shadow-length rule makes your maps “click”

If you know object height (say, a building or a tree canopy or a wall) you can estimate whether it is going to reach your sidewalk with this handy little model: shadow length ~ height ÷ tan(sun elevation). Higher sun means shorter shadow; lower sun means longer shadow.

Quick shadow multipliers (approximate)
Sun elevation Shadow length vs object height What it means on the street
15° ~3.7× height Very long shadows (common in winter mornings/afternoons)
30° ~1.7× height Moderately long shadows
45° ~1.0× height Shadow about as long as the object is tall
60° ~0.6× height Short shadows (common in summer near midday)

How to use this fast: If a 20 m building is across a 12 m street and the sun elevation is ~45°, its shadow length is ~20 m—so it can shade the far sidewalk. At 60°, its shadow is ~12 m—so it might only just reach (or miss) the far sidewalk.

How to identify trees on a map (and whether they’ll shade you in winter)

Trees are great for summer shade, but for “all-year” shade you need to know if they keep foliage. In OpenStreetMap (OSM), a single tree can be mapped as natural=tree, with optional tags like height, diameter_crown, leaf_type, and leaf_cycle (deciduous/evergreen). (wiki.openstreetmap.org)

  • Best map signal for winter shade: evergreen trees (leaf_cycle=evergreen) or dense conifers.
  • Strong summer signal (but weaker winter): broadleaf deciduous canopy—look for wide crowns and continuous rows along sidewalks.
  • If OSM tree tags are missing: use street-level imagery and compare summer vs winter captures (leaf-on vs leaf-off).

Trust tip: OSM is crowdsourced. Think of tree types and leaf-cycle tags as ‘clues’, not ‘guaranteed rock solid facts’… cross-reference with imagery, or make an ‘on-the-ground’ pass! -crossrefer, then verify!

What to look for in aerial imagery (even if there’s no tree layer you can turn on):
Look for that “dark ribbon” along the curb in midday imagery and you’ve probably got street trees.
“Big round” crown tops that overlap = fewer sunny spots on the sidewalk.
Caution seasonal imagery; leaf-off imagery can make a treed street look deceptively bare. Or the opposite!

How to identify buildings (and get usable height estimates from map data)
The most reliable “year-round” source of shade—straight from the horse’s mouth. Buildings, because they don’t lose their leaves. If you can eyeball (or peg from map data) a building height, you can eyeball (or peg from map data) if that building is gonna shade that sidewalk at that sun elevation.

From OpenStreetMap Wiki: We define building:levels as the number of above-ground levels in the building facades (excluding roof levels and underground levels). (wiki.openstreetmap.org)
If the building has a height=* in OSM, use that (it’s direct). (wiki.openstreetmap.org)
If it just has building:levels=*, we can eyeball a building height based on how many building:levels it has, and then kind of sanity check it with imagery. Whereas prior, we had height data to use…OpenStreetMap guidance points out a common default in 3D rendering when height tags are not specified is around 3 meters per level. (wiki.openstreetmap.org)
If neither, then that building could be treated as unknown height, and rely more on street width + visual confirmation.

Street-orientation heuristics (good starting points, not universal rules)

Once you’ve got sun azimuth for your time window, often you can just pick the better sidewalk without math: walk on the side “behind” tall things relative to the sun. In many locations in the U.S. the sun is in the southern half of the sky around noon for most of the year—with its midday rays falling then on north-side sidewalks giving them an edge in potential shady places to walk. Verify with azimuth for your own exact location/date, of course. (gml.noaa.gov)

  • Morning: sun is in the east sky, tending to make west-cast shadows: the west sides of tall obstacles will get shaded.
  • And vice versa for the afternoon: as the sun moves west, it casts shadows to the east of tall things and then those east-sides get shadowed.
  • Near midday, focus on north/south relationships and object height vs width of the street.

How to “see” sun orientation on a map (rather than by eyeballing it)

If you don’t want to eyeball the direction the sun was coming from (look): use a site’s api that outputs azimuth/elevation (NOAA) or that draws the sun direction line on a map (SunCalc-based tools). SunCalc is a library for calculating sun position and sunlight phases from environmental data at a specified location and time. (github.com)

  1. Get sun azimuth for your time window (example: 1:00PM on July date)
  2. On a north-up map, treat that azimuth as an arrow that is showing where sunlight is coming from: it’s coming from the skyline, toward you, so orient that arrow to mean sun direction that way
  3. Flip it 180° to get the general direction of the shadows
  4. Repeat, this time for a winter date/time. If a corridor is shaded in summer midday AND still shaded in winter midday, it’s a strong candidate for “year-round shade.”

Going deeper: Use LiDAR/3D elevation data to model shade (best for planners and power users)

If you want more than “pretty good” predictions you can model shade from 3D data. LiDAR point clouds let you build Digital Terrain Models (DTMs) depicting bare ground and Digital Surface Models (DSMs) which include vegetation (specifically treetops) and other man-made features, e.g. tops of buildings. (usgs.gov)

In the U.S. a major source of 3D elevation data is the USGS 3D Elevation Program (3DEP) managed by the USGS National Geospatial Program. (usgs.gov)

Two practical modeling approaches (choose one):

Shade modeling approaches compared
Approach What you need Pros Cons
Fast heuristic (sun angles + street canyons) Any map + NOAA/SunCalc angles Quick, works anywhere, no downloads Less precise around complex shapes/trees
3D raster modeling (DSM/DEM + sun shadows) DSM (or DSM+DTM), sun position, GIS tools Most accurate, captures terrain + canopy More setup, data varies by region

Example GIS workflow (high accuracy):
Get elevation data download or access a DSM (ideally a bare earth DTM too if you want to be fancy) which you can derive from a LiDAR file. Remember: a DSM necessarily includes things like buildings and treetops; a DTM is just bare earth. (usgs.gov)
Pick a test date/time (your window for commuting scale + summer/winter comparison). Compute cast shadows for each test time. One option is GRASS GIS: r.sunmask calculates cast shadow areas from sun position and an elevation raster, and it can compute sun position from date/time. (grass.osgeo.org)

  1. Overlay shadows with your street/sidewalk network and score segments by “percent shaded” for each test time.
  2. Keep only segments that score well across your seasons (and prune anything with poor pedestrian connectivity or unsafe crossings).

Why DSM matters: If your raster lacks buildings and canopy (a bare-earth terrain model), you’ll under-predict shade in dense cities and tree-lined neighborhoods.

How to verify your shaded route before you rely on it

  1. Check street-level imagery in at least two seasons (leaf-on and leaf-off) if possible.
  2. Do one real-world test walk at your key time window (or as close as you can). Note where the sun breaks through.
  3. Watch for “shade killers”: wide intersections, parking lots, low-rise gaps between tall buildings, and south-facing open plazas.
  4. Re-route around the bright spots—even a single sunny block can make the whole route feel much hotter.

Common mistakes (and how to avoid them)

  • Assuming a tree-lined street is shaded at noon in summer: tall, sparse crowns can leave a bright “sun stripe” on the sidewalk.
  • One date/time only: that great shade at 9 AM could be terrible at 2 PM.
  • Forgetting deciduous loss of leaves: a lot of kind of look shady streets are out in the open when you think about them in winter.
  • Trusting map height data without checking: OSM height/levels may not be there at all, and even when they are may be wrong. Use them as a starting point, and check.
  • Optimizing for shade but not walkability: there could be missing sidewalks, bad crossings, construction closures, private property blocking safe zones.

Optional: Pull trees and building heights from OpenStreetMap (power user time saver)

If you’re comfortable with map data tools, OSM can be a source of structured hints for year-round shade hunting: individual trees (natural=tree) can come with leaf_cycle and height, and buildings can result with height and building:levels.

If you access OSM data for decision making, you should incorporate a verification habit of cross-referencing with imagery and a quick site visit—OSM quality varies by neighborhood and eliminates a lot of transparency regarding accuracy.

FAQ

Q: I want to scout a path to more shade for this walk today. What’s the quickest, simplest way to do that?
A: You can use a sun-position tool to get azimuth/elevation for that walk time, then take the sidewalks that are “behind” the tallest buildings—the sidewalks away from the direction that the sun is coming from—and confirm in a street-level imagery way for tree canopy and breaks in the shade shelter. (NOAA’s solar calculator is a pretty good way to get azimuth/elevation).
  • Q: Are evergreen trees always “better” for year-round shade routes? (Even compared to deciduous trees that block summer heat?)
    A: They’re often better—which is a word that depends on levels of comfort sought, sun in winter can be pretty nice (and warmer) so a certain level of winter sun exposure might be sought on the coldest months—but not always.
  • Q: Is building:levels a reliable way to assert height of a building?
    A: It’s useful, but kind of imperfect. OpenStreetMap defines building:levels as above-ground non-roof levels and notes that height per level is not necessarily consistent; use direct height tags if possible, or verify the heights by imagery.
  • Q: If I model shadows from elevation data, what should I search for?
    A: Look for a DSM (Digital Surface Model)—it’ll have the treetops and building tops; a DTM very well may represent only bare ground, and part of the thought of that urban shade will have to be chucked.
  1. NOAA Solar Position Calculator (azimuth & elevation definitions) — URL
  2. SunCalc (Vladimir Agafonkin) — library for sun/moon positions and sunlight phases — URL
  3. OpenStreetMap Wiki — Tag:natural=tree (tree + leaf cycle/type tags) — URL
  4. OpenStreetMap Wiki — Key:building:levels (definition and guidance) — URL
  5. OpenStreetMap Wiki — Key:height (height=* tagging guidance) — URL
  6. USGS — 3D models derived from lidar point cloud data (DTM vs DSM explanation) — URL
  7. USGS — What is 3DEP? (U.S. 3D Elevation Program overview) — URL
  8. GRASS GIS manual — r.sunmask (cast shadow areas from sun position + elevation raster) — URL

Leave a Reply

Your email address will not be published. Required fields are marked *