Exported source
= Path().home() / 'pro/data/maris/2024-11-20 MARIS_QA_shapetype_id=1.txt'
fname_in = '../../_data/output/dump' dir_dest
This data pipeline, known as “handler” in Marisco terminology, contains a data pipeline (handler) that converts the master MARIS database dump into
NetCDF
format. It enables batch encoding of all legacy datasets into NetCDF.
Key functions of this handler:
The result is a set of NetCDF files, one for each unique reference ID in the input data.
For new MARIS users, please refer to Understanding MARIS Data Formats (NetCDF and Open Refine) for detailed information.
The present notebook pretends to be an instance of Literate Programming in the sense that it is a narrative that includes code snippets that are interspersed with explanations. When a function or a class needs to be exported in a dedicated python module (in our case marisco/handlers/helcom.py
) the code snippet is added to the module using #| exports
as provided by the wonderful nbdev library.
fname_in: path to the folder containing the MARIS dump data in CSV format.
dir_dest: path to the folder where the NetCDF output will be saved.
Below a utility class to load a specific MARIS dump dataset optionally filtered through its ref_id
.
DataLoader (fname:str, exclude_ref_id:Optional[List[int]]=[9999])
Load specific MARIS dataset through its ref_id.
Type | Default | Details | |
---|---|---|---|
fname | str | Path to the MARIS global dump file | |
exclude_ref_id | Optional | [9999] | Whether to filter the dataframe by ref_id |
class DataLoader:
"Load specific MARIS dataset through its ref_id."
LUT = {
'Biota': 'BIOTA',
'Seawater': 'SEAWATER',
'Sediment': 'SEDIMENT',
'Suspended matter': 'SUSPENDED_MATTER'
}
def __init__(self,
fname: str, # Path to the MARIS global dump file
exclude_ref_id: Optional[List[int]]=[9999] # Whether to filter the dataframe by ref_id
):
fc.store_attr()
self.df = self._load_data()
def _load_data(self):
df = pd.read_csv(self.fname, sep='\t', encoding='utf-8', low_memory=False)
return df[~df.ref_id.isin(self.exclude_ref_id)] if self.exclude_ref_id else df
def __call__(self,
ref_id: int # Reference ID of interest
) -> dict: # Dictionary of dataframes
df = self.df[self.df.ref_id == ref_id].copy() if ref_id else self.df.copy()
return {self.LUT[name]: grp for name, grp in df.groupby('samptype') if name in self.LUT}
get_zotero_key (dfs)
Retrieve Zotero key from MARIS dump.
get_fname (dfs)
Retrieve filename from MARIS dump.
Here below a quick overview of the MARIS dump data structure.
dataloader = DataLoader(fname_in)
ref_id = 100 # Some other ref_id examples: OSPAR: 191, HELCOM: 100, 717 (only seawater)
dfs = dataloader(ref_id=ref_id)
print(f'keys: {dfs.keys()}')
dfs['SEDIMENT'].head()
keys: dict_keys(['BIOTA', 'SEAWATER', 'SEDIMENT'])
sample_id | area_id | areaname | samptype_id | samptype | ref_id | displaytext | zoterourl | ref_note | datbase | ... | profile_id | sampnote | ref_fulltext | ref_yearpub | ref_sampleTypes | LongLat | shiftedcoordinates | shiftedlong | shiftedlat | id | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
574705 | 397306 | 2374 | Kattegat | 3 | Sediment | 100 | HELCOM MORS, 2018 | https://www.zotero.org/groups/2432820/maris/it... | Assumed Cs137, originally reported as 138Cs. | HELCOM MORS 2018 Environmental database | ... | NaN | GERMANY | HELCOM MORS, 2018. Environmental database - He... | 2018 | 1,2,3 | 9.75,54.833 | 0xE6100000010CDFE00B93A96A4B400000000000802340 | 9.75 | 54.833333 | 576001 |
574706 | 397306 | 2374 | Kattegat | 3 | Sediment | 100 | HELCOM MORS, 2018 | https://www.zotero.org/groups/2432820/maris/it... | Assumed Cs137, originally reported as 138Cs. | HELCOM MORS 2018 Environmental database | ... | NaN | GERMANY | HELCOM MORS, 2018. Environmental database - He... | 2018 | 1,2,3 | 9.75,54.833 | 0xE6100000010CDFE00B93A96A4B400000000000802340 | 9.75 | 54.833333 | 576002 |
574707 | 397306 | 2374 | Kattegat | 3 | Sediment | 100 | HELCOM MORS, 2018 | https://www.zotero.org/groups/2432820/maris/it... | Assumed Cs137, originally reported as 138Cs. | HELCOM MORS 2018 Environmental database | ... | NaN | GERMANY | HELCOM MORS, 2018. Environmental database - He... | 2018 | 1,2,3 | 9.75,54.833 | 0xE6100000010CDFE00B93A96A4B400000000000802340 | 9.75 | 54.833333 | 576003 |
574708 | 397306 | 2374 | Kattegat | 3 | Sediment | 100 | HELCOM MORS, 2018 | https://www.zotero.org/groups/2432820/maris/it... | Assumed Cs137, originally reported as 138Cs. | HELCOM MORS 2018 Environmental database | ... | NaN | GERMANY | HELCOM MORS, 2018. Environmental database - He... | 2018 | 1,2,3 | 9.75,54.833 | 0xE6100000010CDFE00B93A96A4B400000000000802340 | 9.75 | 54.833333 | 576004 |
574709 | 397307 | 2374 | Kattegat | 3 | Sediment | 100 | HELCOM MORS, 2018 | https://www.zotero.org/groups/2432820/maris/it... | Assumed Cs137, originally reported as 138Cs. | HELCOM MORS 2018 Environmental database | ... | NaN | GERMANY | HELCOM MORS, 2018. Environmental database - He... | 2018 | 1,2,3 | 9.75,54.833 | 0xE6100000010CDFE00B93A96A4B400000000000802340 | 9.75 | 54.833333 | 576005 |
5 rows × 80 columns
cois_renaming_rules = {
'sample_id': 'SMP_ID',
'latitude': 'LAT',
'longitude': 'LON',
'begperiod': 'TIME',
'sampdepth': 'SMP_DEPTH',
'totdepth': 'TOT_DEPTH',
'uncertaint': 'UNC',
'unit_id': 'UNIT',
'detection': 'DL',
'area_id': 'AREA',
'species_id': 'SPECIES',
'biogroup_id': 'BIO_GROUP',
'bodypar_id': 'BODY_PART',
'sedtype_id': 'SED_TYPE',
'volume': 'VOL',
'salinity': 'SAL',
'temperatur': 'TEMP',
'sampmet_id': 'SAMP_MET',
'prepmet_id': 'PREP_MET',
'counmet_id': 'COUNT_MET',
'activity': 'VALUE',
'nuclide_id': 'NUCLIDE',
'sliceup': 'TOP',
'slicedown': 'BOTTOM'
}
dfs = dataloader(ref_id=ref_id)
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules)
])
print('Keys:', tfm().keys())
print('Columns:', tfm()['BIOTA'].columns)
Keys: dict_keys(['BIOTA', 'SEAWATER', 'SEDIMENT'])
Columns: Index(['sample_id', 'latitude', 'longitude', 'begperiod', 'sampdepth',
'totdepth', 'uncertaint', 'unit_id', 'detection', 'area_id',
'species_id', 'biogroup_id', 'bodypar_id', 'sedtype_id', 'volume',
'salinity', 'temperatur', 'sampmet_id', 'prepmet_id', 'counmet_id',
'activity', 'nuclide_id', 'sliceup', 'slicedown'],
dtype='object')
dfs = dataloader(ref_id=ref_id)
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules),
RenameColumnsCB(cois_renaming_rules)
])
dfs_tfm = tfm()
print('Keys:', dfs_tfm.keys())
print('Columns:', dfs_tfm['BIOTA'].columns)
Keys: dict_keys(['BIOTA', 'SEAWATER', 'SEDIMENT'])
Columns: Index(['SMP_ID', 'LAT', 'LON', 'TIME', 'SMP_DEPTH', 'TOT_DEPTH', 'UNC', 'UNIT',
'DL', 'AREA', 'SPECIES', 'BIO_GROUP', 'BODY_PART', 'SED_TYPE', 'VOL',
'SAL', 'TEMP', 'SAMP_MET', 'PREP_MET', 'COUNT_MET', 'VALUE', 'NUCLIDE',
'TOP', 'BOTTOM'],
dtype='object')
We then remove columns containing only NaN values or ‘Not available’ (id=0 in MARIS lookup tables).
DropNAColumnsCB (na_value=0)
Drop variable containing only NaN or ‘Not available’ (id=0 in MARIS lookup tables).
class DropNAColumnsCB(Callback):
"Drop variable containing only NaN or 'Not available' (id=0 in MARIS lookup tables)."
def __init__(self, na_value=0): fc.store_attr()
def isMarisNA(self, col):
return len(col.unique()) == 1 and col.iloc[0] == self.na_value
def dropMarisNA(self, df):
na_cols = [col for col in df.columns if self.isMarisNA(df[col])]
return df.drop(labels=na_cols, axis=1)
def __call__(self, tfm):
for k in tfm.dfs.keys():
tfm.dfs[k] = tfm.dfs[k].dropna(axis=1, how='all')
tfm.dfs[k] = self.dropMarisNA(tfm.dfs[k])
dfs = dataloader(ref_id=ref_id)
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules),
RenameColumnsCB(cois_renaming_rules),
DropNAColumnsCB()
])
dfs_tfm = tfm()
print('Keys:', dfs_tfm.keys())
print('Columns:', dfs_tfm['BIOTA'].columns)
Keys: dict_keys(['BIOTA', 'SEAWATER', 'SEDIMENT'])
Columns: Index(['SMP_ID', 'LAT', 'LON', 'TIME', 'SMP_DEPTH', 'UNC', 'UNIT', 'DL',
'AREA', 'SPECIES', 'BIO_GROUP', 'BODY_PART', 'PREP_MET', 'COUNT_MET',
'VALUE', 'NUCLIDE'],
dtype='object')
Category-based NetCDF
variables are encoded as integer values based on the MARIS lookup table dbo_detectlimit.xlsx
. We recall that these lookup tables are included in the NetCDF
file as custom enumeration types.
SanitizeDetectionLimitCB (fn_lut=<function <lambda>>, dl_name='DL')
Assign Detection Limit name to its id based on MARIS nomenclature.
class SanitizeDetectionLimitCB(Callback):
"Assign Detection Limit name to its id based on MARIS nomenclature."
def __init__(self,
fn_lut=dl_name_to_id,
dl_name='DL'):
fc.store_attr()
def __call__(self, tfm):
lut = self.fn_lut()
for k in tfm.dfs.keys():
tfm.dfs[k][self.dl_name] = tfm.dfs[k][self.dl_name].replace(lut)
dfs = dataloader(ref_id=ref_id)
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules),
RenameColumnsCB(cois_renaming_rules),
DropNAColumnsCB(),
SanitizeDetectionLimitCB()
])
dfs_tfm = tfm()
print('Keys:', dfs_tfm.keys())
print('Columns:', dfs_tfm['BIOTA'].columns)
print(f'{dfs_tfm["BIOTA"]["DL"].unique()}')
print(f'{dfs_tfm["BIOTA"].head()}')
Keys: dict_keys(['BIOTA', 'SEAWATER', 'SEDIMENT'])
Columns: Index(['SMP_ID', 'LAT', 'LON', 'TIME', 'SMP_DEPTH', 'UNC', 'UNIT', 'DL',
'AREA', 'SPECIES', 'BIO_GROUP', 'BODY_PART', 'PREP_MET', 'COUNT_MET',
'VALUE', 'NUCLIDE'],
dtype='object')
[1 2]
SMP_ID LAT LON TIME SMP_DEPTH \
575432 638278 57.335278 12.074167 2008-11-03 00:00:00.000 0.0
575433 638278 57.335278 12.074167 2008-11-03 00:00:00.000 0.0
575434 638278 57.335278 12.074167 2008-11-03 00:00:00.000 0.0
575435 638278 57.335278 12.074167 2008-11-03 00:00:00.000 0.0
575436 638279 57.335278 12.074167 2009-09-17 00:00:00.000 0.0
UNC UNIT DL AREA SPECIES BIO_GROUP BODY_PART PREP_MET \
575432 0.0684 5 1 2374 96 11 40 6
575433 0.7040 5 1 2374 96 11 40 6
575434 0.0747 5 1 2374 96 11 40 6
575435 0.0000 5 1 2374 96 11 40 6
575436 0.3510 5 1 2374 96 11 40 6
COUNT_MET VALUE NUCLIDE
575432 20 0.36 6
575433 20 17.60 2
575434 20 2.49 33
575435 20 1040.00 4
575436 20 11.70 55
We remind that in netCDF
format time need to be encoded as integer
representing the number of seconds since a time of reference. In our case we chose 1970-01-01 00:00:00.0
as defined in configs.ipynb
.
ParseTimeCB (time_name='TIME')
Parse time column from MARIS dump.
dfs = dataloader(ref_id=ref_id)
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules),
RenameColumnsCB(cois_renaming_rules),
DropNAColumnsCB(),
SanitizeDetectionLimitCB(),
ParseTimeCB(),
EncodeTimeCB()
])
print(tfm()['BIOTA'])
SMP_ID LAT LON TIME SMP_DEPTH UNC UNIT \
575432 638278 57.335278 12.074167 1225670400 0.0 0.06840 5
575433 638278 57.335278 12.074167 1225670400 0.0 0.70400 5
575434 638278 57.335278 12.074167 1225670400 0.0 0.07470 5
575435 638278 57.335278 12.074167 1225670400 0.0 0.00000 5
575436 638279 57.335278 12.074167 1253145600 0.0 0.35100 5
... ... ... ... ... ... ... ...
932837 639100 63.050000 21.616667 518572800 0.0 0.01440 5
932838 639100 63.050000 21.616667 518572800 0.0 NaN 5
932839 639137 63.066667 21.400000 1114732800 0.0 1.46500 5
932840 639137 63.066667 21.400000 1114732800 0.0 0.00204 5
932841 639137 63.066667 21.400000 1114732800 0.0 5.00000 5
DL AREA SPECIES BIO_GROUP BODY_PART PREP_MET COUNT_MET \
575432 1 2374 96 11 40 6 20
575433 1 2374 96 11 40 6 20
575434 1 2374 96 11 40 6 20
575435 1 2374 96 11 40 6 20
575436 1 2374 96 11 40 6 20
... .. ... ... ... ... ... ...
932837 1 9999 269 4 52 12 9
932838 1 9999 269 4 52 12 9
932839 1 9999 269 4 52 0 20
932840 1 9999 269 4 52 0 8
932841 1 9999 269 4 52 0 20
VALUE NUCLIDE
575432 0.360 6
575433 17.600 2
575434 2.490 33
575435 1040.000 4
575436 11.700 55
... ... ...
932837 0.072 12
932838 0.015 11
932839 29.300 33
932840 0.017 12
932841 113.000 4
[14872 rows x 16 columns]
We ensure that coordinates are within the valid range.
dfs = dataloader(ref_id=ref_id)
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules),
RenameColumnsCB(cois_renaming_rules),
DropNAColumnsCB(),
SanitizeDetectionLimitCB(),
ParseTimeCB(),
EncodeTimeCB(),
SanitizeLonLatCB()
])
dfs_test = tfm()
dfs_test['BIOTA']
SMP_ID | LAT | LON | TIME | SMP_DEPTH | UNC | UNIT | DL | AREA | SPECIES | BIO_GROUP | BODY_PART | PREP_MET | COUNT_MET | VALUE | NUCLIDE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
575432 | 638278 | 57.335278 | 12.074167 | 1225670400 | 0.0 | 0.06840 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 0.360 | 6 |
575433 | 638278 | 57.335278 | 12.074167 | 1225670400 | 0.0 | 0.70400 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 17.600 | 2 |
575434 | 638278 | 57.335278 | 12.074167 | 1225670400 | 0.0 | 0.07470 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 2.490 | 33 |
575435 | 638278 | 57.335278 | 12.074167 | 1225670400 | 0.0 | 0.00000 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 1040.000 | 4 |
575436 | 638279 | 57.335278 | 12.074167 | 1253145600 | 0.0 | 0.35100 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 11.700 | 55 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
932837 | 639100 | 63.050000 | 21.616667 | 518572800 | 0.0 | 0.01440 | 5 | 1 | 9999 | 269 | 4 | 52 | 12 | 9 | 0.072 | 12 |
932838 | 639100 | 63.050000 | 21.616667 | 518572800 | 0.0 | NaN | 5 | 1 | 9999 | 269 | 4 | 52 | 12 | 9 | 0.015 | 11 |
932839 | 639137 | 63.066667 | 21.400000 | 1114732800 | 0.0 | 1.46500 | 5 | 1 | 9999 | 269 | 4 | 52 | 0 | 20 | 29.300 | 33 |
932840 | 639137 | 63.066667 | 21.400000 | 1114732800 | 0.0 | 0.00204 | 5 | 1 | 9999 | 269 | 4 | 52 | 0 | 8 | 0.017 | 12 |
932841 | 639137 | 63.066667 | 21.400000 | 1114732800 | 0.0 | 5.00000 | 5 | 1 | 9999 | 269 | 4 | 52 | 0 | 20 | 113.000 | 4 |
14872 rows × 16 columns
dfs = dataloader(ref_id=ref_id)
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules),
RenameColumnsCB(cois_renaming_rules),
DropNAColumnsCB(),
SanitizeDetectionLimitCB(),
ParseTimeCB(),
EncodeTimeCB(),
SanitizeLonLatCB(),
UniqueIndexCB()
])
dfs_test = tfm()
dfs_test['BIOTA']
ID | SMP_ID | LAT | LON | TIME | SMP_DEPTH | UNC | UNIT | DL | AREA | SPECIES | BIO_GROUP | BODY_PART | PREP_MET | COUNT_MET | VALUE | NUCLIDE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 638278 | 57.335278 | 12.074167 | 1225670400 | 0.0 | 0.06840 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 0.360 | 6 |
1 | 1 | 638278 | 57.335278 | 12.074167 | 1225670400 | 0.0 | 0.70400 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 17.600 | 2 |
2 | 2 | 638278 | 57.335278 | 12.074167 | 1225670400 | 0.0 | 0.07470 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 2.490 | 33 |
3 | 3 | 638278 | 57.335278 | 12.074167 | 1225670400 | 0.0 | 0.00000 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 1040.000 | 4 |
4 | 4 | 638279 | 57.335278 | 12.074167 | 1253145600 | 0.0 | 0.35100 | 5 | 1 | 2374 | 96 | 11 | 40 | 6 | 20 | 11.700 | 55 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
14867 | 14867 | 639100 | 63.050000 | 21.616667 | 518572800 | 0.0 | 0.01440 | 5 | 1 | 9999 | 269 | 4 | 52 | 12 | 9 | 0.072 | 12 |
14868 | 14868 | 639100 | 63.050000 | 21.616667 | 518572800 | 0.0 | NaN | 5 | 1 | 9999 | 269 | 4 | 52 | 12 | 9 | 0.015 | 11 |
14869 | 14869 | 639137 | 63.066667 | 21.400000 | 1114732800 | 0.0 | 1.46500 | 5 | 1 | 9999 | 269 | 4 | 52 | 0 | 20 | 29.300 | 33 |
14870 | 14870 | 639137 | 63.066667 | 21.400000 | 1114732800 | 0.0 | 0.00204 | 5 | 1 | 9999 | 269 | 4 | 52 | 0 | 8 | 0.017 | 12 |
14871 | 14871 | 639137 | 63.066667 | 21.400000 | 1114732800 | 0.0 | 5.00000 | 5 | 1 | 9999 | 269 | 4 | 52 | 0 | 20 | 113.000 | 4 |
14872 rows × 17 columns
dfs = dataloader(ref_id=ref_id)
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules),
RenameColumnsCB(cois_renaming_rules),
DropNAColumnsCB(),
SanitizeDetectionLimitCB(),
ParseTimeCB(),
EncodeTimeCB(),
SanitizeLonLatCB(),
UniqueIndexCB()
])
dfs_tfm = tfm()
tfm.logs
['Select columns of interest.',
'Renaming variables to MARIS standard names.',
"Drop variable containing only NaN or 'Not available' (id=0 in MARIS lookup tables).",
'Assign Detection Limit name to its id based on MARIS nomenclature.',
'Parse time column from MARIS dump.',
'Encode time as seconds since epoch.',
'Drop rows with invalid longitude & latitude values. Convert `,` separator to `.` separator.',
'Set unique index for each group.']
get_attrs (tfm, zotero_key, kw=['oceanography', 'Earth Science > Oceans > Ocean Chemistry> Radionuclides', 'Earth Science > Human Dimensions > Environmental Impacts > Nuclear Radiation Exposure', 'Earth Science > Oceans > Ocean Chemistry > Ocean Tracers, Earth Science > Oceans > Marine Sediments', 'Earth Science > Oceans > Ocean Chemistry, Earth Science > Oceans > Sea Ice > Isotopes', 'Earth Science > Oceans > Water Quality > Ocean Contaminants', 'Earth Science > Biological Classification > Animals/Vertebrates > Fish', 'Earth Science > Biosphere > Ecosystems > Marine Ecosystems', 'Earth Science > Biological Classification > Animals/Invertebrates > Mollusks', 'Earth Science > Biological Classification > Animals/Invertebrates > Arthropods > Crustaceans', 'Earth Science > Biological Classification > Plants > Macroalgae (Seaweeds)'])
Retrieve global attributes from MARIS dump.
kw = ['oceanography', 'Earth Science > Oceans > Ocean Chemistry> Radionuclides',
'Earth Science > Human Dimensions > Environmental Impacts > Nuclear Radiation Exposure',
'Earth Science > Oceans > Ocean Chemistry > Ocean Tracers, Earth Science > Oceans > Marine Sediments',
'Earth Science > Oceans > Ocean Chemistry, Earth Science > Oceans > Sea Ice > Isotopes',
'Earth Science > Oceans > Water Quality > Ocean Contaminants',
'Earth Science > Biological Classification > Animals/Vertebrates > Fish',
'Earth Science > Biosphere > Ecosystems > Marine Ecosystems',
'Earth Science > Biological Classification > Animals/Invertebrates > Mollusks',
'Earth Science > Biological Classification > Animals/Invertebrates > Arthropods > Crustaceans',
'Earth Science > Biological Classification > Plants > Macroalgae (Seaweeds)']
def get_attrs(tfm, zotero_key, kw=kw):
"Retrieve global attributes from MARIS dump."
return GlobAttrsFeeder(tfm.dfs, cbs=[
BboxCB(),
DepthRangeCB(),
TimeRangeCB(),
ZoteroCB(zotero_key, cfg=cfg()),
KeyValuePairCB('keywords', ', '.join(kw)),
KeyValuePairCB('publisher_postprocess_logs', ', '.join(tfm.logs))
])()
{'geospatial_lat_min': '30.4358333333333',
'geospatial_lat_max': '65.75',
'geospatial_lon_min': '9.63333333333333',
'geospatial_lon_max': '53.5',
'geospatial_bounds': 'POLYGON ((9.63333333333333 53.5, 30.4358333333333 53.5, 30.4358333333333 65.75, 9.63333333333333 65.75, 9.63333333333333 53.5))',
'geospatial_vertical_max': '437.0',
'geospatial_vertical_min': '-1.0',
'time_coverage_start': '1984-01-10T00:00:00',
'time_coverage_end': '2018-12-14T00:00:00',
'title': 'Radioactivity Monitoring of the Irish Marine Environment 1991 and 1992',
'summary': '',
'creator_name': '[{"creatorType": "author", "firstName": "A.", "lastName": "McGarry"}, {"creatorType": "author", "firstName": "S.", "lastName": "Lyons"}, {"creatorType": "author", "firstName": "C.", "lastName": "McEnri"}, {"creatorType": "author", "firstName": "T.", "lastName": "Ryan"}, {"creatorType": "author", "firstName": "M.", "lastName": "O\'Colmain"}, {"creatorType": "author", "firstName": "J.D.", "lastName": "Cunningham"}]',
'keywords': 'oceanography, Earth Science > Oceans > Ocean Chemistry> Radionuclides, Earth Science > Human Dimensions > Environmental Impacts > Nuclear Radiation Exposure, Earth Science > Oceans > Ocean Chemistry > Ocean Tracers, Earth Science > Oceans > Marine Sediments, Earth Science > Oceans > Ocean Chemistry, Earth Science > Oceans > Sea Ice > Isotopes, Earth Science > Oceans > Water Quality > Ocean Contaminants, Earth Science > Biological Classification > Animals/Vertebrates > Fish, Earth Science > Biosphere > Ecosystems > Marine Ecosystems, Earth Science > Biological Classification > Animals/Invertebrates > Mollusks, Earth Science > Biological Classification > Animals/Invertebrates > Arthropods > Crustaceans, Earth Science > Biological Classification > Plants > Macroalgae (Seaweeds)',
'publisher_postprocess_logs': "Select columns of interest., Renaming variables to MARIS standard names., Drop variable containing only NaN or 'Not available' (id=0 in MARIS lookup tables)., Assign Detection Limit name to its id based on MARIS nomenclature., Parse time column from MARIS dump., Encode time as seconds since epoch., Drop rows with invalid longitude & latitude values. Convert `,` separator to `.` separator., Set unique index for each group."}
encode (fname_in:str, dir_dest:str, **kwargs)
Encode MARIS dump to NetCDF.
Type | Details | |
---|---|---|
fname_in | str | Path to the MARIS dump data in CSV format |
dir_dest | str | Path to the folder where the NetCDF output will be saved |
kwargs |
def encode(
fname_in: str, # Path to the MARIS dump data in CSV format
dir_dest: str, # Path to the folder where the NetCDF output will be saved
**kwargs # Additional keyword arguments
):
"Encode MARIS dump to NetCDF."
dataloader = DataLoader(fname_in)
ref_ids = kwargs.get('ref_ids', dataloader.df.ref_id.unique())
print('Encoding ...')
for ref_id in tqdm(ref_ids, leave=False):
dfs = dataloader(ref_id=ref_id)
print(get_fname(dfs))
tfm = Transformer(dfs, cbs=[
SelectColumnsCB(cois_renaming_rules),
RenameColumnsCB(cois_renaming_rules),
DropNAColumnsCB(),
SanitizeDetectionLimitCB(),
ParseTimeCB(),
EncodeTimeCB(),
SanitizeLonLatCB(),
UniqueIndexCB()
])
tfm()
encoder = NetCDFEncoder(tfm.dfs,
dest_fname=Path(dir_dest) / get_fname(dfs),
global_attrs=get_attrs(tfm, zotero_key=get_zotero_key(dfs), kw=kw),
verbose=kwargs.get('verbose', False)
)
encoder.encode()
Encoding ...
0%| | 0/470 [00:00<?, ?it/s]
401-Olsen-et-al-2016.nc
0%| | 1/470 [00:01<08:40, 1.11s/it]
402-CCHDO-2018.nc
0%| | 2/470 [00:03<12:35, 1.61s/it]
226-Sdraulig-2018.nc
1%| | 3/470 [00:03<09:51, 1.27s/it]
374-Ostlund-et-al-1987.nc
1%| | 4/470 [00:05<10:06, 1.30s/it]
508-Lee-et-al-2018.nc
1%| | 5/470 [00:07<12:11, 1.57s/it]
443-Heyraud-et-al-1994.nc
1%|▏ | 6/470 [00:08<10:31, 1.36s/it]
182-Urban-et-al-2015.nc
1%|▏ | 7/470 [00:09<09:16, 1.20s/it]
183-Bokor-et-al-2016.nc
2%|▏ | 8/470 [00:10<08:24, 1.09s/it]
99-Aoyama-and-Hirose-2004.nc
2%|▏ | 9/470 [00:12<10:37, 1.38s/it]
106-Yamada-et-al-2006.nc
2%|▏ | 10/470 [00:12<09:25, 1.23s/it]
509-Johansen-et-al-2015.nc
2%|▏ | 11/470 [00:13<08:27, 1.11s/it]
358-Kall-et-al-2014.nc
3%|▎ | 12/470 [00:14<07:43, 1.01s/it]
16-Cherry-and-Heyraud-1981.nc
3%|▎ | 13/470 [00:15<07:20, 1.04it/s]
30-Östlund-and-Grall-1991.nc
3%|▎ | 14/470 [00:16<07:53, 1.04s/it]
323-Johansen-et-al-2019.nc
3%|▎ | 15/470 [00:18<09:32, 1.26s/it]
395-Bailly-du-Bois-et-al-2020.nc
3%|▎ | 16/470 [00:21<13:41, 1.81s/it]
400-Boyer-et-al-2013.nc
4%|▎ | 17/470 [00:22<11:25, 1.51s/it]
97-ASPAMARD-2004.nc
4%|▍ | 18/470 [00:23<09:47, 1.30s/it]
568-Johansen-2020.nc
4%|▍ | 19/470 [00:23<08:50, 1.18s/it]
18-Cherry-and-Heyraud-1982.nc
4%|▍ | 20/470 [00:25<09:53, 1.32s/it]
376-IRSN---Institut-de-Radioprotection-et-de-Sûreté-Nucléaire-2019.nc
4%|▍ | 21/470 [00:28<12:34, 1.68s/it]
122-Casacuberta-et-al-2018.nc
5%|▍ | 22/470 [00:28<10:35, 1.42s/it]
190-Schlitzer-et-al-2018.nc
5%|▍ | 23/470 [00:30<10:56, 1.47s/it]
222-Huang-et-al-2019.nc
5%|▌ | 24/470 [00:31<09:51, 1.33s/it]
380-Smith-et-al-2020.nc
5%|▌ | 25/470 [00:32<08:46, 1.18s/it]
685-Chamizo-et-al-2021.nc
6%|▌ | 26/470 [00:33<07:51, 1.06s/it]
718-Smith-2024.nc
6%|▌ | 27/470 [00:33<07:13, 1.02it/s]
477-Valette-Silver-et-al-1999.nc
6%|▌ | 28/470 [00:35<08:40, 1.18s/it]
200-Zaborska-et-al-2010.nc
6%|▌ | 29/470 [00:36<08:58, 1.22s/it]
103-RADNOR-2010.nc
6%|▋ | 30/470 [00:37<08:10, 1.11s/it]
432-Efurd-et-al-1997.nc
7%|▋ | 31/470 [00:38<07:32, 1.03s/it]
381-Smith-2020.nc
7%|▋ | 32/470 [00:39<06:59, 1.04it/s]
720-Payne-et-al-2024.nc
7%|▋ | 33/470 [00:40<06:52, 1.06it/s]
191-OSPAR-Comission’s-Radioactive-Substances-Committee-(RSC)-2018.nc
7%|▋ | 34/470 [00:42<09:49, 1.35s/it]
199-Skjerdal-et-al-2020.nc
7%|▋ | 35/470 [00:45<12:02, 1.66s/it]
571-Szufa-2018.nc
8%|▊ | 36/470 [00:45<10:30, 1.45s/it]
712-Fávaro-et-al-2012.nc
8%|▊ | 37/470 [00:46<09:20, 1.30s/it]
570-Szufa-2020.nc
8%|▊ | 38/470 [00:47<08:25, 1.17s/it]
409-Cherry-et-al-1987.nc
8%|▊ | 39/470 [00:48<07:47, 1.08s/it]
201-Mietelski-et-al-2008.nc
9%|▊ | 40/470 [00:51<10:39, 1.49s/it]
109-Gulin-and-Stokozov-2005.nc
9%|▊ | 41/470 [00:51<09:08, 1.28s/it]
130-Wada-et-al-2016.nc
9%|▉ | 42/470 [00:57<19:21, 2.71s/it]
121-TEPCO---Tokyo-Electric-Power-Company-2011.nc
9%|▉ | 43/470 [01:02<24:09, 3.39s/it]
687-TEPCO---Tokyo-Electric-Power-Company-2021.nc
9%|▉ | 44/470 [01:03<18:48, 2.65s/it]
204-MERI-2017.nc
10%|▉ | 45/470 [01:04<15:23, 2.17s/it]
679-TEPCO---Tokyo-Electric-Power-Company-2021.nc
10%|▉ | 46/470 [01:06<14:38, 2.07s/it]
680-TEPCO---Tokyo-Electric-Power-Company-2021.nc
10%|█ | 47/470 [01:08<13:56, 1.98s/it]
141-TEPCO---Tokyo-Electric-Power-Company-2011.nc
10%|█ | 48/470 [01:09<11:59, 1.71s/it]
131-Ibaraki-Prefecture-2011.nc
10%|█ | 49/470 [01:11<13:02, 1.86s/it]
117-Oikawa-et-al-2013.nc
11%|█ | 50/470 [01:12<10:58, 1.57s/it]
118-Kaeriyama-et-al-2013.nc
11%|█ | 51/470 [01:13<09:23, 1.35s/it]
119-MEXT---Ministry-of-Education-Culture-Sports-Science-and-Technology-2011.nc
11%|█ | 52/470 [01:14<08:54, 1.28s/it]
129-Wada-et-al-2016.nc
11%|█▏ | 53/470 [01:16<09:12, 1.32s/it]
132-Fukushima-Prefectural-Federation-of-Fisheries-Co-operative-Associations-2012.nc
11%|█▏ | 54/470 [01:19<14:32, 2.10s/it]
126-Fukushima-Prefecture-2011.nc
12%|█▏ | 55/470 [01:21<12:47, 1.85s/it]
205-MERI-2018.nc
12%|█▏ | 56/470 [01:22<11:04, 1.60s/it]
202-MERI-2015.nc
12%|█▏ | 57/470 [01:23<09:59, 1.45s/it]
115-Casacuberta-et-al-2013.nc
12%|█▏ | 58/470 [01:24<08:33, 1.25s/it]
120-NRA---Nuclear-Regulation-Authority-2013.nc
13%|█▎ | 59/470 [01:25<07:55, 1.16s/it]
114-Charette-et-al-2013.nc
13%|█▎ | 60/470 [01:25<07:07, 1.04s/it]
113-Kitamura-et-al-2013.nc
13%|█▎ | 61/470 [01:26<06:54, 1.01s/it]
116-Suzuki-et-al-2013.nc
13%|█▎ | 62/470 [01:27<06:22, 1.07it/s]
125-MOE---Ministry-of-the-Environment-2012.nc
13%|█▎ | 63/470 [01:28<06:04, 1.12it/s]
123-Fukushima-Prefecture-2013.nc
14%|█▎ | 64/470 [01:29<06:02, 1.12it/s]
124-MOE---Ministry-of-the-Environment-2011.nc
14%|█▍ | 65/470 [01:31<07:51, 1.17s/it]
203-MERI-2016.nc
14%|█▍ | 66/470 [01:32<07:41, 1.14s/it]
127-Fukushima-Prefecture-2013.nc
14%|█▍ | 67/470 [01:32<07:06, 1.06s/it]
143-Fukushima-Prefecture-2011.nc
14%|█▍ | 68/470 [01:33<06:56, 1.04s/it]
144-Fukushima-Prefecture-2013.nc
15%|█▍ | 69/470 [01:34<06:27, 1.04it/s]
145-MOE---Ministry-of-the-Environment-2011.nc
15%|█▍ | 70/470 [01:35<06:03, 1.10it/s]
146-MEXT---Ministry-of-Education-Culture-Sports-Science-and-Technology-2011.nc
15%|█▌ | 71/470 [01:36<06:49, 1.03s/it]
147-MOE---Ministry-of-the-Environment-2012.nc
15%|█▌ | 72/470 [01:37<06:55, 1.04s/it]
22-Fowler-et-al-1983.nc
16%|█▌ | 73/470 [01:38<06:20, 1.04it/s]
56-Kaeriyama-et-al-2014.nc
16%|█▌ | 74/470 [01:39<06:02, 1.09it/s]
724-Environmental-Radioactivity-and-Radiation-in-Japan---Environmental-Radiation-Database-2024.nc
16%|█▌ | 75/470 [01:44<13:44, 2.09s/it]
225-Takata-et-al-2016.nc
16%|█▌ | 76/470 [01:46<13:11, 2.01s/it]
237-Takata-et-al-2018.nc
16%|█▋ | 77/470 [01:47<11:05, 1.69s/it]
224-Takata-et-al-2019.nc
17%|█▋ | 78/470 [01:48<09:35, 1.47s/it]
142-NRA---Nuclear-Regulation-Authority-2013.nc
17%|█▋ | 79/470 [01:48<08:15, 1.27s/it]
404-Azouz-and-Dulai-2017.nc
17%|█▋ | 80/470 [01:49<07:29, 1.15s/it]
427-Yamamoto-et-al-1994.nc
17%|█▋ | 81/470 [01:50<06:52, 1.06s/it]
428-Yu-et-al-2015.nc
17%|█▋ | 82/470 [01:51<06:21, 1.02it/s]
445-Hoffman-et-al-1974.nc
18%|█▊ | 83/470 [01:52<06:04, 1.06it/s]
513-Madigan-2012.nc
18%|█▊ | 84/470 [01:53<07:16, 1.13s/it]
518-Morita-et-al-2010.nc
18%|█▊ | 85/470 [01:55<08:07, 1.27s/it]
520-Baumann-et-al-2013.nc
18%|█▊ | 86/470 [01:56<07:15, 1.13s/it]
436-Nakamura-et-al-2015.nc
19%|█▊ | 87/470 [01:58<08:53, 1.39s/it]
440-Yamada-and-Nagaya-2000.nc
19%|█▊ | 88/470 [02:00<10:03, 1.58s/it]
478-Yamada-et-al-1999.nc
19%|█▉ | 89/470 [02:01<08:37, 1.36s/it]
479-Morita-2010.nc
19%|█▉ | 90/470 [02:01<07:42, 1.22s/it]
516-Madigan-and-Fisher-2013.nc
19%|█▉ | 91/470 [02:02<07:07, 1.13s/it]
550-Sohtome-2014.nc
20%|█▉ | 92/470 [02:04<08:42, 1.38s/it]
572-Aono-et-al-2000.nc
20%|█▉ | 93/470 [02:05<07:45, 1.23s/it]
128-NRA---Nuclear-Regulation-Authority-2013.nc
20%|██ | 94/470 [02:07<08:40, 1.39s/it]
233-Aoyama-et-al-2013.nc
20%|██ | 95/470 [02:08<07:50, 1.25s/it]
234-Aoyama-et-al-2013.nc
20%|██ | 96/470 [02:09<07:01, 1.13s/it]
158-Buesseler-2018.nc
21%|██ | 97/470 [02:10<06:38, 1.07s/it]
159-Buesseler-2018.nc
21%|██ | 98/470 [02:11<06:54, 1.11s/it]
193-Kusakabe-and-Takata-2020.nc
21%|██ | 99/470 [02:12<06:56, 1.12s/it]
196-Tateda-and-Koyanagi-1996.nc
21%|██▏ | 100/470 [02:13<06:54, 1.12s/it]
232-Honda-et-al-2012.nc
21%|██▏ | 101/470 [02:14<06:40, 1.09s/it]
207-MERI-2020.nc
22%|██▏ | 102/470 [02:15<06:38, 1.08s/it]
223-Buesseler-et-al-2018.nc
22%|██▏ | 103/470 [02:16<06:06, 1.00it/s]
133-Fisheries-Agency---Ministry-of-Agriculture-Forestry-and-Fisheries-2011.nc
22%|██▏ | 104/470 [02:17<05:48, 1.05it/s]
134-MOE---Ministry-of-the-Environment-2012.nc
22%|██▏ | 105/470 [02:18<05:42, 1.07it/s]
135-Japan-Fisheries-Research-and-Education-Agency-2015.nc
23%|██▎ | 106/470 [02:20<07:18, 1.20s/it]
140-MEXT---Ministry-of-Education-Culture-Sports-Science-and-Technology-2011.nc
23%|██▎ | 107/470 [02:21<07:53, 1.30s/it]
137-JCG---Japan-Coast-Guard-2011.nc
23%|██▎ | 108/470 [02:22<06:51, 1.14s/it]
139-MEXT---Ministry-of-Education-Culture-Sports-Science-and-Technology-2011.nc
23%|██▎ | 109/470 [02:23<06:09, 1.02s/it]
155-Buesseler-et-al-2012.nc
23%|██▎ | 110/470 [02:24<07:19, 1.22s/it]
157-Buesseler-2018.nc
24%|██▎ | 111/470 [02:25<06:27, 1.08s/it]
149-JAEA---Japan-Atomic-Energy-Agency-2013.nc
24%|██▍ | 112/470 [02:26<06:11, 1.04s/it]
153-Yu-et-al-2018.nc
24%|██▍ | 113/470 [02:27<05:49, 1.02it/s]
206-MERI-2019.nc
24%|██▍ | 114/470 [02:28<05:52, 1.01it/s]
682-NRA---Nuclear-Regulation-Authority-2021.nc
24%|██▍ | 115/470 [02:29<05:37, 1.05it/s]
683-NRA---Nuclear-Regulation-Authority-2021.nc
25%|██▍ | 116/470 [02:30<06:28, 1.10s/it]
684-NRA---Nuclear-Regulation-Authority-2021.nc
25%|██▍ | 117/470 [02:31<05:47, 1.02it/s]
549-Shigeoka-et-al-2019.nc
25%|██▌ | 118/470 [02:32<06:00, 1.02s/it]
688-NRA---Nuclear-Regulation-Authority-2021.nc
25%|██▌ | 119/470 [02:33<05:42, 1.02it/s]
689-NRA---Nuclear-Regulation-Authority-2021.nc
26%|██▌ | 120/470 [02:34<05:17, 1.10it/s]
717-Smith-et-al-2017.nc
26%|██▌ | 121/470 [02:35<05:12, 1.12it/s]
723-Robison-et-al-1981.nc
26%|██▌ | 122/470 [02:35<05:11, 1.12it/s]
474-Madigan-et-al-2017.nc
26%|██▌ | 123/470 [02:37<05:41, 1.02it/s]
476-Ruelas-Inzunza-et-al-2012.nc
26%|██▋ | 124/470 [02:38<05:42, 1.01it/s]
514-Miki-et-al-2016.nc
27%|██▋ | 125/470 [02:39<05:38, 1.02it/s]
681-NRA---Nuclear-Regulation-Authority-2021.nc
27%|██▋ | 126/470 [02:40<05:54, 1.03s/it]
446-Valette-Silver-and-Lauenstein-1995.nc
27%|██▋ | 127/470 [02:41<05:33, 1.03it/s]
542-Ruelas-Inzunza-et-al-2012.nc
27%|██▋ | 128/470 [02:41<05:19, 1.07it/s]
546-Takagi-et-al-2015.nc
27%|██▋ | 129/470 [02:42<05:07, 1.11it/s]
547-Ruelas-Inzunza-2014.nc
28%|██▊ | 130/470 [02:43<05:19, 1.06it/s]
548-Suchanek-et-al-1996.nc
28%|██▊ | 131/470 [02:44<05:13, 1.08it/s]
148-JAEA---Japan-Atomic-Energy-Agency-2013.nc
28%|██▊ | 132/470 [02:45<04:55, 1.14it/s]
156-Yoshida-et-al-2015.nc
28%|██▊ | 133/470 [02:46<04:56, 1.14it/s]
178-Pham-et-al-2016.nc
29%|██▊ | 134/470 [02:47<04:46, 1.17it/s]
511-Zeng-2017.nc
29%|██▊ | 135/470 [02:48<05:22, 1.04it/s]
512-Takahashi-et-al-2015.nc
29%|██▉ | 136/470 [02:49<05:06, 1.09it/s]
517-Morita-et-al-2007.nc
29%|██▉ | 137/470 [02:51<07:19, 1.32s/it]
430-Baumann-et-al-2015.nc
29%|██▉ | 138/470 [02:54<09:45, 1.76s/it]
433-Smith-and-Towler-1993.nc
30%|██▉ | 139/470 [02:55<08:19, 1.51s/it]
194-Tateda-and-Misonou-1990.nc
30%|██▉ | 140/470 [02:56<07:35, 1.38s/it]
195-Tateda-and-Koyanagi-1994.nc
30%|███ | 141/470 [02:57<06:40, 1.22s/it]
321-Département-de-Suivi-des-Centres-d’Expérimentations-Nucléaires-(DSCEN)-2011.nc
30%|███ | 142/470 [02:57<06:01, 1.10s/it]
322-Département-de-Suivi-des-Centres-d’Expérimentations-Nucléaires-(DSCEN)-2018.nc
30%|███ | 143/470 [02:58<05:37, 1.03s/it]
467-Poletiko-et-al-1994.nc
31%|███ | 144/470 [02:59<05:17, 1.03it/s]
569-Bellamy-and-Hunter-1997.nc
31%|███ | 145/470 [03:01<06:15, 1.16s/it]
169-Villa-Alfageme-et-al-2019.nc
31%|███ | 146/470 [03:01<05:37, 1.04s/it]
411-Guy-et-al-2020.nc
31%|███▏ | 147/470 [03:03<06:18, 1.17s/it]
466-Jeffree-et-al-1997.nc
31%|███▏ | 148/470 [03:04<05:46, 1.08s/it]
279-Pearson-et-al-2016.nc
32%|███▏ | 149/470 [03:05<06:01, 1.13s/it]
282-Pearson-et-al-2016.nc
32%|███▏ | 150/470 [03:06<05:35, 1.05s/it]
84-MAFF-(now-Cefas)-2004.nc
32%|███▏ | 151/470 [03:09<08:17, 1.56s/it]
177-Laissaoui-et-al-2013.nc
32%|███▏ | 152/470 [03:09<07:01, 1.32s/it]
179-Villa-Alfageme-et-al-2018.nc
33%|███▎ | 153/470 [03:10<06:10, 1.17s/it]
303-Carvalho-et-al-2011.nc
33%|███▎ | 154/470 [03:11<05:41, 1.08s/it]
357-Arnedo-et-al-2013.nc
33%|███▎ | 155/470 [03:13<07:21, 1.40s/it]
408-Carvalho-2011.nc
33%|███▎ | 156/470 [03:14<06:46, 1.29s/it]
465-Tejera-et-al-2019.nc
33%|███▎ | 157/470 [03:16<07:38, 1.47s/it]
419-Kanisch-and-Aust-2013.nc
34%|███▎ | 158/470 [03:17<06:49, 1.31s/it]
431-Malta-and-Carvalho-2011.nc
34%|███▍ | 159/470 [03:18<06:02, 1.17s/it]
448-HEYRAUD-et-al-1988.nc
34%|███▍ | 160/470 [03:19<05:29, 1.06s/it]
339-Benkdad-et-al-2011.nc
34%|███▍ | 161/470 [03:20<05:37, 1.09s/it]
341-CNESTEN-2019.nc
34%|███▍ | 162/470 [03:21<05:13, 1.02s/it]
352-Hamid-et-al-2010.nc
35%|███▍ | 163/470 [03:22<05:55, 1.16s/it]
371-CNESTEN-2020.nc
35%|███▍ | 164/470 [03:23<06:05, 1.20s/it]
396-Ostlund-1984.nc
35%|███▌ | 165/470 [03:24<05:37, 1.11s/it]
308-Jalili-et-al-2009.nc
35%|███▌ | 166/470 [03:26<07:06, 1.40s/it]
248-Štrok-and-Smodiš-2011.nc
36%|███▌ | 167/470 [03:28<07:41, 1.52s/it]
296-Carvalho-et-al-2011.nc
36%|███▌ | 168/470 [03:31<09:41, 1.92s/it]
397-Ostlund-and-Grall-1987.nc
36%|███▌ | 169/470 [03:32<08:03, 1.61s/it]
41-Aarkrog-et-al-1994.nc
36%|███▌ | 170/470 [03:33<07:35, 1.52s/it]
161-Gómez-Guzmán-et-al-2013.nc
36%|███▋ | 171/470 [03:34<06:28, 1.30s/it]
168-Vivo-Vilches-et-al-2018.nc
37%|███▋ | 172/470 [03:35<05:44, 1.16s/it]
186-Corcho-Alvarado-et-al-2014.nc
37%|███▋ | 173/470 [03:36<06:17, 1.27s/it]
188-Thünen-Institute-2018.nc
37%|███▋ | 174/470 [03:38<07:20, 1.49s/it]
25-Nies-1989.nc
37%|███▋ | 175/470 [03:39<06:13, 1.27s/it]
175-Santos-et-al-2007.nc
37%|███▋ | 176/470 [03:40<05:26, 1.11s/it]
31-Aarkrog-et-al-1992.nc
38%|███▊ | 177/470 [03:41<04:50, 1.01it/s]
174-Hurtado-Bermúdez-et-al-2018.nc
38%|███▊ | 178/470 [03:42<04:45, 1.02it/s]
399-Andrié-et-al-1988.nc
38%|███▊ | 179/470 [03:42<04:27, 1.09it/s]
540-Deiaa-2020.nc
38%|███▊ | 180/470 [03:43<04:18, 1.12it/s]
559-Fiev-et-al-2013.nc
39%|███▊ | 181/470 [03:44<04:47, 1.00it/s]
562-Joensen-2011.nc
39%|███▊ | 182/470 [03:45<04:33, 1.05it/s]
691-Cunningham-and-O’Grady-1986.nc
39%|███▉ | 183/470 [03:46<04:26, 1.08it/s]
692-Cunningham-et-al-1988.nc
39%|███▉ | 184/470 [03:47<04:21, 1.09it/s]
693-O’Grady-and-Currivan-1990.nc
39%|███▉ | 185/470 [03:49<06:13, 1.31s/it]
694-O’Grady-et-al-1991.nc
40%|███▉ | 186/470 [03:51<06:12, 1.31s/it]
405-Berrow-et-al-1998.nc
40%|███▉ | 187/470 [03:51<05:27, 1.16s/it]
719-Environment-Agency-et-al-2023.nc
40%|████ | 188/470 [03:52<05:19, 1.13s/it]
372-CNESTEN-2020.nc
40%|████ | 189/470 [03:53<04:46, 1.02s/it]
301-Fonollosa-et-al-2015.nc
40%|████ | 190/470 [03:54<04:35, 1.01it/s]
316-Pollard-et-al-1998.nc
41%|████ | 191/470 [03:55<04:24, 1.05it/s]
326-Benmansour-et-al-2006.nc
41%|████ | 192/470 [03:57<05:29, 1.19s/it]
311-Ryan-et-al-1999.nc
41%|████ | 193/470 [03:58<05:07, 1.11s/it]
484-Saito-et-al-2003.nc
41%|████▏ | 194/470 [03:59<05:10, 1.12s/it]
236-Teixeira-and-Mazzilli-2017.nc
41%|████▏ | 195/470 [04:00<04:38, 1.01s/it]
441-Godoy-et-al-2003.nc
42%|████▏ | 196/470 [04:00<04:25, 1.03it/s]
711-Ramos-2010.nc
42%|████▏ | 197/470 [04:02<05:14, 1.15s/it]
269-Mársico-et-al-2014.nc
42%|████▏ | 198/470 [04:03<04:48, 1.06s/it]
173-Hurtado-Bermudez-et-al-2017.nc
42%|████▏ | 199/470 [04:04<04:25, 1.02it/s]
108-Figueira-et-al-2006.nc
43%|████▎ | 200/470 [04:05<04:13, 1.06it/s]
305-Pereira-2009.nc
43%|████▎ | 201/470 [04:06<04:17, 1.04it/s]
362-Onjefu-et-al-2016.nc
43%|████▎ | 202/470 [04:06<04:17, 1.04it/s]
366-Onjefu-et-al-2017.nc
43%|████▎ | 203/470 [04:09<06:06, 1.37s/it]
438-Cherry-et-al-1994.nc
43%|████▎ | 204/470 [04:10<05:24, 1.22s/it]
442-Moura-et-al-2015.nc
44%|████▎ | 205/470 [04:11<06:08, 1.39s/it]
444-Gouvea-et-al-1992.nc
44%|████▍ | 206/470 [04:12<05:26, 1.24s/it]
483-Cunha-et-al-1993.nc
44%|████▍ | 207/470 [04:13<04:57, 1.13s/it]
235-Jesus-and-Mazzilli-2017.nc
44%|████▍ | 208/470 [04:14<04:32, 1.04s/it]
555-Gouvea-et-al-2008.nc
44%|████▍ | 209/470 [04:15<04:14, 1.02it/s]
485-Pereira-and-Kelecom-2010.nc
45%|████▍ | 210/470 [04:16<04:03, 1.07it/s]
528-Godoy-et-al-2008.nc
45%|████▍ | 211/470 [04:17<03:54, 1.10it/s]
451-Swift-et-al-1994.nc
45%|████▌ | 212/470 [04:18<04:07, 1.04it/s]
538-Brown-1999.nc
45%|████▌ | 213/470 [04:18<03:57, 1.08it/s]
690-CEFAS-2020.nc
46%|████▌ | 214/470 [04:19<03:54, 1.09it/s]
198-Skjerdal-et-al-2017.nc
46%|████▌ | 215/470 [04:20<03:56, 1.08it/s]
102-RWS-2010.nc
46%|████▌ | 216/470 [04:21<03:43, 1.14it/s]
170-Mas-et-al-2004.nc
46%|████▌ | 217/470 [04:22<03:39, 1.15it/s]
450-Ghose-and-Heaton-2005.nc
46%|████▋ | 218/470 [04:23<03:34, 1.18it/s]
697-Long-et-al-1998.nc
47%|████▋ | 219/470 [04:24<03:34, 1.17it/s]
197-Skjerdal-et-al-2015.nc
47%|████▋ | 220/470 [04:24<03:33, 1.17it/s]
44-Aarkrog-et-al-1989.nc
47%|████▋ | 221/470 [04:25<03:26, 1.21it/s]
6-Kautsky-and-Eicke-1982.nc
47%|████▋ | 222/470 [04:27<04:26, 1.08s/it]
482-Heldal-2019.nc
47%|████▋ | 223/470 [04:28<04:12, 1.02s/it]
500-Ababneh-et-al-2018.nc
48%|████▊ | 224/470 [04:29<04:00, 1.02it/s]
531-Leppänen-2013.nc
48%|████▊ | 225/470 [04:30<03:53, 1.05it/s]
230-Rui-et-al-2019.nc
48%|████▊ | 226/470 [04:30<03:39, 1.11it/s]
415-Heldal-et-al-2003.nc
48%|████▊ | 227/470 [04:31<03:33, 1.14it/s]
481-Andersen-et-al-2006.nc
49%|████▊ | 228/470 [04:33<04:40, 1.16s/it]
566-Stepnowski-and-Skwarzec-2000.nc
49%|████▊ | 229/470 [04:34<04:15, 1.06s/it]
695-McGarry-et-al-1994.nc
49%|████▉ | 230/470 [04:35<03:59, 1.00it/s]
698-Ryan-et-al-2000.nc
49%|████▉ | 231/470 [04:36<03:55, 1.02it/s]
701-Ryan-et-al-2007.nc
49%|████▉ | 232/470 [04:38<05:17, 1.34s/it]
696-Pollard-et-al-1996.nc
50%|████▉ | 233/470 [04:39<04:43, 1.20s/it]
700-McMahon-et-al-2005.nc
50%|████▉ | 234/470 [04:40<04:20, 1.10s/it]
534-McCartney-et-al-2000.nc
50%|█████ | 235/470 [04:40<04:02, 1.03s/it]
699-Ryan-et-al-2003.nc
50%|█████ | 236/470 [04:41<04:05, 1.05s/it]
702-Smith-et-al-2007.nc
50%|█████ | 237/470 [04:42<03:50, 1.01it/s]
703-Fegan-et-al-2008.nc
51%|█████ | 238/470 [04:43<03:46, 1.02it/s]
704-Fegan-et-al-2010.nc
51%|█████ | 239/470 [04:44<03:36, 1.06it/s]
705-McGinnity-et-al-2010.nc
51%|█████ | 240/470 [04:45<03:30, 1.09it/s]
709-EPA-Ireland-2020.nc
51%|█████▏ | 241/470 [04:46<03:22, 1.13it/s]
271-Renaud-et-al-2015.nc
51%|█████▏ | 242/470 [04:47<03:28, 1.09it/s]
292-Bustamante-et-al-2002.nc
52%|█████▏ | 243/470 [04:48<03:24, 1.11it/s]
317-Connan-et-al-2007.nc
52%|█████▏ | 244/470 [04:49<03:22, 1.11it/s]
716-Renaud-et-al-2015.nc
52%|█████▏ | 245/470 [04:49<03:23, 1.10it/s]
100-HELCOM-MORS-2018.nc
52%|█████▏ | 246/470 [04:55<08:02, 2.15s/it]
162-Gómez-Guzmán-et-al-2014.nc
53%|█████▎ | 247/470 [04:56<07:14, 1.95s/it]
172-Pham-et-al-2014.nc
53%|█████▎ | 248/470 [04:58<07:40, 2.07s/it]
553-Zakaria-et-al-2008.nc
53%|█████▎ | 249/470 [05:01<07:57, 2.16s/it]
565-Dahlgaard-1996.nc
53%|█████▎ | 250/470 [05:02<06:35, 1.80s/it]
558-Fiévet-2020.nc
53%|█████▎ | 251/470 [05:03<05:43, 1.57s/it]
567-Germain-1995.nc
54%|█████▎ | 252/470 [05:04<05:00, 1.38s/it]
17-Guary-et-al-1982.nc
54%|█████▍ | 253/470 [05:05<04:24, 1.22s/it]
62-McDonald-et-al-1986.nc
54%|█████▍ | 254/470 [05:05<04:08, 1.15s/it]
552-Zalewska-2016.nc
54%|█████▍ | 255/470 [05:06<03:53, 1.08s/it]
563-Ciesielski-2015.nc
54%|█████▍ | 256/470 [05:07<03:40, 1.03s/it]
564-Saremi-et-al-2018.nc
55%|█████▍ | 257/470 [05:10<05:14, 1.48s/it]
274-Pietrzak-Flis-et-al-2001.nc
55%|█████▍ | 258/470 [05:11<04:52, 1.38s/it]
551-Zalewska-and-Saniewski-2011.nc
55%|█████▌ | 259/470 [05:13<05:51, 1.67s/it]
171-Gómez-Guzmán-et-al-2013.nc
55%|█████▌ | 260/470 [05:14<05:08, 1.47s/it]
150-Petrinec-et-al-2013.nc
56%|█████▌ | 261/470 [05:15<04:20, 1.25s/it]
151-Petrinec-et-al-2012.nc
56%|█████▌ | 262/470 [05:17<04:53, 1.41s/it]
472-Antovic-and-Antovic-2011.nc
56%|█████▌ | 263/470 [05:19<05:37, 1.63s/it]
510-Men-et-al-2020.nc
56%|█████▌ | 264/470 [05:20<05:08, 1.50s/it]
281-Desideri-et-al-2010.nc
56%|█████▋ | 265/470 [05:21<04:23, 1.29s/it]
283-Rogić-et-al-2013.nc
57%|█████▋ | 266/470 [05:22<03:55, 1.16s/it]
721-Andjelic-et-al-2003.nc
57%|█████▋ | 267/470 [05:23<03:38, 1.08s/it]
410-Jia-et-al-2020.nc
57%|█████▋ | 268/470 [05:24<03:34, 1.06s/it]
268-Antovic-and-Antovic-2011.nc
57%|█████▋ | 269/470 [05:25<03:20, 1.00it/s]
10-Fukai-et-al-1980.nc
57%|█████▋ | 270/470 [05:26<04:03, 1.22s/it]
250-Rožmarić-et-al-2012.nc
58%|█████▊ | 271/470 [05:28<03:59, 1.20s/it]
255-Roselli-et-al-2017.nc
58%|█████▊ | 272/470 [05:28<03:41, 1.12s/it]
299-Kristan-et-al-2015.nc
58%|█████▊ | 273/470 [05:29<03:24, 1.04s/it]
561-Kül-2020.nc
58%|█████▊ | 274/470 [05:31<04:11, 1.29s/it]
219-Polikarpov-et-al-1991.nc
59%|█████▊ | 275/470 [05:32<03:42, 1.14s/it]
280-Mat-Çatal-et-al-2012.nc
59%|█████▊ | 276/470 [05:33<03:23, 1.05s/it]
284-Aközcan-and-Uğur-2013.nc
59%|█████▉ | 277/470 [05:34<03:09, 1.02it/s]
302-Kılıç-et-al-2014.nc
59%|█████▉ | 278/470 [05:35<03:05, 1.04it/s]
412-Ugur-et-al-2002.nc
59%|█████▉ | 279/470 [05:35<02:54, 1.09it/s]
530-Aközcan-2013.nc
60%|█████▉ | 280/470 [05:36<02:54, 1.09it/s]
554-Yilmaz-2020.nc
60%|█████▉ | 281/470 [05:37<02:47, 1.13it/s]
449-Kılıç-et-al-2018.nc
60%|██████ | 282/470 [05:38<02:55, 1.07it/s]
537-Nonova-2014.nc
60%|██████ | 283/470 [05:39<02:47, 1.11it/s]
536-Nonova-2016.nc
60%|██████ | 284/470 [05:40<02:42, 1.15it/s]
220-Bologa-and-Patrascu-1994.nc
61%|██████ | 285/470 [05:41<02:40, 1.15it/s]
2-Crusius-and-Anderson-1991.nc
61%|██████ | 286/470 [05:41<02:36, 1.18it/s]
3-Top-and-Clarke-1983.nc
61%|██████ | 287/470 [05:42<02:29, 1.23it/s]
221-Varinlioglu-et-al-1995.nc
61%|██████▏ | 288/470 [05:43<02:24, 1.26it/s]
310-Güngör-et-al-2006.nc
61%|██████▏ | 289/470 [05:44<02:44, 1.10it/s]
229-Cartes-et-al-2017.nc
62%|██████▏ | 290/470 [05:45<02:35, 1.16it/s]
242-Fonollosa-et-al-2017.nc
62%|██████▏ | 291/470 [05:46<02:47, 1.07it/s]
373-Castrillejo-et-al-2017.nc
62%|██████▏ | 292/470 [05:47<02:38, 1.12it/s]
398-Andrié-and-Merlivat-1988.nc
62%|██████▏ | 293/470 [05:48<02:36, 1.13it/s]
247-Nadal-et-al-2011.nc
63%|██████▎ | 294/470 [05:49<02:39, 1.11it/s]
260-Diaz-Frances-et-al-2017.nc
63%|██████▎ | 295/470 [05:49<02:32, 1.15it/s]
334-Laissaoui-et-al-2008.nc
63%|██████▎ | 296/470 [05:50<02:26, 1.19it/s]
338-Thébault-et-al-2008.nc
63%|██████▎ | 297/470 [05:51<02:25, 1.19it/s]
318-Camacho-and-Tenorio-2011.nc
63%|██████▎ | 298/470 [05:52<02:24, 1.19it/s]
333-Noureddine-et-al-2008.nc
64%|██████▎ | 299/470 [05:53<02:22, 1.20it/s]
356-González-Fernández-et-al-2012.nc
64%|██████▍ | 300/470 [05:54<02:31, 1.12it/s]
14-Ballestra-et-al-1980.nc
64%|██████▍ | 301/470 [05:54<02:28, 1.14it/s]
218-Delbono-et-al-2016.nc
64%|██████▍ | 302/470 [05:55<02:23, 1.17it/s]
9-Fukai-et-al-1980.nc
64%|██████▍ | 303/470 [05:56<02:18, 1.21it/s]
11-Holm-et-al-1980.nc
65%|██████▍ | 304/470 [05:57<02:44, 1.01it/s]
560-Kılıç-2014.nc
65%|██████▍ | 305/470 [05:58<02:36, 1.06it/s]
413-Hafızoğlu-et-al-2020.nc
65%|██████▌ | 306/470 [05:59<02:26, 1.12it/s]
539-Karabayir-2020.nc
65%|██████▌ | 307/470 [06:01<03:42, 1.37s/it]
227-Barsanti-et-al-2011.nc
66%|██████▌ | 308/470 [06:03<03:24, 1.26s/it]
231-Tamburrino-et-al-2019.nc
66%|██████▌ | 309/470 [06:03<03:02, 1.13s/it]
215-ENEA-Casaccia-Research-Centre-Radiation-Protection-Institute-2015.nc
66%|██████▌ | 310/470 [06:04<02:40, 1.00s/it]
216-ENEA-Casaccia-Research-Centre-Radiation-Protection-Institute-2016.nc
66%|██████▌ | 311/470 [06:05<02:28, 1.07it/s]
217-ENEA-Casaccia-Research-Centre-Radiation-Protection-Institute-2017.nc
66%|██████▋ | 312/470 [06:06<02:17, 1.15it/s]
211-ENEA-Casaccia-Research-Centre-Radiation-Protection-Institute-2011.nc
67%|██████▋ | 313/470 [06:07<02:32, 1.03it/s]
212-ENEA-Casaccia-Research-Centre-Radiation-Protection-Institute-2012.nc
67%|██████▋ | 314/470 [06:08<02:30, 1.03it/s]
213-ENEA-Casaccia-Research-Centre-Radiation-Protection-Institute-2013.nc
67%|██████▋ | 315/470 [06:08<02:18, 1.12it/s]
214-ENEA-Casaccia-Research-Centre-Radiation-Protection-Institute-2014.nc
67%|██████▋ | 316/470 [06:10<02:55, 1.14s/it]
57-Hamilton-et-al-1994.nc
67%|██████▋ | 317/470 [06:11<02:43, 1.07s/it]
77-Strand-and-Nikitin-1993.nc
68%|██████▊ | 318/470 [06:12<02:29, 1.02it/s]
378-Chen-et-al-2017.nc
68%|██████▊ | 319/470 [06:13<02:27, 1.03it/s]
473-Cooper-et-al-2000.nc
68%|██████▊ | 320/470 [06:14<02:19, 1.08it/s]
332-Diab-et-al-2019.nc
68%|██████▊ | 321/470 [06:15<02:23, 1.04it/s]
348-El-Mamoney-and-Khater-2004.nc
69%|██████▊ | 322/470 [06:15<02:15, 1.10it/s]
364-Zakaly-et-al-2016.nc
69%|██████▊ | 323/470 [06:16<02:06, 1.16it/s]
331-Ramadan-et-al-2018.nc
69%|██████▉ | 324/470 [06:17<02:10, 1.12it/s]
429-Al-Trabulsy-et-al-2013.nc
69%|██████▉ | 325/470 [06:18<02:04, 1.16it/s]
337-Arafat-et-al-2017.nc
69%|██████▉ | 326/470 [06:19<02:00, 1.19it/s]
349-El-Arabi-2005.nc
70%|██████▉ | 327/470 [06:19<01:55, 1.24it/s]
351-Uosif-et-al-2008.nc
70%|██████▉ | 328/470 [06:20<01:56, 1.22it/s]
363-Uosif-et-al-2016.nc
70%|███████ | 329/470 [06:21<01:57, 1.20it/s]
256-Hassona-et-al-2008.nc
70%|███████ | 330/470 [06:22<01:56, 1.20it/s]
556-Sirelkhatim-et-al-2008.nc
70%|███████ | 331/470 [06:24<02:41, 1.16s/it]
344-Sam-et-al-2000.nc
71%|███████ | 332/470 [06:25<02:24, 1.05s/it]
346-Sam-2003.nc
71%|███████ | 333/470 [06:26<02:17, 1.00s/it]
342-Sirelkhatim-et-al-2008.nc
71%|███████ | 334/470 [06:26<02:11, 1.03it/s]
298-Uddin-et-al-2017.nc
71%|███████▏ | 335/470 [06:27<02:05, 1.08it/s]
544-Uddin-2019.nc
71%|███████▏ | 336/470 [06:29<02:51, 1.28s/it]
241-Al-Ghadban-et-al-2012.nc
72%|███████▏ | 337/470 [06:30<02:33, 1.15s/it]
403-Al-Qaradawi-et-al-2015.nc
72%|███████▏ | 338/470 [06:31<02:21, 1.07s/it]
288-Uddin-et-al-2012.nc
72%|███████▏ | 339/470 [06:32<02:11, 1.00s/it]
290-Uddin-and-Bebhehani-2014.nc
72%|███████▏ | 340/470 [06:33<02:07, 1.02it/s]
422-Sartandel-et-al-2016.nc
73%|███████▎ | 341/470 [06:34<01:57, 1.09it/s]
469-Sartandel-2020.nc
73%|███████▎ | 342/470 [06:34<01:51, 1.15it/s]
470-Sartandel-2015.nc
73%|███████▎ | 343/470 [06:35<01:44, 1.21it/s]
499-Khot-2018.nc
73%|███████▎ | 344/470 [06:36<01:45, 1.19it/s]
295-Mishra-et-al-2009.nc
73%|███████▎ | 345/470 [06:37<01:44, 1.19it/s]
254-Hemalatha-et-al-2015.nc
74%|███████▎ | 346/470 [06:38<01:43, 1.20it/s]
263-Raj-et-al-2016.nc
74%|███████▍ | 347/470 [06:39<01:46, 1.16it/s]
275-Avadhani-et-al-2001.nc
74%|███████▍ | 348/470 [06:39<01:44, 1.17it/s]
304-Khan-and-Wesley-2011.nc
74%|███████▍ | 349/470 [06:40<01:42, 1.18it/s]
494-Wesley-and-Khan-2011.nc
74%|███████▍ | 350/470 [06:41<01:41, 1.19it/s]
496-Khan-et-al-2011.nc
75%|███████▍ | 351/470 [06:42<01:40, 1.19it/s]
291-Khan-et-al-2011.nc
75%|███████▍ | 352/470 [06:43<01:38, 1.20it/s]
497-Khan-2012.nc
75%|███████▌ | 353/470 [06:45<02:32, 1.31s/it]
498-Pole-2017.nc
75%|███████▌ | 354/470 [06:46<02:15, 1.17s/it]
543-Nadhiya-et-al-2019.nc
76%|███████▌ | 355/470 [06:47<02:06, 1.10s/it]
252-Khan-and-Wesley-2012.nc
76%|███████▌ | 356/470 [06:49<02:25, 1.27s/it]
253-Sivakumar-2014.nc
76%|███████▌ | 357/470 [06:49<02:08, 1.14s/it]
258-Arunachalam-et-al-2014.nc
76%|███████▌ | 358/470 [06:50<01:56, 1.04s/it]
300-Khan-et-al-2014.nc
76%|███████▋ | 359/470 [06:51<01:49, 1.01it/s]
265-Sathyapriya-et-al-2017.nc
77%|███████▋ | 360/470 [06:52<01:43, 1.07it/s]
286-Khan-and-Wesley-2011.nc
77%|███████▋ | 361/470 [06:53<01:37, 1.12it/s]
297-Sunith-Shine-et-al-2013.nc
77%|███████▋ | 362/470 [06:54<01:35, 1.13it/s]
289-Khan-and-Wesley-2011.nc
77%|███████▋ | 363/470 [06:55<01:35, 1.12it/s]
420-Khan-and-Wesley-2016.nc
77%|███████▋ | 364/470 [06:55<01:35, 1.11it/s]
529-Alam-et-al-1995.nc
78%|███████▊ | 365/470 [06:57<01:46, 1.02s/it]
307-Ghose-et-al-2000.nc
78%|███████▊ | 366/470 [06:58<01:40, 1.04it/s]
486-Alam-et-al-1999.nc
78%|███████▊ | 367/470 [06:58<01:35, 1.08it/s]
495-Suriyanarayanan-2010.nc
78%|███████▊ | 368/470 [06:59<01:32, 1.10it/s]
245-Musthafa-and-Krishnamoorthy-2012.nc
79%|███████▊ | 369/470 [07:00<01:29, 1.13it/s]
312-Hasan-et-al-2006.nc
79%|███████▊ | 370/470 [07:01<01:30, 1.11it/s]
277-Kannan-et-al-2001.nc
79%|███████▉ | 371/470 [07:03<01:53, 1.15s/it]
105-Theng-and-Mohamed-2005.nc
79%|███████▉ | 372/470 [07:04<01:41, 1.04s/it]
240-Khandaker-et-al-2015.nc
79%|███████▉ | 373/470 [07:04<01:35, 1.01it/s]
315-Zakri-and-Mohamed-2016.nc
80%|███████▉ | 374/470 [07:05<01:29, 1.07it/s]
502-Abdullah-et-al-2015.nc
80%|███████▉ | 375/470 [07:06<01:31, 1.03it/s]
314-Khandaker-et-al-2015.nc
80%|████████ | 376/470 [07:07<01:27, 1.08it/s]
259-Alam-and-Mohamed-2011.nc
80%|████████ | 377/470 [07:08<01:22, 1.13it/s]
243-Khandaker-et-al-2013.nc
80%|████████ | 378/470 [07:09<01:25, 1.07it/s]
503-Alam-2016.nc
81%|████████ | 379/470 [07:10<01:21, 1.11it/s]
505-Khandaker-2019.nc
81%|████████ | 380/470 [07:11<01:19, 1.14it/s]
345-Noureddine-et-al-2003.nc
81%|████████ | 381/470 [07:11<01:17, 1.14it/s]
370-Hassen-et-al-2019.nc
81%|████████▏ | 382/470 [07:12<01:14, 1.18it/s]
13-Guary-et-al-1981.nc
81%|████████▏ | 383/470 [07:13<01:20, 1.08it/s]
15-Fukai-et-al-1981.nc
82%|████████▏ | 384/470 [07:14<01:21, 1.05it/s]
28-Ballestra-et-al-1984.nc
82%|████████▏ | 385/470 [07:15<01:16, 1.11it/s]
27-Krishnaswami-et-al-1985.nc
82%|████████▏ | 386/470 [07:16<01:17, 1.09it/s]
160-Pham-et-al-2010.nc
82%|████████▏ | 387/470 [07:17<01:11, 1.16it/s]
165-Chamizo-et-al-2016.nc
83%|████████▎ | 388/470 [07:18<01:23, 1.02s/it]
166-Bressac-et-al-2017.nc
83%|████████▎ | 389/470 [07:19<01:17, 1.05it/s]
325-Lee-et-al-2006.nc
83%|████████▎ | 390/470 [07:21<01:29, 1.12s/it]
417-Holm-et-al-1994.nc
83%|████████▎ | 391/470 [07:21<01:22, 1.04s/it]
251-Strady-et-al-2015.nc
83%|████████▎ | 392/470 [07:22<01:15, 1.03it/s]
414-Harmelin-Vivien-2012.nc
84%|████████▎ | 393/470 [07:24<01:24, 1.10s/it]
327-Benkrid-and-Noureddine-2007.nc
84%|████████▍ | 394/470 [07:24<01:15, 1.01it/s]
328-Noureddine-et-al-2007.nc
84%|████████▍ | 395/470 [07:25<01:09, 1.07it/s]
545-Guendouzi-2020.nc
84%|████████▍ | 396/470 [07:27<01:21, 1.10s/it]
24-Heyraud-and-Cherry-1983.nc
84%|████████▍ | 397/470 [07:27<01:14, 1.02s/it]
20-Fukai-et-al-1982.nc
85%|████████▍ | 398/470 [07:28<01:11, 1.01it/s]
12-Higgo-et-al-1980.nc
85%|████████▍ | 399/470 [07:29<01:06, 1.07it/s]
176-Chamizo-et-al-2010.nc
85%|████████▌ | 400/470 [07:30<01:00, 1.15it/s]
324-Noureddine-et-al-2006.nc
85%|████████▌ | 401/470 [07:31<00:59, 1.16it/s]
266-Al-Masri-et-al-2000.nc
86%|████████▌ | 402/470 [07:33<01:26, 1.28s/it]
267-Aoun-et-al-2015.nc
86%|████████▌ | 403/470 [07:34<01:16, 1.14s/it]
278-El-Samad-et-al-2017.nc
86%|████████▌ | 404/470 [07:37<01:53, 1.72s/it]
335-El-Saharty-2013.nc
86%|████████▌ | 405/470 [07:38<01:32, 1.43s/it]
336-Atta-and-Zakaria-2014.nc
86%|████████▋ | 406/470 [07:38<01:19, 1.24s/it]
359-El-Gamal-2014.nc
87%|████████▋ | 407/470 [07:39<01:08, 1.09s/it]
468-Samad-2014.nc
87%|████████▋ | 408/470 [07:40<01:05, 1.06s/it]
367-Klubi-et-al-2017.nc
87%|████████▋ | 409/470 [07:41<00:58, 1.04it/s]
368-Botwe-et-al-2017.nc
87%|████████▋ | 410/470 [07:43<01:17, 1.29s/it]
340-Babatunde-et-al-2015.nc
87%|████████▋ | 411/470 [07:44<01:08, 1.16s/it]
343-Ademola-and-Ehiedu-2010.nc
88%|████████▊ | 412/470 [07:45<01:02, 1.07s/it]
369-Botwe-et-al-2017.nc
88%|████████▊ | 413/470 [07:46<00:56, 1.01it/s]
228-Botwe-et-al-2017.nc
88%|████████▊ | 414/470 [07:46<00:52, 1.08it/s]
361-Isola-and-Ajadi-2015.nc
88%|████████▊ | 415/470 [07:47<00:48, 1.13it/s]
353-Amekudzie-et-al-2011.nc
89%|████████▊ | 416/470 [07:48<00:46, 1.15it/s]
360-Iwetan-et-al-2015.nc
89%|████████▊ | 417/470 [07:49<00:55, 1.05s/it]
184-Díaz-Asencio-et-al-2016.nc
89%|████████▉ | 418/470 [07:50<00:50, 1.02it/s]
185-Alonso-Hernández-et-al-2017.nc
89%|████████▉ | 419/470 [07:51<00:46, 1.10it/s]
187-Carnero-Bravo-et-al-2018.nc
89%|████████▉ | 420/470 [07:52<00:43, 1.14it/s]
313-Alonso-Hernandez-et-al-2002.nc
90%|████████▉ | 421/470 [07:54<00:59, 1.20s/it]
306-Meinhold-and-Holtzman-1998.nc
90%|████████▉ | 422/470 [07:54<00:52, 1.08s/it]
439-Continental-Shelf-Associates-Inc-1999.nc
90%|█████████ | 423/470 [07:56<00:55, 1.19s/it]
435-Meinhold-et-al-1996.nc
90%|█████████ | 424/470 [07:57<00:52, 1.15s/it]
8-Smith-and-Walton-1980.nc
90%|█████████ | 425/470 [07:58<00:46, 1.04s/it]
152-Zhou-et-al-2018.nc
91%|█████████ | 426/470 [07:59<00:42, 1.04it/s]
249-Tuo-et-al-2016.nc
91%|█████████ | 427/470 [07:59<00:39, 1.08it/s]
261-Kim-et-al-2017.nc
91%|█████████ | 428/470 [08:00<00:39, 1.06it/s]
519-Kong-et-al-2021.nc
91%|█████████▏| 429/470 [08:01<00:37, 1.09it/s]
154-Dong-et-al-2018.nc
91%|█████████▏| 430/470 [08:03<00:51, 1.28s/it]
257-Lee-et-al-2009.nc
92%|█████████▏| 431/470 [08:05<00:57, 1.47s/it]
287-Yang-et-al-2015.nc
92%|█████████▏| 432/470 [08:07<00:59, 1.58s/it]
421-Cho-et-al-2016.nc
92%|█████████▏| 433/470 [08:08<00:49, 1.34s/it]
722-Ni-et-al-2024.nc
92%|█████████▏| 434/470 [08:10<00:54, 1.51s/it]
244-Choi-et-al-2008.nc
93%|█████████▎| 435/470 [08:11<00:45, 1.31s/it]
136-Otosaka-et-al-2010.nc
93%|█████████▎| 436/470 [08:12<00:41, 1.22s/it]
475-Inoue-et-al-2005.nc
93%|█████████▎| 437/470 [08:13<00:40, 1.22s/it]
527-Inoue-2019.nc
93%|█████████▎| 438/470 [08:14<00:35, 1.09s/it]
101-Ito-et-al-2007.nc
93%|█████████▎| 439/470 [08:15<00:31, 1.03s/it]
507-Momoshima-et-al-2012.nc
94%|█████████▎| 440/470 [08:15<00:29, 1.02it/s]
426-Waska-et-al-2008.nc
94%|█████████▍| 441/470 [08:16<00:28, 1.03it/s]
52-Amano-et-al-1996.nc
94%|█████████▍| 442/470 [08:17<00:25, 1.08it/s]
515-Kim-2020.nc
94%|█████████▍| 443/470 [08:18<00:24, 1.11it/s]
406-Burger-et-al-2007.nc
94%|█████████▍| 444/470 [08:19<00:24, 1.07it/s]
425-USDOE-Office-of-Legacy-Management-2013.nc
95%|█████████▍| 445/470 [08:20<00:27, 1.09s/it]
273-Hong-et-al-2011.nc
95%|█████████▍| 446/470 [08:23<00:35, 1.49s/it]
407-Burger-et-al-2007.nc
95%|█████████▌| 447/470 [08:24<00:30, 1.32s/it]
447-Burger-et-al-2006.nc
95%|█████████▌| 448/470 [08:25<00:28, 1.28s/it]
416-Hamilton-et-al-2008.nc
96%|█████████▌| 449/470 [08:28<00:37, 1.78s/it]
418-Bu-et-al-2013.nc
96%|█████████▌| 450/470 [08:29<00:30, 1.50s/it]
379-Chen-et-al-2015.nc
96%|█████████▌| 451/470 [08:30<00:24, 1.30s/it]
471-Chester-et-al-2013.nc
96%|█████████▌| 452/470 [08:31<00:21, 1.20s/it]
377-Chen-et-al-2019.nc
96%|█████████▋| 453/470 [08:31<00:18, 1.10s/it]
107-Yamada-et-al-2006.nc
97%|█████████▋| 454/470 [08:34<00:22, 1.38s/it]
501-Yii-and-Mahmood-2011.nc
97%|█████████▋| 455/470 [08:34<00:18, 1.23s/it]
506-Mahmood-2018.nc
97%|█████████▋| 456/470 [08:35<00:15, 1.08s/it]
557-Van-2020.nc
97%|█████████▋| 457/470 [08:37<00:16, 1.28s/it]
424-Wan-Mahmood-and-Yii-2012.nc
97%|█████████▋| 458/470 [08:38<00:14, 1.21s/it]
437-Abd-Rahim-Mohamed-and-Feong-Kuan-2005.nc
98%|█████████▊| 459/470 [08:39<00:13, 1.22s/it]
285-Lee-and-Wang-2013.nc
98%|█████████▊| 460/470 [08:41<00:13, 1.36s/it]
434-Kulsawat-and-Porntepkasemsan-2016.nc
98%|█████████▊| 461/470 [08:42<00:10, 1.19s/it]
423-Lim-and-Mohamed-2019.nc
98%|█████████▊| 462/470 [08:43<00:08, 1.11s/it]
309-Syarbaini-et-al-2014.nc
99%|█████████▊| 463/470 [08:44<00:09, 1.32s/it]
533-Pham-et-al-2010.nc
99%|█████████▊| 464/470 [08:45<00:07, 1.17s/it]
350-Zourarah-et-al-2007.nc
99%|█████████▉| 465/470 [08:46<00:05, 1.05s/it]
354-Nyarko-et-al-2011.nc
99%|█████████▉| 466/470 [08:47<00:03, 1.05it/s]
270-Garcia-Orellana-et-al-2016.nc
99%|█████████▉| 467/470 [08:48<00:02, 1.09it/s]
294-Bode-et-al-2015.nc
100%|█████████▉| 468/470 [08:48<00:01, 1.12it/s]
707-EPA-Ireland-2015.nc
100%|█████████▉| 469/470 [08:49<00:00, 1.17it/s]
708-EPA-Ireland-2017.nc