Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add argo functionality to QUEST #427

Merged
merged 140 commits into from
Dec 7, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
b907af5
Adding argo search and download script
kelseybisson Feb 23, 2022
fb5fc55
Create get_argo.py
kelseybisson Feb 23, 2022
715440b
begin implementing argo dataset
RomiP Feb 28, 2022
d2260d6
1st draft implementing argo dataset
RomiP Mar 8, 2022
71cfedc
implement search_data for physical argo
RomiP Apr 26, 2022
ec564fa
doctests and general cleanup for physical argo query
RomiP Jun 13, 2022
4fb5974
beginning of BGC Argo download
RomiP Jun 23, 2022
3bd2739
parse BGC profiles into DF
RomiP Jun 27, 2022
06835d5
plan to query BGC profiles
RomiP Aug 29, 2022
dac11de
validate BGC param input function
RomiP Sep 6, 2022
dd47dc5
order BGC params in order in which they should be queried
RomiP Sep 12, 2022
88722a1
fix bug in parse_into_df() - init blank df to take in union of params…
RomiP Sep 19, 2022
bf3cd70
identify profiles from initial API request containing all required pa…
RomiP Oct 3, 2022
fcb2422
creates df with only profiles that contain all user specified params
RomiP Oct 24, 2022
eb9c8ae
modified to populate prof df by querying individual profiles
RomiP Nov 21, 2022
1582f5b
finished up BGC argo download!
RomiP Nov 28, 2022
f55fd61
assert bounding box type in Argo init, begin framework for unit tests
RomiP Jan 17, 2023
d6d3872
Adding argo search and download script
kelseybisson Feb 23, 2022
7fc3b79
Create get_argo.py
kelseybisson Feb 23, 2022
195a4f1
begin implementing argo dataset
RomiP Feb 28, 2022
df34424
1st draft implementing argo dataset
RomiP Mar 8, 2022
390b7a9
implement search_data for physical argo
RomiP Apr 26, 2022
6824d27
doctests and general cleanup for physical argo query
RomiP Jun 13, 2022
58092f9
beginning of BGC Argo download
RomiP Jun 23, 2022
ae486f2
parse BGC profiles into DF
RomiP Jun 27, 2022
92f8a0d
plan to query BGC profiles
RomiP Aug 29, 2022
0285be1
validate BGC param input function
RomiP Sep 6, 2022
747af3a
order BGC params in order in which they should be queried
RomiP Sep 12, 2022
cf600c6
fix bug in parse_into_df() - init blank df to take in union of params…
RomiP Sep 19, 2022
29ee8c4
identify profiles from initial API request containing all required pa…
RomiP Oct 3, 2022
934e1a6
creates df with only profiles that contain all user specified params
RomiP Oct 24, 2022
eefcbf8
modified to populate prof df by querying individual profiles
RomiP Nov 21, 2022
55204d8
finished up BGC argo download!
RomiP Nov 28, 2022
0af53d6
assert bounding box type in Argo init, begin framework for unit tests
RomiP Jan 17, 2023
27ab9d7
need to confirm spatial extent is bbox
RomiP Feb 6, 2023
83e0e94
begin test case for available profiles
RomiP Feb 6, 2023
d23b09c
Merge remote-tracking branch 'origin/argo' into argo
RomiP Feb 6, 2023
d96c485
add tests for argo.py
JessicaS11 Feb 6, 2023
4ec53cd
add typing, add example json, and use it to test parsing
JessicaS11 Feb 13, 2023
2594153
Merge branch 'development' into argo
JessicaS11 May 22, 2023
8dfb33e
update argo to submit successful api request (update keys and values …
JessicaS11 May 22, 2023
d43da75
first pass at porting argo over to metadata+per profile download (WIP)
JessicaS11 May 30, 2023
f9c6a82
basic working argo script
JessicaS11 Jun 6, 2023
9c0de9b
simplify parameter validation (ordered list no longer needed)
JessicaS11 Jun 6, 2023
af4d8ce
add option to delete existing data before new download
JessicaS11 Jun 6, 2023
fd18b74
continue cleaning up argo.py
JessicaS11 Jun 6, 2023
df41a98
fix download_by_profile to properly store all downloaded data
JessicaS11 Jun 7, 2023
27b672b
remove old get_argo.py script
JessicaS11 Jun 7, 2023
04e392c
remove _filter_profiles function in favor of submitting data kwarg in…
JessicaS11 Jun 7, 2023
9cc0040
start filling in docstrings
JessicaS11 Jun 7, 2023
d15483b
clean up nearly duplicate functions
JessicaS11 Jun 8, 2023
d877e8b
add more docstrings
JessicaS11 Jun 8, 2023
f9b6d81
get a few minimal argo tests working
JessicaS11 Jun 12, 2023
8fcab13
add bgc argo params. begin adding merge for second download runs
JessicaS11 Jun 20, 2023
aad5053
some changes
RomiP Jun 26, 2023
8fd0083
Merge remote-tracking branch 'origin/argo' into argo
RomiP Jun 26, 2023
630415a
WIP test commit to see if can push to GH
JessicaS11 Jul 7, 2023
fe07540
WIP handling argo merge issue
JessicaS11 Jul 12, 2023
c246543
update profile to df to return df and move merging to get_dataframe
JessicaS11 Jul 20, 2023
ccb8ebf
Merge remote-tracking branch 'origin/argo' into argo
RomiP Jul 28, 2023
5851cb8
Merge remote-tracking branch 'origin/argo' into argo
RomiP Jul 28, 2023
1fd069c
merge profiles with existing df
JessicaS11 Jul 31, 2023
363dad2
clean up docstrings and code
JessicaS11 Jul 31, 2023
63d3b3b
add test_argo.py
RomiP Jul 31, 2023
a91c25f
Merge remote-tracking branch 'origin/argo' into argo
RomiP Jul 31, 2023
4602cdb
add prelim test case for adding to Argo df
RomiP Jul 31, 2023
2cdf07e
remove sandbox files
JessicaS11 Aug 14, 2023
a91c360
remove bgc argo test file
JessicaS11 Aug 14, 2023
cb367e1
update variables notebook from development
JessicaS11 Aug 14, 2023
b89840c
Merge remote-tracking branch 'origin/argo' into argo
RomiP Aug 16, 2023
381092f
simplify import statements
JessicaS11 Aug 16, 2023
283748e
quickfix for granules error
zachghiaccio Aug 18, 2023
7893307
draft subpage on available QUEST datasets
zachghiaccio Aug 18, 2023
949ffee
small reference fix in text
zachghiaccio Aug 18, 2023
7414c85
add reference to top of .rst file
zachghiaccio Aug 18, 2023
7655995
Merge remote-tracking branch 'origin/argo' into argo
RomiP Aug 19, 2023
63e1b57
test argo df merge
RomiP Aug 19, 2023
5b6c65b
Merge pull request #436 from zachghiaccio/argo
zachghiaccio Aug 25, 2023
37d19b6
Merge branch 'development' into argo
JessicaS11 Aug 28, 2023
b064224
update argo script from shared_search branch
JessicaS11 Aug 30, 2023
1d53341
update QUEST and GenQuery classes for argo integration (#441)
JessicaS11 Sep 25, 2023
51c2e83
Merge branch 'development' into argo
JessicaS11 Oct 6, 2023
9386707
fix incorrect merge conflict handling
JessicaS11 Oct 6, 2023
417929f
uncomment argo portions of Quest
JessicaS11 Oct 9, 2023
b8bf4ea
Drafted an example Jupyter notebook using both ICESat-2 and Argo thro…
zachghiaccio Oct 10, 2023
5ff8c83
combine multiple argo test files
JessicaS11 Oct 11, 2023
251bf0b
Removed redundant cells and code.
zachghiaccio Oct 18, 2023
d03f9fb
temporarily disable OpenAltimetry API tests (#459)
JessicaS11 Oct 18, 2023
ee8b79f
fix spot number calculation (#458)
JessicaS11 Oct 18, 2023
a1a723d
Fix a broken link in IS2_data_access.ipynb (#456)
whyjz Oct 18, 2023
d86cc9e
update Read input arguments (#444)
rwegener2 Oct 18, 2023
aedbcce
enable QUEST kwarg handling (#452)
JessicaS11 Oct 19, 2023
73f929e
docs: add rwegener2 as a contributor for bug, code, and 6 more (#460)
allcontributors[bot] Oct 26, 2023
a56a9c8
docs: add jpswinski as a contributor for review (#461)
allcontributors[bot] Oct 26, 2023
bdcc9bd
docs: add whyjz as a contributor for tutorial (#462)
allcontributors[bot] Oct 27, 2023
f514619
Link to QUEST dataset page went missing again. Fixed.
zachghiaccio Oct 31, 2023
53831aa
Fixed typo in reference.
zachghiaccio Oct 31, 2023
a0c5acd
Moved Argo workflow to Examples folder.
zachghiaccio Oct 31, 2023
a326949
Add link to Argo workbook.
zachghiaccio Oct 31, 2023
38e9b5d
test argo script via a quest instance
JessicaS11 Nov 1, 2023
992e7ae
clean up argo script
JessicaS11 Nov 1, 2023
ea0d37e
clean up quest tests
JessicaS11 Nov 1, 2023
cce8fa7
remove =None from required inputs
JessicaS11 Nov 1, 2023
efcb16d
remove note from argo
JessicaS11 Nov 1, 2023
fb90b0c
add newest icepyx citations (#455)
JessicaS11 Nov 2, 2023
af5d8b0
Merge branch 'development' into argo
JessicaS11 Nov 3, 2023
ce29a55
remove unused test data file
JessicaS11 Nov 3, 2023
9857978
Update doc/source/contributing/quest-available-datasets.rst
zachghiaccio Nov 3, 2023
8ed4c7b
fix formatting via linter
JessicaS11 Nov 3, 2023
b99855e
remove examples suggesting an Argo object can be created directly
JessicaS11 Nov 3, 2023
9aaca81
Clarified that the new dataset guidelines are a work in progress.
zachghiaccio Nov 4, 2023
f6eb1b2
Cleanup of text in QUEST notebook.
zachghiaccio Nov 4, 2023
7e004f0
GitHub action UML generation auto-update
zachghiaccio Nov 6, 2023
e8f8c38
fix failing argo tests
JessicaS11 Nov 6, 2023
d5747fa
Variables as an independent class (#451)
rwegener2 Nov 7, 2023
6dac12c
Merge branch 'development' into argo
JessicaS11 Nov 8, 2023
eea686c
Merge branch 'development' into argo
JessicaS11 Nov 17, 2023
d596c01
use factories as fixture test pattern
JessicaS11 Nov 6, 2023
d7b9424
add quest module init file
JessicaS11 Nov 8, 2023
3fb4c48
streamline params and presRange handling, including docs+tests+ex
JessicaS11 Nov 17, 2023
283fc04
fix failing test due to list order
JessicaS11 Nov 21, 2023
d888127
Addressed Jessica's suggestions for QUEST notebook.
zachghiaccio Nov 27, 2023
afc7edd
remove duplicate QUEST page in docs
JessicaS11 Nov 27, 2023
ab40328
add some text to QUEST example notebook
JessicaS11 Nov 27, 2023
2a9efe4
Merge branch 'development' into argo
JessicaS11 Nov 27, 2023
24de1bc
limit example notebook to one IS2 granule
JessicaS11 Nov 28, 2023
36cac57
fix indentation error and make params protected
RomiP Dec 4, 2023
74c3a60
skips when error downloading argo profile, save df to csv
RomiP Dec 4, 2023
79ecc27
use xarray to drop info before converting to df
JessicaS11 Dec 4, 2023
089f71e
implement save function in argo
RomiP Dec 6, 2023
377d3c0
Merge remote-tracking branch 'origin/argo' into argo
RomiP Dec 6, 2023
40a4ca3
run black formatter on all files
JessicaS11 Dec 6, 2023
2fdcdd2
Revert "run black formatter on all files"
JessicaS11 Dec 6, 2023
cc8b1d0
run black formatter on files in this PR
JessicaS11 Dec 6, 2023
d467a84
Update doc/source/contributing/quest-available-datasets.rst
JessicaS11 Dec 6, 2023
fc9e086
add docstring for new save_all fn
JessicaS11 Dec 6, 2023
54a14ea
remove savename kwarg
JessicaS11 Dec 6, 2023
ae1d484
standardize docstring spaces in argo.py
JessicaS11 Dec 6, 2023
468f3ba
last updates to notebook
JessicaS11 Dec 6, 2023
ff3b4b6
GitHub action UML generation auto-update
kelseybisson Dec 6, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions icepyx/quest/dataset_scripts/argo.py
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ def _parse_into_df(self, profile_data) -> pd.DataFrame:

return profileDf

def download(self, params=None, presRange=None, keep_existing=True) -> pd.DataFrame:
def download(self, params=None, presRange=None, keep_existing=True, savename='') -> pd.DataFrame:
"""
Downloads the requested data for a list of profile IDs (stored under .prof_ids) and returns it in a DataFrame.

Expand Down Expand Up @@ -471,9 +471,12 @@ def download(self, params=None, presRange=None, keep_existing=True) -> pd.DataFr
merged_df = pd.DataFrame(columns=["profile_id"])
for i in self.prof_ids:
print("processing profile", i)
profile_data = self._download_profile(i)
profile_df = self._parse_into_df(profile_data[0])
merged_df = pd.concat([merged_df, profile_df], sort=False)
try:
profile_data = self._download_profile(i)
profile_df = self._parse_into_df(profile_data[0])
merged_df = pd.concat([merged_df, profile_df], sort=False)
except:
print('\tError processing profile {0}. Skipping.'.format(i))
JessicaS11 marked this conversation as resolved.
Show resolved Hide resolved

# now that we have a df from this round of downloads, we can add it to any existing dataframe
# note that if a given column has previously been added, update needs to be used to replace nans (merge will not replace the nan values)
Expand All @@ -484,4 +487,6 @@ def download(self, params=None, presRange=None, keep_existing=True) -> pd.DataFr

self.argodata.reset_index(inplace=True, drop=True)

if savename:
self.argodata.to_csv(savename + '_argo.csv')
JessicaS11 marked this conversation as resolved.
Show resolved Hide resolved
return self.argodata
4 changes: 2 additions & 2 deletions icepyx/quest/quest.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,9 +228,9 @@ def download_all(self, path="", **kwargs):
else:
print(k)
try:
msg = v.download(kwargs[k])
msg = v.download(kwargs[k], savename=path)
except KeyError:
msg = v.download()
msg = v.download(savename=path)
print(msg)
except:
dataset_name = type(v).__name__
Expand Down