Prev
Next
Index->
contents
reference
index
search
external
Up->
dismod_at
command
init_command
init_command.py
init_command.py
@(@\newcommand{\B}[1]{ {\bf #1} }
\newcommand{\R}[1]{ {\rm #1} }
\newcommand{\W}[1]{ \; #1 \; }@)@
This is dismod_at-20221105 documentation: Here is a link to its
current documentation
.
init Command: Example and Test
import sys
import os
import copy
# ---------------------------------------------------------------------------
# check execution is from distribution directory
example = 'example/get_started/init_command.py'
if sys. argv[ 0 ] != example or len ( sys. argv) != 1 :
usage = 'python3 ' + example + '\n'
usage += 'where python3 is the python 3 program on your system\n'
usage += 'and working directory is the dismod_at distribution directory\n'
sys. exit ( usage)
#
# import dismod_at
local_dir = os. getcwd () + '/python'
if ( os. path. isdir ( local_dir + '/dismod_at' ) ) :
sys. path. insert ( 0 , local_dir)
import dismod_at
#
# import get_started_db example
sys. path. append ( os. getcwd () + '/example/get_started' )
import get_started_db
#
# change into the build/example/get_started directory
if not os. path. exists ( 'build/example/get_started' ) :
os. makedirs ( 'build/example/get_started' )
os. chdir ( 'build/example/get_started' )
# ---------------------------------------------------------------------------
# create get_started.db
get_started_db. get_started_db ()
# -----------------------------------------------------------------------
program = '../../devel/dismod_at'
file_name = 'get_started.db'
dismod_at. system_command_prc ( [ program, file_name, 'init' ] )
# -----------------------------------------------------------------------
# connect to database
new = False
connection = dismod_at. create_connection ( file_name, new)
#
# check data_subset table
data_subset_table = dismod_at. get_table_dict ( connection, 'data_subset' );
assert len ( data_subset_table) == 1
assert data_subset_table[ 0 ][ 'data_id' ] == 0
# -----------------------------------------------------------------------
# check var table and determine prior_mean for each variable
var_table = dismod_at. get_table_dict ( connection, 'var' )
covariate_table = dismod_at. get_table_dict ( connection, 'covariate' )
smooth_table = dismod_at. get_table_dict ( connection, 'smooth' )
smooth_grid = dismod_at. get_table_dict ( connection, 'smooth_grid' )
prior_table = dismod_at. get_table_dict ( connection, 'prior' )
rate_table = dismod_at. get_table_dict ( connection, 'rate' )
assert len ( var_table) == 2
prior_mean = list ()
for row in var_table :
var_type = row[ 'var_type' ]
smooth_id = row[ 'smooth_id' ]
age_id = row[ 'age_id' ]
time_id = row[ 'time_id' ]
node_id = row[ 'node_id' ]
rate_id = row[ 'rate_id' ]
integrand_id = row[ 'integrand_id' ]
covariate_id = row[ 'covariate_id' ]
mulcov_id = row[ 'mulcov_id' ]
smooth_name = smooth_table[ smooth_id][ 'smooth_name' ]
rate_name = rate_table[ rate_id][ 'rate_name' ]
#
assert age_id == 0
assert time_id == 0
#
# determine prior_mean for this variable
prior_id = len ( prior_table )
for grid_row in smooth_grid :
if grid_row[ 'smooth_id' ] == smooth_id :
assert grid_row[ 'age_id' ] == age_id
assert grid_row[ 'time_id' ] == time_id
prior_id = grid_row[ 'value_prior_id' ]
assert prior_id < len ( prior_table )
prior_mean. append ( prior_table[ prior_id][ 'mean' ] )
#
if var_type == 'mulcov_rate_value' :
assert smooth_name == 'smooth_income_multiplier'
assert rate_name == 'omega'
assert mulcov_id == 0
#
covariate_name = covariate_table[ covariate_id][ 'covariate_name' ]
assert covariate_name == 'income'
#
assert node_id == None
assert integrand_id == None
elif var_type == 'rate' :
assert smooth_name == 'smooth_omega_parent'
assert rate_name == 'omega'
assert node_id == 0
#
assert covariate_id == None
assert integrand_id == None
assert mulcov_id == None
else :
assert False
# -----------------------------------------------------------------------
# check start_var and scale_var tables
start_var = dismod_at. get_table_dict ( connection, 'start_var' )
scale_var = dismod_at. get_table_dict ( connection, 'scale_var' )
for var_id in range ( len ( var_table) ) :
assert start_var[ var_id][ 'start_var_value' ] == prior_mean[ var_id]
assert scale_var[ var_id][ 'scale_var_value' ] == prior_mean[ var_id]
# -----------------------------------------------------------------------
print ( 'init_command: OK' )
Input File: example/get_started/init_command.py