from opendrift.models.bivalvelarvae import BivalveLarvae import time start_time = time.time() #### # Month selection #### runtime = [datetime(2016,3,2), datetime(2016,3,3)] finish_time = (datetime(2016,3,2) + timedelta(days = 31.0)) ############################### # MODEL SELECTION ############################### o = BivalveLarvae(loglevel=100) o.max_speed = 3# ############################### # READERS ############################### thredds_path_1 = 'http://thredds.moanaproject.org:8080/thredds/dodsC/moana/ocean/NZB/v1.9/monthly_avg/nz5km_avg_201603.nc' reader_moana_v19 = reader_ROMS_native_MOANA.Reader(thredds_path_1) # load data for that year reader_moana_v19.multiprocessing_fail = True # bypass the use of multi core for coordinates conversion and seems to make the model run much faster. # # Making customised landmask - not required here, using ROMS landmask # reader_landmask = reader_global_landmask.Reader( # llcrnrlon=171.0, llcrnrlat=184.5, # urcrnrlon=-42.0, urcrnrlat=-34.0) # max is 185deg # use native landmask of ROMS files
# import os import sys import time import numpy as np import matplotlib from datetime import datetime, timedelta from opendrift.readers import reader_ROMS_native_MOANA from opendrift.models.bivalvelarvae import BivalveLarvae start_month = int(sys.argv[1]) months = ['201001','201002','201003','201004','201005','201006','201007','201008','201009','201010','201011','201012'] ############################### # MODEL SELECTION ############################### o = BivalveLarvae(loglevel=0)#,logfile='mussel_forwardtrack_%s_%s.log' % (year,month) ) # Set loglevel to 0 for debug information ############################### # READERS ############################### path201001 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201001.nc' path201002 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201002.nc' path201003 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201003.nc' path201004 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201004.nc' path201005 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201005.nc' path201006 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201006.nc' path201007 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201007.nc' path201008 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201008.nc' path201009 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201009.nc'
#!/usr/bin/env python import os import sys import numpy as np from datetime import datetime, timedelta from opendrift.readers import reader_global_landmask from opendrift.readers import reader_ROMS_native_MOANA from opendrift.models.bivalvelarvae import BivalveLarvae ############################### # MODEL SELECTION ############################### o = BivalveLarvae(loglevel=100) # Set loglevel to 0 for debug information o.max_speed = 5.0 # ############################### # READERS ############################### reader_moana_v19_1 = reader_ROMS_native_MOANA.Reader( '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201706.nc') reader_moana_v19_2 = reader_ROMS_native_MOANA.Reader( '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201707.nc') reader_moana_v19_3 = reader_ROMS_native_MOANA.Reader( '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201708.nc') o.add_reader([reader_moana_v19_1, reader_moana_v19_2, reader_moana_v19_3]) o.set_config('general:use_auto_landmask', False) # dynamical landmask if true
import os import sys import time import numpy as np import matplotlib from datetime import datetime, timedelta from opendrift.readers import reader_ROMS_native_MOANA from opendrift.models.bivalvelarvae import BivalveLarvae r = reader_ROMS_native_MOANA.Reader('input/nz5km_avg_200601.nc') o = BivalveLarvae(loglevel=30) o.add_reader([r]) ############################### #Set Configs ############################### o.set_config('general:use_auto_landmask', True) o.set_config('environment:fallback:x_wind', 0.0) o.set_config('environment:fallback:y_wind', 0.0) o.set_config('environment:fallback:x_sea_water_velocity', 0.0) o.set_config('environment:fallback:y_sea_water_velocity', 0.0) o.set_config('environment:fallback:sea_floor_depth_below_sea_level', 100000.0) Kxy = 0.1176 #m2/s-1 Kz = 0.01 #m2/s-1 o.set_config('drift:horizontal_diffusivity',Kxy) o.set_config('environment:fallback:ocean_vertical_diffusivity', Kz) o.set_config('seed:ocean_only',True) o.set_config('drift:advection_scheme','runge-kutta4')
#!/usr/bin/env python """ Bivalve Larvae class ============= """ from opendrift.readers import reader_netCDF_CF_generic from opendrift.readers import reader_ROMS_native from datetime import datetime, timedelta from opendrift.models.bivalvelarvae import BivalveLarvae import numpy as np o = BivalveLarvae(loglevel=0) # Set loglevel to 0 for debug information # o = PelagicEggDrift(loglevel=20) # Set loglevel to 0 for debug information #################################################################################################################### # READERS # # Atmospheric model for wind # reader_arome = reader_netCDF_CF_generic.Reader(o.test_data_folder() + # '16Nov2015_NorKyst_z_surface/arome_subset_16Nov2015.nc') # Ocean model for current # reader_norkyst = reader_netCDF_pytCF_generic.Reader(o.test_data_folder() + # '16Nov2015_NorKyst_z_surface/norkyst800_subset_16Nov2015.nc') # # Creating and adding reader for Nordic 4km current dataset nordic_native = reader_ROMS_native.Reader( o.test_data_folder() + '2Feb2016_Nordic_sigma_3d/Nordic-4km_SLEVELS_avg_00_subset2Feb2016.nc') o.add_reader(nordic_native)
from opendrift.readers import reader_ROMS_native_MOANA #from opendrift.models.oceandrift import OceanDrift from opendrift.models.bivalvelarvae import BivalveLarvae #### # Month selection #### runtime = [datetime(2017,6,1,12), datetime(2017,6,2,12)] finish_time = (datetime(2017,6,1,12) + timedelta(days = 36.0)) ############################### # MODEL SELECTION ############################### o = BivalveLarvae(loglevel=100) o.max_speed = 3# ############################### # READERS ############################### thredds_path_1 = 'http://thredds.moanaproject.org:8080/thredds/dodsC/moana/ocean/NZB/v1.9/monthly_avg/nz5km_avg_201706.nc' reader_moana_v19 = reader_ROMS_native_MOANA.Reader(thredds_path_1) # load data for that year reader_moana_v19.multiprocessing_fail = True # bypass the use of multi core for coordinates conversion and seems to make the model run much faster. # # Making customised landmask - not required here, using ROMS landmask # reader_landmask = reader_global_landmask.Reader( # llcrnrlon=171.0, llcrnrlat=184.5, # urcrnrlon=-42.0, urcrnrlat=-34.0) # max is 185deg # use native landmask of ROMS files
from opendrift.readers import reader_netCDF_CF_generic from opendrift.readers import reader_ROMS_native from opendrift.readers import reader_ROMS_native_MOANA from datetime import datetime,timedelta from opendrift.models.bivalvelarvae import BivalveLarvae import numpy as np import sys # call the script using # python example_bivalvelarvae_moana.py 0, for example with no habitat # python example_bivalvelarvae_moana.py 1 for example with habitat use_habitat = int(sys.argv[1]) o = BivalveLarvae(loglevel=0) # Set loglevel to 0 for debug information ############################### # READERS ############################### thredds_path_1 = 'http://thredds.moanaproject.org:8080/thredds/dodsC/moana/ocean/NZB/v1.9/monthly_avg/nz5km_avg_201603.nc' reader_moana_v19 = reader_ROMS_native_MOANA.Reader(thredds_path_1) # load data for that year reader_moana_v19.multiprocessing_fail = True # bypass the use of multi core for coordinates conversion and seems to make the model run much faster. # use native landmask of ROMS files o.add_reader([reader_moana_v19]) # [reader_landmask,reader_moana_v19] o.set_config('general:use_auto_landmask', False) # prevent opendrift from making a new dynamical landmask ############################### # PARTICLE SEEDING ############################### # 174.949513895 -40.029317969 28045 Taranaki Bight o.seed_elements( lon = 174.949513895-.1, lat = -40.029317969-.1,
path2 = args.input + 'nz5km_his_' + yyyy2 + mm2 + '.nc' reader0 = reader_ROMS_native_MOANA.Reader(path0) reader1 = reader_ROMS_native_MOANA.Reader(path1) reader2 = reader_ROMS_native_MOANA.Reader(path2) reader0.multiprocessing_fail = True reader1.multiprocessing_fail = True reader2.multiprocessing_fail = True ############################### #Create Simulation Object ############################### o = BivalveLarvae(loglevel=0) o.add_reader([reader0, reader1, reader2]) ############################### #Seed Particles ############################### ullon = args.upperleftlon ullat = args.upperleftlat lons = [ullon, ullon+.05, ullon+.05, ullon] lats = [ullat, ullat, ullat-.05, ullat-.05] def create_seed_times(start, end, delta): """
import os import sys import time import numpy as np import matplotlib from datetime import datetime, timedelta from opendrift.readers import reader_ROMS_native_MOANA #I believe this is a custom reader that Simon Weppe has written, I'm not sure if the basemodel's reader_ROMS_native can handle the backbone files? from opendrift.models.bivalvelarvae import BivalveLarvae #Bivalvelarvae.py is a custom module that Simon Weppe has written that includes some useful features, but you can replace this with whichever model you want to run #e.g. #from opendrift.models.pelagicegg import PelagicEggDrift ############################## #CREATING THE SIMLATION OBJECT ############################## o = BivalveLarvae( loglevel=0 ) #loglevel = 0 will print out what the model is doing at every step, so helpful when getting started, but creates huge output files. When you are running larger quantities of runs, you'll want to change to loglevel = 30 #provide paths to the data for the months you want data_path0 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201606.nc' data_path1 = '/nesi/nobackup/mocean02574/NZB_N50/nz5km_his_201607.nc' #create readers for the backbone files reader0 = reader_ROMS_native_MOANA.Reader(data_path0) reader1 = reader_ROMS_native_MOANA.Reader(data_path1) reader0.multiprocessing_fail = True #No idea what these lines do, but Simon told me that they make the model ruun faster so I've always included them reader1.multiprocessing_fail = True #add readers to the simulation o.add_reader([reader0, reader1])