Category:KRC Tutorial

From krc
Revision as of 12:09, 7 November 2016 by Sylvain (Talk | contribs)

Jump to: navigation, search

Starting the KRC function

To start the KRC function in davinci, simply run the krc() function:

% davinci
dv> krc()

When started in this manner, the krc function will provide some context and definitions for some of the most common inputs

Simple Runs for Mars

Now let's run KRC for a simple case on Mars to determine the surface temperature in Gale Crater (latitude = -4.5; longitude = 137.4)

dv> out=krc(lat=-4.5,lon=137.5)
Read TEXT file: 61 lines
Found Default File: $DV_SCRIPT_FILES/krc_support/porb_defaults/Mars_Mars.porb.hdf
./Applications/davinci.app/Contents/Resources/library/script_files/krc_support/ti_map2ppd_v4.vicar: VICAR bsq image: 720x360x1, 32 bits
./Applications/davinci.app/Contents/Resources/library/script_files/krc_support/albedo_2ppd.vicar: VICAR bsq image: 720x360x1, 32 bits
./Applications/davinci.app/Contents/Resources/library/script_files/krc_support/mola_2ppd.vicar: VICAR bsq image: 720x360x1, 32 bits

Running KRC model with:

Output:
	Every ~1.000 Ls (1.9083 JD) for 360 seasons starting at 0.10 Ls
	For 96 times per day, every 15 local minutes
	Running model WITH NO temperature prediction
	because DELJUL < 3.0779

For a Surface With:
	29 Layers with uniform material properties and 384 daily model time steps
	and T-dependant material properties
	and an insulating bottom edge condition

With Observation Parameters:
	LATITUDE:  -4.50	LONGITUDE: 137.50
	ELEVATION: -3.606km^	SLOPE/AZIMUTH: 0.00/0.00deg
	ALBEDO: 0.228^		OPACITY: 0.300
	HOUR: All		LS: All

Upper Material:
	INERTIA: 230.00
	CONDUCTIVITY: 0.0502*
	DENSITY: 1770.00*
	SPECIFIC HEAT: 595.55
	POROSITY: 0.40

* = derived value unless overwritten by user
^ = from TES 2ppd map unless overwritten by user
& = ajusted for max authorized value 

 
struct, 14 elements
   tsurf: 96x1x360 array of double, bsq format [276,480 bytes]
   tbol: 96x1x360 array of double, bsq format [276,480 bytes]
   tatm: 96x1x360 array of double, bsq format [276,480 bytes]
   down_ir: 96x1x360 array of double, bsq format [276,480 bytes]
   down_vis: 96x1x360 array of double, bsq format [276,480 bytes]
   time: 96x1x1 array of float, bsq format [384 bytes]
   ls: 1x1x360 array of double, bsq format [2,880 bytes]
   lat: -4.50000	
   elev: -3.60558	
   layer: struct, 8 elements
       thickness: 28x2x1 array of double, bsq format [448 bytes]
       center: 28x2x1 array of double, bsq format [448 bytes]
       top: 28x2x1 array of double, bsq format [448 bytes]
       center_mass: 28x1x1 array of double, bsq format [224 bytes]
       mass_burden: 28x1x1 array of double, bsq format [224 bytes]
       thermal_scales: 28x1x1 array of double, bsq format [224 bytes]
       tmax: 28x1x360 array of double, bsq format [80,640 bytes]
       tmin: 28x1x360 array of double, bsq format [80,640 bytes]
   anc: struct, 11 elements
       krccom: struct, 5 elements...
       JDate: 1x1x360 array of double, bsq format [2,880 bytes]
       ref_pressure: 1x1x360 array of double, bsq format [2,880 bytes]
       taud: 1x1x360 array of double, bsq format [2,880 bytes]
       total_frost: 1x1x360 array of double, bsq format [2,880 bytes]
       avg_heat_flow: 1x1x360 array of double, bsq format [2,880 bytes]
       frost_alb: 1x1x360 array of double, bsq format [2,880 bytes]
       frost: 1x1x360 array of double, bsq format [2,880 bytes]
       tatm_predict: 1x1x360 array of double, bsq format [2,880 bytes]
       delta_t_rms: 1x1x360 array of double, bsq format [2,880 bytes]
       converge_days: 1x1x360 array of double, bsq format [2,880 bytes]
   version: "v3.2.1"
   alb: 0.228235	
   body: "Mars"

The output is a structure containing various model parameters, as well a calculated quantities.

Surface temperatures are stored in .tsurf, local times in .time, and Ls in .ls Local times are stored in the x axis, depth in the y axis (not used yet), and season in the z axis.

So let's plot a diurnal temperature curve at Ls = 0.1 (first ls index):

dv> plot(out.tsurf[,1,1],xaxis=out.time)
dv>  

Figure 01.png

Let's plot a seasonal temperature curve at 0:25 (first time index):

dv> plot(out.tsurf[1,1,],xaxis=out.ls)
dv>

Figure 02.png

When provided with the coordinates of a specific location on Mars, the krc() function reads some contextual information from external maps:

- the elevation: ELEVATION: -3.606km

- the albedo: ALBEDO : 0.228

Of course, these parameters can be set by the user:

dv> out=krc(lat=-4.5,lon=137.5,ALBEDO=0.22,ELEV=-4.5)
dv> 

Frequently, you will want to work with a specific Ls

dv> out=krc(lat=-4.5,lon=137.5,ls=122.45)
dv>

More generally, any parameter listed in an input file can be used as an input; run krc() to see the list of variable names.

dv> out_1=krc(lat=-4.5,lon=137.5,ALBEDO=0.22,ELEV=-4.5,INERTIA=120.,SLOPE=12.,SLOAZI=45.,N24=36,SPEC_HEAT=600.,PTOTAL=610.)
dv> out_2=krc(lat=-4.5,DUSTA=0.91,ARC2=0.6,TAURAT=0.201)

Make sure to read the helplist to familiarize yourself with the definition and range of inputs.

More Advanced Functionalities

In this section, a few more advanced functionality are presented.

  • Time-Dependent Albedo

KRC can work with Ls dependent surface albedo values. The input format is a 2 column array, with Ls and albedo values along the y axis.

dv> ALBEDO_ARRAY
dv> 2x12x1 array of float, bsq format [96 bytes]
0.00000	0.230000	
30.0000	0.250000	
60.0000	0.270000	
90.0000	0.250000	
120.000	0.230000	
150.000	0.220000	
180.000	0.220000	
210.000	0.250000	
240.000	0.230000	
270.000	0.250000	
300.000	0.270000	
330.000	0.250000
 
dv> out_1=krc(lat=0.,INERTIA=45.,ALBEDO=ALBEDO_ARRAY,hour=4.5)
dv> out_2=krc(lat=0.,INERTIA=45.,ALBEDO=0.24,hour=4.5)
dv> plot(out_1.tsurf,"Variable Albedo",out_2.tsurf,"Fixed Albedo",Xaxis=out_1.ls)
dv>

Figure 04.png

  • Time-Dependent Opacity

dv> TAU_ARRAY

2x12x1 array of float, bsq format [96 bytes]
0.00000	0.310000	
30.0000	0.320000	
60.0000	0.400000	
90.0000	0.600000	
120.000	0.910000	
150.000	0.720000	
180.000	0.650000	
210.000	0.600000	
240.000	0.550000	
270.000	0.200000	
300.000	0.300000	
330.000	0.230000	
 
dv> out_1=krc(lat=0.,INERTIA=45.,TAUD=TAU_ARRAY,hour=4.5)
dv> out_2=krc(lat=0.,INERTIA=45.,TAUD=0.4,hour=4.5)
dv> plot(out_1.tsurf,"Variable Dust Opacity",out_2.tsurf,"Fixed Dust Opacity",Xaxis=out_1.ls)
dv>

Figure 03.png

  • Temperature-dependent Specific heat
  • Temperature-dependent Conductivity
  • Two layer Regolith

This category currently contains no pages or media.

Personal tools