-
Notifications
You must be signed in to change notification settings - Fork 122
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1205 from knutfrode/dev
Dev
- Loading branch information
Showing
6 changed files
with
277 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
198 changes: 198 additions & 0 deletions
198
opendrift/models/openoil/adios/get_max_water_fraction_for_oils.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,198 @@ | ||
def get_water_fractions(): | ||
import difflib | ||
import json | ||
import numpy as np | ||
import matplotlib.pyplot as plt | ||
import pandas as pd | ||
from opendrift.models.openoil import OpenOil | ||
|
||
oot = OpenOil(location='Norway').oiltypes | ||
print(oot) | ||
|
||
o = pd.read_excel('oljedatabase_alle-25.10.2023.xlsx') | ||
oljer = o['Oljetype'].unique().astype(list) | ||
oljer = oljer[0:-1] | ||
print(oljer) | ||
|
||
if False: | ||
for ot in oot: # Loop to generate suggestions for mapping | ||
matches = difflib.get_close_matches(ot.title(), oljer, 1, cutoff=.5) | ||
if len(matches) > 0: | ||
matches = matches[0] | ||
else: | ||
matches = '' | ||
print(f'\'{ot}\': \'{matches}\',') | ||
|
||
mapping = { | ||
'AASGARD A 2003': 'Åsgard 2003', | ||
'AASTA HANSTEEN BLEND 2020': 'Aasta Hansteen Blend 2020', | ||
'ALTA 2016': 'Alta 2016', | ||
'ALVE 2010': 'Alve 2014 *(2017)', | ||
'ALVE 2014': 'Alve 2014 *(2017)', | ||
'ALVHEIM KNELER 2009': 'Kneler (Alvheim) 2009', | ||
'ATLA KONDENSAT 2013': 'Atla kondensat 2013', | ||
'AVALDSNES 2012': 'Avaldsnes (Johan Sverdrup) 2012', | ||
'BALDER 2002': 'Balder Blend 2010', | ||
'BALDER BLEND 2010': 'Balder Blend 2010', | ||
'BOYLA CRUDE 2016': 'Bøyla 2016', | ||
'BRAGE 2013': 'Brage 2013', | ||
'BRASSE 2018': 'Brasse 2018', | ||
'BREAM 2011': 'Bream 2011', | ||
'BREIDABLIKK 2023': 'Breidablikk', | ||
'BRYNHILD CRUDE 2015': 'Brynhild 2015', | ||
'CAURUS 2011': 'Caurus 2011', | ||
'DRAUGEN 2008': 'Draugen 2008', | ||
'DRIVIS 2017': 'Drivis 2017', | ||
'DUGONG 2022': 'Dugong 2022', | ||
'DUVA 2021': 'Duva 2021', | ||
'DVALIN 2020': 'Dvalin kondensat 2020', | ||
'EKOFISK 2002': 'Ekofisk blend 2002', | ||
'EKOFISK BLEND 2002': 'Ekofisk blend 2002', | ||
'EKOFISK BLEND 2015': 'Ekofisk J 2002', | ||
'EKOFISK J 2015': 'Ekofisk J 2015', | ||
'ELDFISK 2002': 'Eldfisk B 2015', | ||
'ELDFISK B 2015': 'Eldfisk B 2015', | ||
'ELDFISK BLEND 2015': 'Eldfisk B 2015', | ||
'ELDFISK KOMPLEKS 2015': 'Eldfisk Kompleks 2015', | ||
'ELLI 1999': 'Elli 1999', | ||
'ELLI SOUTH 1999': 'Elli South 1999', | ||
'EMBLA 2002': 'Embla 2002', | ||
'FENJA (PIL) 2015': 'Fenja (Pil) 2015', | ||
'FOGELBERG CONDENSATE 2021': 'Fogelberg Kondensat 2021', | ||
'FORSETI 2002': 'Forseti 2002', | ||
'FOSSEKALL 2013': 'Fossekall 2013', | ||
'FRAM 2013': 'Fram 2013', | ||
'FROSK 2020': 'Frosk 2020', | ||
'FROY 1996': 'Frøy 1996', | ||
'GARANTIANA 2013': 'Garantiana 2013', | ||
'GAUPE 2011': 'Gaupe 2011', | ||
'GINA KROG CRUDE 2018': 'Gina Krog 2018', | ||
'GJOA 2011': 'Gjøa 2011', | ||
'GLITNE 2002': 'Glitne 2002', | ||
'GOLIAT BLEND 50/50 2008': 'Goliat Blend 2008', | ||
'GOLIAT BLEND 70/30 2008': 'Goliat Blend 2008', | ||
'GOLIAT KOBBE 2008': 'Goliat Kobbe 2008 *(2010)', | ||
'GOLIAT REALGRUNNEN 2001': 'Goliat Realgrunnen 2003', | ||
'GOLIAT REALGRUNNEN 2008': 'Goliat Realgrunnen 2003', | ||
'GRANE 1997': 'Grane 1997', | ||
'GROSBEAK 2012': 'Grosbeak 2012', | ||
'GUDRUN 2012': 'Gudrun 2012', | ||
'GUDRUN 2019': 'Gudrun 2019', | ||
'GULLFAKS A BLEND 2010': 'Gullfaks A 2010', | ||
'GULLFAKS C BLEND 2010': 'Gullfaks C 2010', | ||
'GULLFAKS SOR 1996': 'Gullfaks Sør 1996', | ||
'GYDA 2002': 'Gyda 2002', | ||
'HAVIS 2013': 'Havis 2013', | ||
'HEIDRUN AaRE 2004': 'Heidrun Åre 2004', | ||
'HEIDRUN EXPORT BLEND 2004': 'Heidrun Åre 2004', | ||
'HEIDRUN TILJE 2004': 'Heidrun Åre 2004', | ||
'HULDRA KONDENSAT 1998': 'Huldra 1998', | ||
'IRIS CONDENSATE 2020': 'Iris 2020', | ||
'IVAR AASEN 2012': 'Draupne (Ivar Aasen) 2012', | ||
'JORDBAER 2011': 'Jordbær 2011', | ||
'KRISTIN 2006': 'Kristin 2006', | ||
'KVITEBJORN 2009': 'Kvitebjørn 2009', | ||
'KVITEBJORN 2019': 'Kvitebjørn 2019', | ||
'LAVRANS 1997': 'Lavrans 1997', | ||
'LILLE PRINSEN 2022': 'Lille Prinsen 2022', | ||
'LILLEFRIGG KONDENSAT 1996': 'Lillefrigg 1996', | ||
'LINERLE 2005': 'Linerle 2005', | ||
'LUNO 2011': 'Luno (Edvard Grieg) 2011', | ||
'LUNO II 2014': 'Solveig (Luno II) 2014', | ||
'MARIA 2013': 'Maria 2013', | ||
'MARTIN LINGE CONDENSATE 2016': 'Martin Linge kondensat 2016', | ||
'MARTIN LINGE CRUDE 2016': 'Martin Linge olje 2016', | ||
'MARULK 2014': 'Marulk 2014', | ||
'MORVIN 2008': 'Morvin 2008', | ||
'NJORD 1997': 'Njord 1997* (2023)', | ||
'NJORD 2002': 'Njord 2003', | ||
'NJORD 2003': 'Njord 2003', | ||
'NORNE 2010': 'Norne 2018', | ||
'NORNE BLEND 2010': 'Norne Blend 2010', | ||
'NORNE CRUDE 2017': 'Norne 2018', | ||
'ODA 2019': 'Oda 2019', | ||
'ORMEN LANGE KONDENSAT 2008': 'Ormen Lange 2008', | ||
'OSEBERG A 2013': 'Oseberg A 2013', | ||
'OSEBERG BLEND 2007': 'Oseberg Blend 2007', | ||
'OSEBERG C 1995': 'Oseberg C 1999', | ||
'OSEBERG C 2013': 'Oseberg A 2013', | ||
'OSEBERG OST 1998': 'Oseberg C 1999', | ||
'OSEBERG OST 2013': 'Oseberg Øst 2013', | ||
'OSEBERG SOR 2000': 'Oseberg Sør 2001', | ||
'OSEBERG SOR 2013': 'Oseberg Sør 2013', | ||
'OSELVAR 2012': 'Oselvar 2012', | ||
'RINGHORNE 2002': 'Ringhorne 2002', | ||
'SF NORD BRENT 2021': 'SF Nord Brent 2021', | ||
'SKARFJELL 2014': 'Skarfjell 2014', | ||
'SKARV 2004': 'Skarv olje 2004', | ||
'SKARV KONDENSAT 2014': 'Skarv kondensat 2014', | ||
'SKOGUL 2020': 'Skogul 2020', | ||
'SKRUGARD 2012': 'Skrugard 2012', | ||
'SLEIPNER KONDENSAT 2002': 'leipner 2002', | ||
'SLEIPNER VEST 1998': 'Sleipner Vest 1998', | ||
'SMORBUKK 2003': 'Smørbukk Sør 2003', | ||
'SMORBUKK KONDENSAT 2003': 'Smørbukk kondensat 2003', | ||
'SMORBUKK SOR 2003': 'Smørbukk Sør 2003', | ||
'SNOHVIT KONDENSAT 2001': 'Snøhvit 2001', | ||
'SNORRE B 2004': 'Snorre B 2004', | ||
'SNORRE TLP 2004': 'Snorre TLP 2004', | ||
'STAER 2010': 'Stær 2010', | ||
'STATFJORD A 2001': 'Statfjord A 2001', | ||
'STATFJORD B 2001': 'Statfjord A 2001', | ||
'STATFJORD C 2001': 'Statfjord C 2001 *(2021)', | ||
'SVALE 2010': 'Svale 2010', | ||
'SVALIN 2014': 'Svalin 2014', | ||
'SYGNA BRENT 2021': 'Sygna Brent 2021', | ||
'TAMBAR 2002': 'Tambar 2002', | ||
'TAU 1999': 'Tau 1999', | ||
'TOR 2002': 'Tambar 2002', | ||
'TOR II 2022': 'TOR ll 2022', | ||
'TORDIS 2002': 'Iris 2020', | ||
'TRESTAKK 2008': 'Trestakk 2008', | ||
'TROLL, STATOIL': 'Troll 1999', | ||
'TRYM KONDENSAT 2011': 'Trym 2011', | ||
'TYRIHANS NORD 2004': 'Tyrihans Nord 2004', | ||
'TYRIHANS SOR 2004': 'Tyrihans Sør 2004', | ||
'ULA 1999': 'Ula 1999', | ||
'UTGARD CONDENSATE 2021': 'Utgard kondensat 2021', | ||
'VALE 2001': 'Vale 2001', | ||
'VALE 2014': 'Vale 2014', | ||
'VALHALL 2002': 'Valhall 2002', | ||
'VALHALL 2021': 'Valhall 2021', | ||
'VARG 2000': 'Varg 2000', | ||
'VEGA CONDENSATE 2015': 'Vega 2016', | ||
'VESLEFRIKK 2012': 'Veslefrikk 2012', | ||
'VILJE 2009': 'Vilje 2009', | ||
'VISUND 2009': 'Visund 2009', | ||
'VISUND CRUDE OIL 2020': 'Visund Crude Oil 2020', | ||
'VISUND SOR CONDENSATE 2020': 'Visund Sør Kondensat 2020', | ||
'VOLUND 2010': 'Volund 2010', | ||
'VOLVE 2006': 'Volve 2006', | ||
'WISTING 2015': 'Wisting 2015', | ||
'WISTING CENTRAL 2017': 'Wisting Central 2017', | ||
'YME 2023': 'Yme 2023' | ||
} | ||
|
||
|
||
#o = o.loc[o['Oljetype'] == 'Yme 2023'] | ||
print(o) | ||
print(o.columns) | ||
print(o.groupby(['Oljetype', 'Temperatur (°C)'])['Vanninnhold'].max().to_string()) | ||
|
||
oilmax = { # Some known limits not in NOFO excel file | ||
'MARINE GAS OIL 500 ppm S 2017': | ||
{'temperatures': [15], 'max_water_fraction': [.1]}, | ||
'OFELIA 2023': | ||
{'temperatures': [5, 15], 'max_water_fraction': [.4, .7]}, | ||
} | ||
|
||
for ot in mapping: | ||
d = o.loc[o['Oljetype'] == mapping[ot]].groupby(['Temperatur (°C)'])['Vanninnhold'].max() | ||
oilmax[ot] = {'temperatures': list(d.keys().values), | ||
'max_water_fraction': list(d.values)} | ||
print(oilmax) | ||
with open('max_water_fraction.json', 'w') as json_file: | ||
json.dump(oilmax , json_file) | ||
|
||
if __name__ == '__main__': | ||
get_water_fractions() |
Oops, something went wrong.