Saturday, August 30, 2025

Tips on how to Entry NASA’s Local weather Information — And How It’s Powering the Struggle Towards Local weather Change Pt. 1


can’t consider a extra vital dataset. Simply at the moment, I noticed a headline like this: ‘Warmth Waves Are Getting Extra Harmful with Local weather Change.’ You’ll be able to’t say we haven’t been warned. In 1988, we noticed headlines like this: ‘International Warming Has Begun, Skilled Tells Senate.’ And whereas knowledge science has performed its position in revealing that we’ll possible surpass the 1.5 °C goal set by the Paris Settlement, there may be much more we could possibly be doing. For one, individuals don’t imagine it, but the info is available, free, and simple to entry. You’ll be able to verify it your self! So on this episode, we are going to. We’ll additionally speak concerning the stunning and attention-grabbing methods this knowledge is presently being utilized to fight the results of local weather change. 

However local weather knowledge can be extremely attention-grabbing. You’ve most likely additionally seen headlines like: Blue Origin launch of 6 individuals to suborbital house delayed once more attributable to climate. Which makes you suppose, if we will ship somebody to the moon, then why can’t we make certain concerning the climate? If troublesome doesn’t describe it, then a multidimensional stochastic course of may. From a knowledge science perspective, that is our Riemann Speculation, our P vs NP drawback. How effectively we will mannequin and perceive local weather knowledge will form our subsequent many years on this earth. That is crucial drawback we could possibly be engaged on. 

And whereas New York simply went by way of a warmth wave, it’s mandatory to notice that local weather change is worse than simply hotter climate. 

  • Failing harvests undermine world meals safety, particularly in weak areas.
  • Vector-borne illnesses develop into new areas as temperatures rise.
  • Mass extinctions disrupt ecosystems and erode planetary resilience.
  • Ocean acidification unravels marine meals chains, threatening fisheries and biodiversity.
  • Freshwater provides dwindle underneath the strain of drought, air pollution, and overuse.

However not all is misplaced; we are going to discuss a few of the methods knowledge has been used to handle these issues. Right here’s a abstract of a few of the knowledge NASA retains observe of. We’ll entry a few of these parameters.

Picture by Creator

Getting the knowledge

We’ll begin by selecting some attention-grabbing areas we’ll look at on this collection. All we’d like are their coordinates — a click on away on Google Maps. I take advantage of fairly a little bit of decimal locations right here, however the meteorological knowledge supply decision is ½° x ⅝°, so there’s no must be this correct. 

interesting_climate_sites = {
    "Barrow, Alaska (Utqiaġvik)": (71.2906, -156.7886),    # Arctic warming, permafrost soften
    "Greenland Ice Sheet": (72.0000, -40.0000),            # Glacial soften, sea degree rise
    "Amazon Rainforest (Manaus)": (-3.1190, -60.0217),     # Carbon sink, deforestation influence
    "Sahara Desert (Tamanrasset, Algeria)": (22.7850, 5.5228),  # Warmth extremes, desertification
    "Sahel (Niamey, Niger)": (13.5128, 2.1127),            # Precipitation shifts, droughts
    "Sydney, Australia": (-33.8688, 151.2093),             # Heatwaves, bushfires, El Niño sensitivity
    "Mumbai, India": (19.0760, 72.8777),                   # Monsoon variability, coastal flooding
    "Bangkok, Thailand": (13.7563, 100.5018),              # Sea-level rise, warmth + humidity
    "Svalbard, Norway": (78.2232, 15.6469),                # Quickest Arctic warming
    "McMurdo Station, Antarctica": (-77.8419, 166.6863),   # Ice loss, ozone gap proximity
    "Cape City, South Africa": (-33.9249, 18.4241),        # Water shortage, shifting rainfall
    "Mexico Metropolis, Mexico": (19.4326, -99.1332),            # Air air pollution, altitude-driven climate
    "Reykjavík, Iceland": (64.1355, -21.8954),             # Glacial soften, geothermal dynamics
}

Subsequent, let’s choose some parameters. You’ll be able to flip by way of them within the Parameter Dictionary https://energy.larc.nasa.gov/parameters/

Picture by Creator

You’ll be able to solely request from one group at a time, so we group the parameters by group.

community_params = {
    "AG": ["T2M","T2M_MAX","T2M_MIN","WS2M","ALLSKY_SFC_SW_DWN","ALLSKY_SFC_LW_DWN",
           "CLRSKY_SFC_SW_DWN","T2MDEW","T2MWET","PS","RAIN","TS","RH2M","QV2M","CLOUD_AMT"],
    "RE": ["WD2M","WD50M","WS50M"],
    "SB": ["IMERG_PRECTOT"]
}

How is that this knowledge used?

  • AG = Agricultural. Agroeconomists usually use this group in crop development fashions, reminiscent of DSSAT and APSIM, in addition to in irrigation planners like FAO CROPWAT. It’s additionally used for livestock warmth stress evaluation and in constructing meals safety early warning techniques. This helps mitigate meals insecurity attributable to local weather change. This knowledge follows agroeconomic conventions, permitting it to be ingested instantly by agricultural decision-support instruments.
  • RE = Renewable Vitality. Given the identify and the truth that you may get windspeed knowledge from right here, you may have the ability to guess its use. This knowledge is primarily used to forecast long-term power yields. Wind pace for generators, photo voltaic radiation for photo voltaic farms. This knowledge could be fed into PVsyst, NREL-SAM and WindPRO to estimate annual power yields and prices. This knowledge helps all the things from rooftop array design to nationwide clear power targets.
  • SB = Sustainable Buildings. Architects and HVAC engineers make the most of this knowledge to make sure their buildings adjust to power efficiency laws, like IECC or ASHRAE 90.1. It may be instantly dropped into EnergyPlus, OpenStudio, RETScreen, or LEED/ASHRAE compliance calculators to confirm buildings are as much as code.

Now we decide a begin and finish date. 

start_date = "19810101"
end_date   = "20241231"

To make the API name one thing repeatable, we use a operate. We’ll work with every day knowledge, however in the event you choose yearly, month-to-month, and even hourly knowledge, you simply want to vary the URL to 

…/temporal/{decision}/level.

import requests
import pandas as pd

def get_nasa_power_data(lat, lon, parameters, group, begin, finish):
    """
    Fetch every day knowledge from NASA POWER API for given parameters and site.
    Dates have to be in YYYYMMDD format (e.g., "20100101", "20201231").
    """
    url = "https://energy.larc.nasa.gov/api/temporal/every day/level"
    params = {
        "parameters": ",".be a part of(parameters),
        "group": group,
        "latitude": lat,
        "longitude": lon,
        "begin": begin,
        "finish": finish,
        "format": "JSON"
    }
    response = requests.get(url, params=params)
    knowledge = response.json()

    if "properties" not in knowledge:
        print(f"Error fetching {group} knowledge for lat={lat}, lon={lon}: {knowledge}")
        return pd.DataFrame()

    # Construct one DataFrame per parameter, then mix
    param_data = knowledge["properties"]["parameter"]
    dfs = [
        pd.DataFrame.from_dict(values, orient="index", columns=[param])
        for param, values in param_data.objects()
    ]
    df_combined = pd.concat(dfs, axis=1)
    df_combined.index.identify = "Date"
    return df_combined.sort_index().astype(float)

This operate retrieves the parameters we requested from the group we specified. It additionally converts JSON right into a dataframe. Every response all the time comprises a property key — if it’s lacking, we print an error.

Let’s name this operate in a loop to fetch the info for all our areas. 

all_data = {}
for metropolis, (lat, lon) in interesting_climate_sites.objects():
    print(f"Fetching every day knowledge for {metropolis}...")
    city_data = {}
    for group, params in community_params.objects():
        df = get_nasa_power_data(lat, lon, params, group, start_date, end_date)
        city_data[community] = df
    all_data[city] = city_data

Proper now, our knowledge is a dictionary the place the values are additionally dictionaries. It seems like this:

This makes utilizing the info difficult. Subsequent, we mix these into one dataframe. We be a part of on the info after which concatenate. Since there have been no lacking values, an internal be a part of would yield the identical consequence. 

# 1) For every metropolis, be a part of its communities on the date index
city_dfs = {
    metropolis: comms["AG"]
                .be a part of(comms["RE"], how="outer")
                .be a part of(comms["SB"], how="outer")
    for metropolis, comms in all_data.objects()
}

# 2) Concatenate into one MultiIndexed DF: index = (Metropolis, Date)
combined_df = pd.concat(city_dfs, names=["City", "Date"])

# 3) Reset the index so Metropolis and Date develop into columns
combined_df = combined_df.reset_index()

# 4) Deliver latitude/longitude in as columns
coords = pd.DataFrame.from_dict(
    interesting_climate_sites, orient="index", columns=["Latitude", "Longitude"]
).reset_index().rename(columns={"index": "Metropolis"})

combined_df = combined_df.merge(coords, on="Metropolis", how="left")

# then save into your Drive folder
combined_df.to_csv('/content material/drive/MyDrive/climate_data.csv', index=False)

If you happen to’re bored with coding for the day, you may as well use their knowledge entry device. Simply click on wherever on the map to retrieve the info. Right here I clicked on Venice. Then simply choose a Neighborhood, Temporal Common, and your most popular file kind, CSV, JSON, ASCII, NETCDF, and hit submit. A few clicks and you may get all of the climate knowledge on this planet. 

https://energy.larc.nasa.gov/data-access-viewer

Picture by Creator

Sanity verify

Now, let’s carry out a fast sanity verify to confirm that the info we’ve got is sensible.  

import matplotlib.pyplot as plt
import seaborn as sns # Import seaborn

# Load knowledge
climate_df = pd.read_csv('/content material/drive/MyDrive/TDS/Local weather/climate_data.csv')
climate_df['Date'] = pd.to_datetime(climate_df['Date'].astype(str), format='%Ypercentmpercentd')

# Filter for the required cities
selected_cities = [
    'McMurdo Station, Antarctica',
    'Bangkok, Thailand',
]
df_selected_cities = climate_df[climate_df['City'].isin(selected_cities)].copy()

# Create a scatter plot with totally different colours for every metropolis
plt.determine(figsize=(12, 8))

# Use a colormap for extra aesthetic colours
colours = sns.color_palette("Set2", len(selected_cities)) # Utilizing a seaborn colour palette

for i, metropolis in enumerate(selected_cities):
    df_city = df_selected_cities[df_selected_cities['City'] == metropolis]
    plt.scatter(df_city['Date'], df_city['T2M'], label=metropolis, s=2, colour=colours[i]) # Utilizing T2M for temperature and smaller dots

plt.xlabel('Date')
plt.ylabel('Temperature (°C)')
plt.title('Day by day Temperature (°C) for Chosen Cities')
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.present()

Sure, temperatures in Bangkok are fairly a bit hotter than within the Arctic.

Picture by Creator
# Filter for the required cities
selected_cities = [
    'Cape Town, South Africa',
    'Amazon Rainforest (Manaus)',
]
df_selected_cities = climate_df[climate_df['City'].isin(selected_cities)].copy()

# Arrange the colour palette
colours = sns.color_palette("Set1", len(selected_cities))

# Create vertically stacked subplots
fig, axes = plt.subplots(nrows=2, ncols=1, figsize=(12, 10), sharex=True)

for i, metropolis in enumerate(selected_cities):
    df_city = df_selected_cities[df_selected_cities['City'] == metropolis]
    axes[i].scatter(df_city['Date'], df_city['PRECTOTCORR'], s=2, colour=colours[i])
    axes[i].set_title(f'Day by day Precipitation in {metropolis}')
    axes[i].set_ylabel('Precipitation (mm)')
    axes[i].grid(alpha=0.3)

# Label x-axis solely on the underside subplot
axes[-1].set_xlabel('Date')

plt.tight_layout()
plt.present()

Sure, it’s raining extra within the Amazon Rainforest than in South Africa. 

South Africa experiences droughts, which place a major burden on the agricultural sector. 

Picture by Creator
# Filter for Mexico Metropolis
df_mexico = climate_df[climate_df['City'] == 'Mexico Metropolis, Mexico'].copy()

# Create the plot
plt.determine(figsize=(12, 6))
sns.set_palette("husl")

plt.scatter(df_mexico['Date'], df_mexico['WS2M'], s=2, label='WS2M (2m Wind Velocity)')
plt.scatter(df_mexico['Date'], df_mexico['WS50M'], s=2, label='WS50M (50m Wind Velocity)')

plt.xlabel('Date')
plt.ylabel('Wind Velocity (m/s)')
plt.title('Day by day Wind Speeds at 2m and 50m in Mexico Metropolis')
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.present()

Sure, wind speeds at 50 meters are so much sooner than at 2 meters. 

Usually, the upper you go, the sooner the wind strikes. At flight altitude, the wind can attain speeds of 200 km/h. That’s, till you attain house at 100,000 meters. 

Picture by Creator

We’ll take a a lot nearer take a look at this knowledge within the following chapters.

It’s heating up

We simply went by way of a warmth wave right here in Toronto. By the sounds my AC made, I feel it almost broke. However in a temperature graph, it is advisable look fairly fastidiously to see that they’re rising. It’s because there may be seasonality and important variability. Issues develop into clearer after we take a look at the yearly common. We name an anomaly the distinction between the common for a particular 12 months and the baseline. The baseline being the common temperature over 1981–2024, we will then see that the current yearly common is considerably larger than the baseline, primarily because of the cooler temperatures current in earlier years. The converse is equally true; The early yearly common is considerably decrease than the baseline attributable to hotter temperatures in recent times. 

With all of the technical articles current right here, headlines like ‘Grammar as an Injectable: A Trojan Horse to NLP Pure Language Processing’. I hope you’re not disenchanted by a easy linear regression. However that’s all it takes to indicate that temperatures are rising. But individuals don’t imagine. 

# 1) Filter for Sahara Desert and exclude 2024
metropolis = 'Sahara Desert (Tamanrasset, Algeria)'
df = (
    climate_df
    .loc[climate_df['City'] == metropolis]
    .set_index('Date')
    .sort_index()
)

# 2) Compute annual imply & anomaly
annual = df['T2M'].resample('Y').imply()
baseline = annual.imply()
anomaly = annual - baseline

# 3) 5-year rolling imply
roll5 = anomaly.rolling(window=5, heart=True, min_periods=3).imply()

# 4) Linear pattern
years = anomaly.index.12 months
slope, intercept = np.polyfit(years, anomaly.values, 1)
pattern = slope * years + intercept

# 5) Plot
plt.determine(figsize=(10, 6))
plt.bar(years, anomaly, colour='lightgray', label='Annual Anomaly')
plt.plot(years, roll5, colour='C0', linewidth=2, label='5-yr Rolling Imply')
plt.plot(years, pattern, colour='C3', linestyle='--', linewidth=2,
         label=f'Pattern: {slope:.3f}°C/yr')
plt.axhline(0, colour='okay', linewidth=0.8, alpha=0.6)

plt.xlabel('12 months')
plt.ylabel('Temperature Anomaly (°C)')
plt.title(f'{metropolis} Annual Temperature Anomaly')
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.present()
Picture by Creator

The Sahara is getting hotter by 0.03°C per 12 months. That’s the most well liked desert on this planet. We will even verify each location we picked and see that not a single one has a adverse pattern.

Picture by Creator

So sure, Temperatures are rising. 

The forest for the bushes

An enormous motive NASA makes this knowledge open-source is to fight the results of Local weather Change. We’ve talked about modelling crop yields, renewable power, and sustainable constructing compliance. Nevertheless, there are further methods knowledge could be utilized to handle local weather change in a scientific and mathematically grounded method. If you happen to’re on this matter, this video by Luis Seco covers issues I didn’t get to handle on this article, like

  • The carbon commerce and the worth of carbon
  • Predictive biomass device optimizing tree planting
  • Secure ingesting water in Kenya 
  • The socioeconomic prices of emissions
  • Managed burning of forests

I hope you’ll be a part of me on this journey. Within the subsequent episode, we are going to focus on how differential equations have been used to mannequin local weather. And whereas a lot is being achieved to handle local weather change, the sooner checklist of results was not exhaustive. 

  • Melting ice sheets destabilize world local weather regulation and speed up sea-level rise.
  • Local weather-related damages cripple economies by way of escalating infrastructure and well being prices.
  • Rising numbers of local weather refugees pressure borders and gas geopolitical instability.
  • Coastal cities face submersion as seas rise relentlessly
  • Excessive climate occasions shatter data, displacing hundreds of thousands.

However there’s noise, and there’s sign, and they are often separated. 

Sources

  • Local weather change impacts | Nationwide Oceanic and Atmospheric Administration. (n.d.). https://www.noaa.gov/schooling/resource-collections/local weather/climate-change-impacts
  • Freedman, A. (2025, June 23). Warmth waves are getting extra harmful with local weather change – and we should still be underestimating them. CNN. https://www.cnn.com/2025/06/23/local weather/heat-wave-global-warming-links
  • International local weather predictions present temperatures anticipated to stay at or close to report ranges in coming 5 years. World Meteorological Group. (2025, Might 26). https://wmo.int/information/media-centre/global-climate-predictions-show-temperatures-expected-remain-or-near-record-levels-coming-5-years
  • International warming has begun, skilled tells Senate (revealed 1988). The New York Occasions. (1988, June 24). https://internet.archive.org/internet/20201202103915/https:/www.nytimes.com/1988/06/24/us/global-warming-has-begun-expert-tells-senate.html
  • NASA. (n.d.). NASA LARC POWER Mission. NASA. https://energy.larc.nasa.gov/
  • Wall, M. (2025, June 20). Blue Origin to launch 6 individuals to Suborbital Area June 29 after climate delay. Area. https://www.house.com/space-exploration/private-spaceflight/watch-blue-origin-launch-6-people-to-suborbital-space-on-june-21

Code Obtainable Right here

Linkedin

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles

PHP Code Snippets Powered By : XYZScripts.com