This package will extract daily data from netCDF4 files downloaded at GES DISC database"
Project description
Welcome to XCODEX - XCO2 Daily EXtractor
Hi there! My name is Henrique.
The creation of this Python package was intended to create a simple solution for extracting daily data from XCO2 retrieved from the GES DISC platform.
I will attach the links containing the GitHub profile of the researchers who helped me in the development of this package along with graphical visualization of the data and the citation of the OCO-2 project.
I hope it's useful to you. Long live science!
Instaling the package
To install the package, use the command:
pip install xcodex
Using XCODEX
There's the possibility to download the .nc4 files directly here:
# Setting historical serie
from Util.download_data import download_file
start_date = "1st of February, 2022"
end_date = "28th of February, 2022"
# Downloading .nc4 files
download_file(start_date, end_date)
Note that ERROR 401 usually is related to unavailable data.
Once the download is completed, a downloaded_data
folder will be created in your current path.
After that, let's use xco2_extract()
to retrieve XCO2 data from the .nc4 files:
from glob import glob
from os.path import join
from os import getcwd
# Selecting the folder with .nc4 files
arquive_folder = glob(join(getcwd(), "downloaded_data", "*.nc4"))
# Setting desired locations
locations = dict(Mauna_loa=[19.479488, -155.602829],
New_York=[40.712776, -74.005974],
Paris=[48.856613, 2.352222])
from xcodex.main import xco2_extract
df = xco2_extract(path=arquive_folder,
start=start_date,
end=end_date,
missing_data=False,
**locations) # Extracting XCO2
df
Note1: The location used in this example was Mauna Loa. Any location can be used
as long the format "Location[lat, lon]" is respected. The values of
latitude and longitude must be in decimal degrees.
for more information, please execute the command:
help(xco2_extractor)
Finally, you will have a pandas.Dataframe
as result. Now it's up to you how you'll
handle it. I recomend checking the Github profiles
below for data visualization.
Data visualization
Here we can plot in a map the locations:
## set mapbox access token
import plotly.express as px
import plotly.graph_objs as go
px.set_mapbox_access_token('pk.eyJ1Ijoic2FnYXJsaW1idTAiLCJhIjoiY2t2MXhhMm5mNnE5ajJ3dDl2eDZvNTM2NiJ9.1bwmb8HPgFZWwR8kcO5rOA')
# Plotly configs
fig= px.scatter_mapbox(df,
lat= 'lat',
lon= 'lon',
color= 'xco2',
zoom= .85,
width=960,
height=540,
size_max=10,
hover_name='city',
color_continuous_scale=px.colors.cyclical.IceFire)
fig.update_layout(mapbox_style="dark") #"open-street-map"
layout = go.Layout(margin=go.layout.Margin(
l=0,
r=0,
b=0,
t=0))
fig.update_layout(layout,
autosize=False,
height=540,
width=960,
hovermode="closest")
# Saving the output image
#fig.write_html('xcodex_map.html')
#fig.write_image("xcodex_map.png", scale=2)
fig.show()
And finally a way to observe the XCO2 behavior during the time serie:
# Showing XCO2 behavior in time serie
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(10,5))
sns.set_theme(font_scale=1, style="white")
sns.lineplot(data=df,
x="jd",
y='xco2',
hue='city',
errorbar=('ci',0),
palette="tab10")
plt.xlabel("")
plt.ylabel("XCO2 (ppm)")
plt.xlim(min(df.jd), max(df.jd))
plt.ylim(min(df.xco2), max(df.xco2))
sns.despine(right=False,
top=False)
plt.legend(ncol=3)
plt.tight_layout()
#plt.savefig("xcodex_locations.png", dpi=300)
plt.show()
GitHub profiles:
https://github.com/GlaucoRolim (Co-author)
https://github.com/kyuenjpl/ARSET_XCO2
https://github.com/sagarlimbu0/OCO2-OCO3
Please, cite this package as:
Laurito, H., Rolim, G., 2023. Extracting XCO2-NASA Daily data with XCODEX: A Python package designed for data extraction and structuration. Jaboticabal, SP, BR, (...)
Data source citation:
Brad Weir, Lesley Ott and OCO-2 Science Team (2022), OCO-2 GEOS Level 3 daily, 0.5x0.625 assimilated CO2 V10r, Greenbelt, MD, USA, Goddard Earth Sciences Data and Information Services Center (GES DISC), Accessed: 10/31/2022, doi: 10.5067/Y9M4NM9MPCGH
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file xcodex-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: xcodex-0.0.1-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19d24548c5717f45bb10b7ae8f54d10122e6571b8a1b45fa22cff91eb4bb321d |
|
MD5 | ae0369930db4a23a3bd5c3b72888dd6e |
|
BLAKE2b-256 | 8630c6f5c77aa6bd6611b8dae8d387923debd7e770f1a7e31bcbf00418413cf0 |