tpreprocess.sh - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
(HTM) git clone git://src.adamsgaard.dk/pism
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
tpreprocess.sh (3693B)
---
1 #!/bin/bash
2
3 # Copyright (C) 2011-2014, 2017, 2019 the PISM authors
4
5 # downloads SeaRISE "1km Greenland data set" NetCDF file,
6 # adjusts metadata, saves under new name with fields needed
7 # for pism_regional.py
8
9 # depends on wget and NCO (ncrename, ncap, ncwa, ncks)
10
11 set -e # exit on error
12
13 # get file; see page http://websrv.cs.umt.edu/isis/index.php/1km_Greenland_data_set
14
15 DATAURL=http://websrv.cs.umt.edu/isis/images/a/ab/
16 DATANAME=Greenland1km.nc
17 DATASIZE=80Mb
18 echo "fetching $DATASIZE master file $DATANAME ... "
19 wget -nc ${DATAURL}${DATANAME}
20
21 WORKING=gr1km.nc
22 echo "creating PISM-readable file $WORKING from master ..."
23
24 # copies over preserving history and global attrs; drops climate data:
25 ncks -O -v x,y,mapping,bheatflx,topg,thk $DATANAME $WORKING
26
27 # remove time dimension
28 ncwa -O -a t $WORKING $WORKING
29
30 echo "adding lat and lon fields by using nc2cdo.py (which is in pism/util/)"
31 nc2cdo.py $WORKING
32
33 # create usurf, needed by regional-tools not pism
34 ncap2 -O -s 'usurf=thk+topg' $WORKING $WORKING
35 ncap2 -O -s 'where(usurf<0.0) usurf=0.0' $WORKING $WORKING
36 ncatted -a standard_name,usurf,d,, $WORKING # remove it
37 ncatted -O -a units,usurf,o,c,"m" $WORKING
38 ncatted -O -a long_name,usurf,o,c,"ice surface elevation" $WORKING
39
40 echo "copying geometry fields for boundary conditions in no_model area..."
41 # create fields thkstore and usrfstore so that pism is able to appropriately
42 # assign Dirichlet b.c. for surface gradient & driving stress
43 ncap2 -O -s "usurfstore=1.0*usurf" $WORKING $WORKING
44 ncatted -a standard_name,usurfstore,d,, $WORKING # remove it
45 ncatted -O -a units,usurfstore,a,c,"m" $WORKING
46 ncatted -O -a long_name,usurfstore,a,c,"stored ice surface elevation (for regional b.c.)" $WORKING
47 ncap2 -O -s "thkstore=1.0*thk" $WORKING $WORKING
48 ncatted -a standard_name,thkstore,d,, $WORKING # remove it
49 ncatted -O -a units,thkstore,a,c,"m" $WORKING
50 ncatted -O -a long_name,thkstore,a,c,"stored ice thickness (for regional b.c.)" $WORKING
51
52 echo "... done with cleaning file $WORKING"
53 echo
54
55
56 # get file containing surface mass balance and other data on 5km grid
57 # see page http://websrv.cs.umt.edu/isis/index.php/Present_Day_Greenland
58 DATAVERSION=1.1
59 DATAURL=http://websrv.cs.umt.edu/isis/images/a/a5/
60 DATANAME=Greenland_5km_v$DATAVERSION.nc
61 echo "fetching 5km SeaRISE data file which contains surface mass balance ... "
62 wget -nc ${DATAURL}${DATANAME}
63 CLIMATEFILE=g5km_climate.nc
64 echo "creating PISM-readable climate file $CLIMATEFILE from airtemp2m and smb in data file ..."
65 ncks -O -v mapping,smb,airtemp2m $DATANAME $CLIMATEFILE
66 ncrename -O -v airtemp2m,ice_surface_temp $CLIMATEFILE
67 ncatted -O -a units,ice_surface_temp,a,c,"Celsius" $CLIMATEFILE
68 # convert SMB from liquid water equivalent thickness per year to [kg m-2 year-1];
69 # assume water density of 1000.0 [kg m-3]
70 ncap2 -O -s "climatic_mass_balance=1000.0*smb" \
71 -s 'climatic_mass_balance@standard_name="land_ice_surface_specific_mass_balance_flux"' \
72 -s 'climatic_mass_balance@units="kg m-2 year-1"' \
73 $CLIMATEFILE $CLIMATEFILE
74 ncks -O -x -v smb $CLIMATEFILE $CLIMATEFILE
75 echo "... done"
76 echo
77
78
79 # get locally-generated or pre-computed PISM result
80 echo "checking for locally-generated, or fetching, pre-computed PISM whole ice-sheet result on 5km grid"
81 URL=https://www.pism-docs.org/download
82 WHOLE=g5km_gridseq.nc
83 wget -nc ${URL}/$WHOLE
84 BCFILE=g5km_bc.nc
85 echo "creating PISM-readable boundary conditions file $BCFILE from whole ice sheet result ..."
86 ncks -O -v u_ssa,v_ssa,bmelt,tillwat,enthalpy,litho_temp $WHOLE $BCFILE
87 # rename bmelt and u_ssa and v_ssa so that they are used as b.c.
88 ncrename -O -v bmelt,basal_melt_rate_grounded -v u_ssa,u_ssa_bc -v v_ssa,v_ssa_bc $BCFILE
89 echo "... done"
90 echo