Advanced Tutorial

From krc
Jump to: navigation, search

Contents

Parameter Dependent Variables

The Heat Transfer between surfaces and the atmosphere has been proving to depend on the temperature of the materials on the surface.

See Section 3.2.1 of Kieffer (2013) (Online Article) or Download PDF

Seasonal Dependant Parameters

Albedo and dust opacity (ALBEDO and TAUD) have the capability of being input as a 2 x n array, where n is the number of seasons desired. The first column contains all seasonal indicators desired. The second column contains all the values of albedo or dust opacity that correspond to seasonal indicator. The season corresponding to a particular albedo or dust opacity must be in the same row as the albedo or dust value. These will be input by KRC together. You can use as many values for albedo or dust opacity as desired.

Start davinci as normal and then create an array with the command cat2(). To learn more, visit cat2() from the DavinciWiki.

>davinci
dv>

Set this command equal to a variable to input into KRC later.

Keep in mind:
  • All data type values within cat2() must match. Therefore, even if you are using integers with floating point values, you must add decimal points (even just zeros) to your integer values.
  • // (double forward slash) is used in cat2() to separate columns within a row.
  • , (comma) is used in cat2() to move to a new row.
dv> albedoArray = cat2(45.00//.23,90.00//.25,135.00//.24,180.00//.25,225.00//.24,270.00//.23,315.00//.23)
2x7x1 array of float, bsq format [56 bytes]
45.00000000    0.2300000042   
90.00000000    0.2500000000   
135.0000000    0.2399999946   
180.0000000    0.2500000000   
225.0000000    0.2399999946   
270.0000000    0.2300000042   
315.0000000    0.2300000042    

The same can be done with dust opacity. Once the array is created, use this variable in place of any single value you might normally input for ALBEDO or TAUD.

dv>krc(lat=12,ALBEDO=albedoArray)


Temperature Dependent Parameters

It has been proved that conductivity and specific heat are affected by temperature.

The parameter LofkT determines whether or not these temperature-dependent parameters will be used in the calculations.

Set LofkT = "T" to use temperature-dependent parameters.

When LofkT = "T", KRC requires the conductivity temperature-dependent coefficients (ConUp0, ConUp1, ConUp2, and ConUp3 and ConLo0, ConLo1, ConLo2, and ConLo3) and specific heat temperature-dependent coefficients (SphUp0, SphUp1, SphUp2, and SphUp3 and SphLo0, SphLo1, SphLo2 and SphLo3) that define the third order temperature-dependence relationship of conductivity and specific heat (see Temperature-Dependent Parameters).


Davinci has the built-in function materials_krc() which automatically calculates these coefficients for the user.

However, these coefficients can also be manually calculated using the materials_krc() function.

Start davinci as normal, and type the materials_krc() command to bring up a menu of input/output for the command.

>davinci
dv>

dv> materials_krc()

Calculates the coefficients for T-dependent specific heat, conductivity, and Density
Also returns the standard K/rho/Cp for those materials
Returns a structure with various coefficients

$1 = Define the material thermal inertia

$2 = "basalt" or "H2O" or "CO2", material physical properties (Default="basalt")
Options:
    porosity = set the material porosity, 0.-1. (Default=0.4 if below I=315,
        otherwise overwrites input porosity to vary from 0.4 @ I=315 to 0 @ I=2207 (bedrock))

    layer = specify the upper(Up)/lower(Lo) layer (Default="Up")
s.piqueux 4/29/13

To manually determine the coefficients, the first two arguments must be input. The porosity and layer are optional, but require porosity=value between 0 and 1 and layer="Up" or "Lo" (with the quotes).

dv>materials_krc(200,"basalt",porosity=.3,layer="Up")
struct, 4 elements
    req: struct, 11 elements
        INERTIA: 200   
        SphUp0: 554.3699951   
        SphUp1: 214.6999969   
        SphUp2: -37.52399826   
        SphUp3: 13.62800026   
        SPEC_HEAT: 595.5549927   
        DENSITY: 2065.000000   
        ConUp0: 0.03999998048   
        ConUp1: 0.01780755445   
        ConUp2: 0.007334869355   
        ConUp3: 0.001111081685   
    COND: 0.03252505884   
    compositon: "basalt"
    porosity: 0.3000000119   

These are the coefficients required when LofkT = "T", however, as previously stated, materials_krc() runs automatically, and Davinci does not require manul input of these coefficients, unless desired.

Other Bodies

KRC uses a coding system called PORB to model bodies in the Solar System other than Mars
For an in depth understanding of PORB see Planetary Orbit (PORB) General User’s Guide or the The KRC Planetary ORBit (PORB) System Advanced Design Guide

Planets

KRC can be applied to non-tidally locked, rocky Planets:

  • Mars
  • Earth
  • Venus

If a planet is modeled, the bodytype parameter does not need to be specified as a "planet".

Comets

List of available Comets

If a comet is used, bodytype must be specified as "comet". And PTOTAL must be set to 0 (to create a no atmosphere body).

Asteroids

List of available Asteroids

If an asteroid is used, bodytype must be specified as "minor". And PTOTAL must be set to 0 (to create a no atmosphere body).

Example (for comet and asteroid)

Start davinci as normal, then pick an asteroid or comet.

If asteroid, use bodytype="minor". If comet, use bodytype="comet"

>davinci
dv>

dv>krc(lat=5,bodytype="minor",body="Aaronson",PTOTAL=0)
Read TEXT file: 7 lines
./nfs/software/davinci_install/share/davinci//library/script_files/krc_support/ti_map2ppd_v4.vicar: VICAR bsq image: 720x360x1, 32 bits
./nfs/software/davinci_install/share/davinci//library/script_files/krc_support/albedo_2ppd.vicar: VICAR bsq image: 720x360x1, 32 bits
./nfs/software/davinci_install/share/davinci//library/script_files/krc_support/mola_2ppd.vicar: VICAR bsq image: 720x360x1, 32 bit

Running KRC model with:

Output:
    Every ~2.961 Ls (5.6508 JD) for 360 seasons starting at 0.10 Ls
    For 96 times per day, every 15 local minutes
    Running model WITH temperature prediction for speed

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

With Observation Parameters:
    LATITUDE:   5.00    LONGITUDE:   0.00
    ELEVATION: -1.328km^    SLOPE/AZIMUTH: 0.00/0.00deg
    ALBEDO: 0.203^        OPACITY: 0.000
    HOUR: All        LS: All

Upper Material:
    INERTIA: 51.00
    CONDUCTIVITY: 0.0025*
    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: 5.000000000   
    elev: -1.328349948   
    layer: struct, 8 elements
        thickness: 30x2x1 array of double, bsq format [480 bytes]
        center: 30x2x1 array of double, bsq format [480 bytes]
        top: 30x2x1 array of double, bsq format [480 bytes]
        center_mass: 30x1x1 array of double, bsq format [240 bytes]
        mass_burden: 30x1x1 array of double, bsq format [240 bytes]
        thermal_scales: 30x1x1 array of double, bsq format [240 bytes]
        tmax: 30x1x360 array of double, bsq format [86,400 bytes]
        tmin: 30x1x360 array of double, bsq format [86,400 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.2027450949   
    body: "Aaronson"


Multi-Material Surfaces

Davinci and KRC both use one material as the default. However, two materials may be specified.

The following parameters can all be used to help define a second material in Davinci:

Changing Material Thickness

KRC deals with thickness in terms of diurnal skin depth. However, Davinci has the capability to set the thickness of the entire top material in terms of meters.

This is useful if you want to keep the thickness of an upper material constant while changing the thermal inertia of both material freely.

Start davinci as normal, then include the parameter thick

>davinci
dv>

dv>krc(lat=12,thick=.01,Mat1="basalt",Por1=.3,Mat2="basalt",Por2=.7,DENS2=2200)
Found Default File: $DV_SCRIPT_FILES/krc_support/porb_defaults/Mars_Mars.porb.hdf
./nfs/software/davinci_install/share/davinci//library/script_files/krc_support/ti_map2ppd_v4.vicar: VICAR bsq image: 720x360x1, 32 bits
./nfs/software/davinci_install/share/davinci//library/script_files/krc_support/albedo_2ppd.vicar: VICAR bsq image: 720x360x1, 32 bits
./nfs/software/davinci_install/share/davinci//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 material properties changed at layer 7 and 384 daily model time steps
    and T-dependant material properties
    and an insulating bottom edge condition

With Observation Parameters:
    LATITUDE:  12.00    LONGITUDE:   0.00
    ELEVATION: -1.478km^    SLOPE/AZIMUTH: 0.00/0.00deg
    ALBEDO: 0.236^        OPACITY: 0.300
    HOUR: All        LS: All

Upper Material:            Lower Material:
    INERTIA: 52.00        INERTIA2: 81.98*
    CONDUCTIVITY: 0.0022*    CONDUCTIVITY: 0.0051
    DENSITY: 2065.00*    DENSITY: 2200.00*
    SPECIFIC HEAT: 595.55    SPECIFIC HEAT: 595.55
    POROSITY: 0.30        POROSITY: 0.70


* = 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: 12.00000000   
    elev: -1.477849960   
    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.2363921404   
    body: "Mars"

Notice how the number of layers (i.e. N1) as well as the layer at which the material properties changed (i.e. IC), and the number of daily time steps, or calculations, (i.e. N2) are all automaticaly set.

This is because, when thick is given a value, the function evalN1_krc() is called, and davinci calculates values for all the preceding parameters in order to establish model stability based on the value used for thick.

Keep in mind:
  • thick is the thickness of the entire first material, regardless of how many layers the first material covers.
  • thick is only used in Davinci and not KRC.

Multi-Layer Surfaces

It is important at this point to understand the distinction between layers and materials.

  • Layers:
  • KRC is designed to function as a multi-layered model. KRC increases the number of layers and geometrically increases layer thickness to create model stability.
  • Materials:
  • KRC is not required to use multiple materials. However, KRC has been developed to incorporate more than one layer (i.e. to study layer of dust with one set of surface properties on top of bedrock with a different set of surface properties).

Changing Layer Thickness

KRC will always create a multi-layered surface, with geometrically increasing thickness based on certain parameters:

KRC handles layer thickness in terms of skin depth. Skin depth is the depth at which thermal energy does not penetrate into the surface. There are two types of skin depth; Seasonal Skin Depth (SSD) and Diurnal Skin Depth (DSD). The former defines the depth at which the temperature attenuates by 1/e over the course of an entire season, and the latter refers to the course of a single day.

KRC varies the thickness of layers by geometrically scaling the top layer. The thickness of top layer in terms of diurnal skin depths is set by FLAY . The scale factor is set by RLAY. The scale factor is multiplied by the thickness of the top layer (FLAY*RLAY) to determine the layer thicknesses.

Keep in mind:
  • If RLAY = 1, all layers are the same thickness
  • If 0 < RLAY < 1, the layers will become geometrically thinner

Understanding Model Stability and Convergence

Model stability is a feature of modeling used to ensure the values generated by KRC are physically possible as well as accurate. The model stability is based on certain convergence factors of KRC. The convergence factors use temperature to determine model stability. As thermal energy reaches the surface of Mars the heat that is able to penetrate into the surface begins to diminish. This is known as Heat Diffusivity. It is governed by the Heat Flow Equation which depends on conductivity, specific heat, density, time and depth. As depth and time increase the diffusion of heat increases. Therefore, less heat will penetrate into deep layers of the surface. The diurnal temperature of a layer is assumed to have a range of variability. This variability decreases with depth and time. Therefore, at a certain depth the diurnal temperature variation of a certain layer is 0. If the temperature of a layer is determined to be constant over more than one day, or very small, the model is considered to be stable.

i.e. When the daily temperature changes in a layer is 0, that layer is assumed to be the bottom-most layer. The model stops adding layers and the model is said to have converged and become stable.

There are other factors used in convergence and model stability. See Kieffer (2013) (Online Article) or Download PDF for more.

Including Frost

Linked Runs

Jumped Perturbations

Atmospheric Parameters

Several of KRC's default atmospheric parameters might not be optimized for most users:

TAURAT: Ratio of thermal to visible opacity of dust
DUSTA: Single scattering albedo of dust
ARC2: Henyey-Greenstein asymmetry factor


KRC assumes broadband atmospheric opacities, but the default values are given a specific wavelengths.

1. VIS/9μm dust opacity ratio is ~2:1 (M. Smith personal communication);

2. 9μm to broadband TIR ratio is 2.5:1 (ratio of maximum and average values of the dust opacity spectrum from Bandfield and Smith, [2003], Figure 3);

Figure 3 from Bandfield and Smith (2003)

Then:

 TAURAT ≈ 0.22 (J. Bandfield personnal communication).

Values for DUSTA and ARC2 go together, and should not be changed without the other (see the table below). To stick with J. Bandfield’s values, a user can work with:

 DUSTA = 0.90
 ARC2 = 0.50

Other values are acceptable, except for “KRC Default” (see Table below)

Atm parameters.png

__________________________________

References

Bandfield, J. L., and M. D. Smith (2003), Multiple emission angle surface-atmosphere separations of Thermal Emission Spectrometer data, Icarus, 161, 47-65.

Kieffer, H. H. (2013), Thermal model for analysis of Mars infrared mapping, Journal of Geophysical Research: Planets, 118(3), 451-470.

Shaw, A., M. J. Wolff, F. P. Seelos, S. M. Wiseman, and S. Cull (2013), Surface scattering properties at the Opportunity Mars rover's traverse region measured by CRISM, Journal of Geophysical Research-Planets, 118(8), 1699-1717, doi:10.1002/jgre.20119.

Adequately Scale Dust Opacity

First, a few definitions (From Helplist or communicated by HHK):

PTOTAL:
Global annual mean surface pressure at 0 elev., Pascal[=.01mb];
If KPREF=2, global average of atmosphere plus cap system.

PTOTAL depends on the scale height you consider.

PTOTAL = 640Pa, 658Pa, 672Pa, 683Pa, 692Pa, 700Pa for scale heights H=7-8-9-10-11-12 km respectively. In reality, H oscillates over the course of a year.

KPREF:
Mean global pressure control.
0 = constant
1 = follows Viking Lander curve
2 = reduced by global frost, but then N4 must be >8, and latitudes must be monotonic increasing and must include both polar regions (no warning for your failure).
TAUD:
Opacity due to dust over solar wavelengths (weighted by solar spectral flux) for a column with pressure of PTOTAL at zero elevation.
It is used in code:  tlats8.f line 193, then 213. It can be over-ridden by using a climate file, in which case solar tau  at PTOTAL is IR_opacity  (from the file) / TAURAT
  • If your dust opacity TAU is given for a pressure = PTOTAL (usually the case for TES/THEMIS), you do not have to scale for a different pressure.

For example, in Smith 2003, Figure 5:

Figure 5 from Smith (2004)

Caption:Fig. 5. An overview of TES daytime (local time ∼ 1400) aerosol optical depth and water vapor abundance. 
Shown is the zonal average of each quantity a function of latitude and  season (Ls ).
(Top) Dust optical depth at 1075 cm-1 scaled to an equivalent 6.1 mbar pressure surface (to remove the effect of topography).
(Middle) Water ice optical depth at  825 cm-1.
(Bottom) Water vapor column abundance in precipitable microns (pr-μm).
The largest data gaps were caused by solar conjunction and various times when the MGS  spacecraft went into contingency (safing) mode.

In other words, if you are using a dust opacity scaled to a specific pressure = PTOTAL, no topographic correction is needed.

  • If your dust opacity value is NOT given for a pressure of PTOTAL (usually the case for rovers and landers), you must first scale it to PTOTAL.
  1. 1 Calculate the local pressure P(z):

Pressure z.png

P0 is the reference pressure, also called PZREF. In theory, this is not PTOTAL, because the reference pressure too oscillates with Ls.

z is the elevation where the opacity measurement is made (VL1=-3.63,VL2=-4.50km, MPF=-3.68km,Spirit=-1.94km,Opportunity=-1.39km,MSL=-4.5km,InSight=-2.7km).

Z0 is the reference elevation for PTOTAL, so typically 0km.

H is the scale height in km.

  1. 2 Adjust the local dust opacity

The Opacity TAU at PTOTAL can then be derived using the following relation (M. Smith):

TAU z.png

Note that if an opacity vs. Ls is provided, TAU is the visible opacity at a pressure of PTOTAL.

  1. 3 Adjust for wavelength

Dust opacities are given at different wavelengths in the literature. KRC works with opacity values at solar wavelengths. Use the table below to convert published opacity values to the best estimate for the visible wavelength opacity

Opacity Table.png


Smith, M. D. (2004), Interannual variability in TES atmospheric observations of Mars during 1999-2003, Icarus, 167, 148-165.

Personal tools