How to find NASA climate data – and how it is strong to fight the Climate Change PT. 1

You can't think about the most important data. Today, I saw a title like this: 'The heat waves are becoming increasingly dangerous with climate change.' You cannot say that we have never been warned. In 1988, we saw articles like this: 'The warmth of the world has begun, a professional tells Senate. 'And while data science played its role in revealing that we may have passed 1.5 ° C in Paris, there is much we can do. In some cases, people believe, but data is readily available, free, and easy to achieve. You can examine yourself! So in this episode, we'll do it. We will talk about surprisingly and fun ways of this date is currently being used to fight the effects of climate change.
But the weather data also is incredibly interesting. It is possible and see articles such as: The blue introduction of 6 to the subbital entryway is also delayed because of the weather. What makes you think, if we can send someone to the moon, why can it be sure of the weather? If it is difficult to describe, then a The Stochastic Multidimensional process It is possible. From the science of the data science, this is our RIEMEMANN problem, our P VS NP. How much we have to illustrate and understand the weather data will clap our coming decades in the future. This is the most important issue we may work.
And while New York has already passed the glaciers, you need to realize that weather turns are far worse than the tropical weather.
- Failure to harvest reduce global food safety, especially in vulnerable districts.
- Vector infections increase new regions as temperatures rise.
- The extinction is disturbing the environment and strength of planet.
- The Ocean Acivage can burn seafood chains, fishing threats and species.
- Freshwater water is decreased under the pressure of drought, contamination, and overuse.
But not all are lost; We will talk about some data used to deal with these problems. Here is a summary of some of the information that keeps track. We will get some of these parameters.
To get data
We will start by selecting interesting places to examine in this series. All we need is just link – clicking on Google Maps. I am slowly using decimal areas, but the maintenance of the Meteorological data is ½ ° X °, so there is no need for nothing.
interesting_climate_sites = {
"Barrow, Alaska (Utqiaġvik)": (71.2906, -156.7886), # Arctic warming, permafrost melt
"Greenland Ice Sheet": (72.0000, -40.0000), # Glacial melt, sea level rise
"Amazon Rainforest (Manaus)": (-3.1190, -60.0217), # Carbon sink, deforestation impact
"Sahara Desert (Tamanrasset, Algeria)": (22.7850, 5.5228), # Heat 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, heat + humidity
"Svalbard, Norway": (78.2232, 15.6469), # Fastest Arctic warming
"McMurdo Station, Antarctica": (-77.8419, 166.6863), # Ice loss, ozone hole proximity
"Cape Town, South Africa": (-33.9249, 18.4241), # Water scarcity, shifting rainfall
"Mexico City, Mexico": (19.4326, -99.1332), # Air pollution, altitude-driven weather
"Reykjavík, Iceland": (64.1355, -21.8954), # Glacial melt, geothermal dynamics
}
Follow, let us choose certain parameters. You can convert them to the parameter dictionary

You can only ask in one community at a time, so we include parameters a community.
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 this data used?
- AG = Agriculture. Agricultural experts often use this community in plants for growing, such as DSSat and APSIM, and in Ewesis Planners such as FAO Cropwat. It is also used for the pressure of the temperature of LiveTock temperature and construction Last food safety programs. This helps reduce food insecurity due to climate change. This data follows the Agroeconomic meetings, allows it to be taken directly into tools support for agricultural resolution.
- Re = renewable energy. Given the name and that the fact that you can receive windspeed data from here, you may be able to guess its use. This data is mostly used to predict a long-term crop. The wind speed of turbines, sun rays of solar farms. This data can be made on PVSYST, Unrel-Sam and Windms to measure fruit yields and annual expenses. This data supports everything from the roof of the roof house of a national roof.
- SB = stable buildings. HVAC's buildings and engineers use this data to ensure that their properties comply with the application of the power of power, such as IEC or Ashrae 90.1. It can be cast directly to the power performance, opensudio, retres, or leeds / ashra following compliance and verifying properties accessing the code.
We now select the first day and end.
start_date = "19810101"
end_date = "20241231"
Making API Call is overwhelmed, using work. We will work with daily data, but if you like annually, month, or hour old, you just need to change the URL to
… / temporarily / {solution} / point.
import requests
import pandas as pd
def get_nasa_power_data(lat, lon, parameters, community, start, end):
"""
Fetch daily data from NASA POWER API for given parameters and location.
Dates must be in YYYYMMDD format (e.g., "20100101", "20201231").
"""
url = "
params = {
"parameters": ",".join(parameters),
"community": community,
"latitude": lat,
"longitude": lon,
"start": start,
"end": end,
"format": "JSON"
}
response = requests.get(url, params=params)
data = response.json()
if "properties" not in data:
print(f"Error fetching {community} data for lat={lat}, lon={lon}: {data}")
return pd.DataFrame()
# Build one DataFrame per parameter, then combine
param_data = data["properties"]["parameter"]
dfs = [
pd.DataFrame.from_dict(values, orient="index", columns=[param])
for param, values in param_data.items()
]
df_combined = pd.concat(dfs, axis=1)
df_combined.index.name = "Date"
return df_combined.sort_index().astype(float)
This work returns the parameters we have requested in the community we explained. It also turns JSON to data data. Each answer always contains the building key – if it is lost, printing a mistake.
Let's call this work in the loop to download the data of all our areas.
all_data = {}
for city, (lat, lon) in interesting_climate_sites.items():
print(f"Fetching daily data for {city}...")
city_data = {}
for community, params in community_params.items():
df = get_nasa_power_data(lat, lon, params, community, start_date, end_date)
city_data[community] = df
all_data[city] = city_data
Currently, our data is a dictionary when the values are available and dictionaries. It looks like this:

This makes using data complicated. Next, we combine this in one datafframe. We join the information and reason. Since there was no lost values, internal joining would produce the same effect.
# 1) For each city, join its communities on the date index
city_dfs = {
city: comms["AG"]
.join(comms["RE"], how="outer")
.join(comms["SB"], how="outer")
for city, comms in all_data.items()
}
# 2) Concatenate into one MultiIndexed DF: index = (City, Date)
combined_df = pd.concat(city_dfs, names=["City", "Date"])
# 3) Reset the index so City and Date become columns
combined_df = combined_df.reset_index()
# 4) Bring latitude/longitude in as columns
coords = pd.DataFrame.from_dict(
interesting_climate_sites, orient="index", columns=["Latitude", "Longitude"]
).reset_index().rename(columns={"index": "City"})
combined_df = combined_df.merge(coords, on="City", how="left")
# then save into your Drive folder
combined_df.to_csv('/content/drive/MyDrive/climate_data.csv', index=False)
If you are tired to enter the day codes, you can also use Tool to access data. Just click anywhere on the map to find data. Here I clicked in Venice. Then choose the community, a temporary rate, and your preferred file type, CSV, JSON, ASCII, NETCDF, and call Send. A few clicks and you can get all the weather information on the earth.

Sanity check
Now, let's make a quick sanity check to ensure that logical data.
import matplotlib.pyplot as plt
import seaborn as sns # Import seaborn
# Load data
climate_df = pd.read_csv('/content/drive/MyDrive/TDS/Climate/climate_data.csv')
climate_df['Date'] = pd.to_datetime(climate_df['Date'].astype(str), format='%Y%m%d')
# Filter for the specified 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 different colors for each city
plt.figure(figsize=(12, 8))
# Use a colormap for more aesthetic colors
colors = sns.color_palette("Set2", len(selected_cities)) # Using a seaborn color palette
for i, city in enumerate(selected_cities):
df_city = df_selected_cities[df_selected_cities['City'] == city]
plt.scatter(df_city['Date'], df_city['T2M'], label=city, s=2, color=colors[i]) # Using T2M for temperature and smaller dots
plt.xlabel('Date')
plt.ylabel('Temperature (°C)')
plt.title('Daily Temperature (°C) for Selected Cities')
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()
Yes, Bangkok's temperatures are slowly hotter than the arctic.

# Filter for the specified cities
selected_cities = [
'Cape Town, South Africa',
'Amazon Rainforest (Manaus)',
]
df_selected_cities = climate_df[climate_df['City'].isin(selected_cities)].copy()
# Set up the color palette
colors = 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, city in enumerate(selected_cities):
df_city = df_selected_cities[df_selected_cities['City'] == city]
axes[i].scatter(df_city['Date'], df_city['PRECTOTCORR'], s=2, color=colors[i])
axes[i].set_title(f'Daily Precipitation in {city}')
axes[i].set_ylabel('Precipitation (mm)')
axes[i].grid(alpha=0.3)
# Label x-axis only on the bottom subplot
axes[-1].set_xlabel('Date')
plt.tight_layout()
plt.show()
Yes, it goes rain over the Amazon rain forest rather than South Africa.
South Africa meets drought, which places a lot of responsibility in the agricultural sector.

# Filter for Mexico City
df_mexico = climate_df[climate_df['City'] == 'Mexico City, Mexico'].copy()
# Create the plot
plt.figure(figsize=(12, 6))
sns.set_palette("husl")
plt.scatter(df_mexico['Date'], df_mexico['WS2M'], s=2, label='WS2M (2m Wind Speed)')
plt.scatter(df_mexico['Date'], df_mexico['WS50M'], s=2, label='WS50M (50m Wind Speed)')
plt.xlabel('Date')
plt.ylabel('Wind Speed (m/s)')
plt.title('Daily Wind Speeds at 2m and 50m in Mexico City')
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()
Yes, air speeds in 50 meters are more faster than 2 meters.
Usually, your climb, the wind is fast. In flight altitude, the wind can reach 200 km / h. That is, until you reach the space in 100,000 meters.

We will look great closely at the following chapters.
It is hot
We just passed through the temperature in Toronto. With the sounds of my AC made, I think it's almost broken. But at the temperature graph, you need to care carefully to see that they are increasing. This is because there is a period of time and a different year. Things become clear when we look at the average annual. We call Anomaly the difference between specific year and basis. The foundation for the general heat over 1981-2024, we can see that the latest year of year is far higher than the foundation, especially due to cool temperature. True discussion equally; The average year of year is very low than the basis due to hot temperatures in recent years.
And all the technical articles there are here, articles such as'Grammar As Annex: Trojan Horse to consider the NLP Natl '. I hope you are not discarded for simple restoration. But that's all you need to show that temperatures are increasing. However, people don't believe.
# 1) Filter for Sahara Desert and exclude 2024
city = 'Sahara Desert (Tamanrasset, Algeria)'
df = (
climate_df
.loc[climate_df['City'] == city]
.set_index('Date')
.sort_index()
)
# 2) Compute annual mean & anomaly
annual = df['T2M'].resample('Y').mean()
baseline = annual.mean()
anomaly = annual - baseline
# 3) 5-year rolling mean
roll5 = anomaly.rolling(window=5, center=True, min_periods=3).mean()
# 4) Linear trend
years = anomaly.index.year
slope, intercept = np.polyfit(years, anomaly.values, 1)
trend = slope * years + intercept
# 5) Plot
plt.figure(figsize=(10, 6))
plt.bar(years, anomaly, color='lightgray', label='Annual Anomaly')
plt.plot(years, roll5, color='C0', linewidth=2, label='5-yr Rolling Mean')
plt.plot(years, trend, color='C3', linestyle='--', linewidth=2,
label=f'Trend: {slope:.3f}°C/yr')
plt.axhline(0, color='k', linewidth=0.8, alpha=0.6)
plt.xlabel('Year')
plt.ylabel('Temperature Anomaly (°C)')
plt.title(f'{city} Annual Temperature Anomaly')
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()

Sahara is hot at 0.03 ° C for a year. That is the most hot desert in the world. We can explore everywhere we have chosen and see that it is not one thing that has a negative habit.

Therefore, temperatures are rising.
The forest of the trees
The main reason for NASA makes this open source struggle for climate change results. We have said to adapt the crop yield, renewable energy, and construction of construction. However, there are additional data options that can be used to deal with the weather changes in scientific and statistics. If you are interested in this article, the video of Luis SECO includes things I did not find it talking to this article, such as the
- Carbon's trade and carbon price
- The tool for prediction is biomass tooling to prepare for the planting of trees
- Drinking water safe in Kenya
- Social Cost of Exit
- Blowing burning of forests
I hope you will join me on this journey. In the next piece, we will discuss how mathematization used for climate model. And while most done to deal with weather changes, the previous list of results did not end.
- Melting of the Ice Sheets Fiser Fiserm Global Consureolation and accelerate the increase in sea level.
- DEVELOPMENT DEVELOPMENTS with disabled weather with rising infrastructure and health costs.
- The growing number of climate refugees is boundaries and geopopolitical stability not to do.
- Coastal Cities dealt with importance as the sea rises in chronic
- Extract Weather Events Shirtret Records, from the millions.
But there is sound, and there is a sign, and they can be separated.

Resources
- The impacts of climate change | National Sea Management and Sea. (ND).
- Freetman, UA. (2025, June 23). Heat waves acquire more dangerous with climate change – and we may be under suicide. CNN.
- International Weather forecasts show temperatures expected to remain in the record level or near future for 5 years. The Meteorological organization of the country. (2025, May 26).
- The temperature has begun, a professional tells Senate (published 1988). New York Times. (1988, June 24).
- NASA. (ND). NASA Larc Power project. NASA.
- Wall, M. (2025, June 20). Blue Bround to introduce 6 to 6th people in the space under the return of June 29 after weather delay. Space.
The code available here



