Python(パイソン) ,ソースプログラムリスト あり ,[指定された曲線を、指定された値で、近似的に等分割し、その結果を画面上に表示する] 処理の , [パラメーター値・保持用・サブグループ]

Python(パイソン) ,ソースプログラムリスト あり ,プログラム作ってみた ,[指定された曲線を、指定された値で、近似的に等分割し、その結果を画面上に表示する] を 行う へ

-----

2024.8.17 presented in [note] ( //note.com/runningWater/ )
2024.8.24 rewritten

----------
1 はじめに

これ以降に記述されている内容は、このようなコンピューター・プログラムを制作した、というような事を、ただ、述べているに過ぎない。

以下の記述を読んだ人が、それを単に参考にする、というのであれば、問題は無いと、思われる。

しかし、記述されている内容に沿って、その人が、そこに記されているのと同様の制作や作業を行った際に、その制作、作業、コンピューターの作動の結果、使用されたコンピューター等、様々な方面において、何らかの問題が発生しない、という保証は、全くない。

その制作、作業、コンピューターの作動の結果、その人や、その人が所属している組織、その人が使用した様々な機器、インフラストラクチャー等の、身の上にどのような事が起ころうとも、私は一切、責任を負わない。

このプログラムは、Python(パイソン) 言語を使って、記述されている。

----------
2 パラメーター値・保持用・サブグループ

ここでは、プログラムの動作を規定する重要な値を、[パラメーター]と呼んでいる。

それらの値を、XMLデータで記述しておき、モジュール群が起動されると、それが読み込まれて、プログラム内部の変数に格納される、というような形にしてある。

このようにしておくと、後日、プログラムの改変を伴わないで、パラメーター値の変更を行うことができる。(XMLデータ上の値を修正するだけですむ)。

パラメーター値を定義した、XMLデータは、下記の通り。

ファイル名 [XML_For_Parameters.xml]

<?xml version="1.0" encoding="UTF-8" ?>

<value_for_parameters_controling_process>

    <value_for_parameters
        
        abs_path_of_base_directory = "E:ForPython/ForTest/Test_1/"
        path_of_output_directory = "Output/"
        path_of_CopyOfDisplayingImageData_directory = "CopyOfDisplayImageData/"
        file_name_part_1_of_CopyOfDisplayingImageData = "Copy_"
        file_name_ending_part_of_CopyOfDisplayingImageData = ".png"
        
         insert_date_and_time_Y_N = "Y"
         x_insert_date_and_timee = "50"
         y_insert_date_and_timee = "120"
         text_font_color_Blue = "60"
         text_font_color_Green = "20"
         text_font_color_Red = "200"
         
         path_of_input_directory = "Input/"
         path_of_BaseImageDataForDisplay_directory = "BaseImageDataForDisplay/"
         file_name_part_1_of_BaseImageDataForDisplay = "BaseImage_1"
         file_name_ending_part_of_BaseImageDataForDisplay = ".png"       
             
    >

    </value_for_parameters>

</value_for_parameters_controling_process>

----------

上記のXMLデータを読み込み、その値を保持するモジュールの内容は、下記のとおりである。

このモジュールの中から、下記に記述したモジュールへの呼び出しが、行われる。

Python(パイソン) ,ソースプログラムリスト あり ,プログラム作ってみた ,[XML データ を、読み込み、そこに記述されている内容を、利用可能な形にする] を 行う

----------
ファイル名 [ParametersContainer.py]

----------

#------------------------------------
# ParametersContainer
#------------------------------------

import  XMLHandling

MODULE_NAME = "ParametersContainer"

ABS_PATH_OF_XML_FILE = "E:ForPython/ForTest/Test_1/XMLData/XML_For_Parameters.xml"

global_list_of_XML_attribute = [   \
           "abs_path_of_base_directory"
         , "path_of_output_directory"
         , "path_of_CopyOfDisplayingImageData_directory"
         , "file_name_part_1_of_CopyOfDisplayingImageData"
         , "file_name_ending_part_of_CopyOfDisplayingImageData"

         , "insert_date_and_time_Y_N"
         , "x_insert_date_and_timee"
         , "y_insert_date_and_timee"
         , "text_font_color_Blue"
         , "text_font_color_Green"
         , "text_font_color_Red"

         , "path_of_input_directory"
         , "path_of_BaseImageDataForDisplay_directory"
         , "file_name_part_1_of_BaseImageDataForDisplay"
         , "file_name_ending_part_of_BaseImageDataForDisplay"
                           ]

global_par_abs_path_of_base_directory = " "
global_par_path_of_output_directory  = " "
global_par_path_of_CopyOfDisplayingImageData_directory = " "
global_par_file_name_part_1_of_CopyOfDisplayingImageData = " "
global_par_file_name_ending_part_of_CopyOfDisplayingImageData = " "

global_par_insert_date_and_time_Y_N  = " "
global_par_x_insert_date_and_timee = " "
global_par_y_insert_date_and_timee = " "
global_par_text_font_color_Blue = 0
global_par_text_font_color_Green = 0
global_par_text_font_color_Red  = 0

global_par_path_of_input_directory = " "
global_par_path_of_BaseImageDataForDisplay_directory = " "
global_par_file_name_part_1_of_BaseImageDataForDisplay = " "
global_par_file_name_ending_part_of_BaseImageDataForDisplay = " "


def initialize ( ) :

    function_name = "initialize"

    print ( "==================================" )
    print ( "Enter into , Module = " + MODULE_NAME
                      + " , function = " + function_name )
    print ( "==================================" )

    ins_XMLHandling = XMLHandling.XMLHandling (
              MODULE_NAME  # arg_requester_module
            , function_name  # arg_requester_function
            , ABS_PATH_OF_XML_FILE  # arg_path_of_XML_File
            , global_list_of_XML_attribute
                              )
    ins_XMLHandling    \
        .load_XML_data (
                MODULE_NAME    # arg_requester_module
              , function_name  # arg_requester_function
                       )

         # ---------- global declaration -----------------
    global  global_par_abs_path_of_base_directory
    global  global_par_path_of_output_directory
    global  global_par_path_of_CopyOfDisplayingImageData_directory
    global  global_par_file_name_part_1_of_CopyOfDisplayingImageData
    global  global_par_file_name_ending_part_of_CopyOfDisplayingImageData
                 #------------------------------
    global  global_par_insert_date_and_time_Y_N
    global  global_par_x_insert_date_and_timee
    global  global_par_y_insert_date_and_timee
    global  global_par_text_font_color_Blue
    global  global_par_text_font_color_Green
    global  global_par_text_font_color_Red
                 #------------------------------
    global  global_par_path_of_input_directory
    global  global_par_path_of_BaseImageDataForDisplay_directory
    global  global_par_file_name_part_1_of_BaseImageDataForDisplay
    global  global_par_file_name_ending_part_of_BaseImageDataForDisplay

         # --------- set values from XML -----------------
    global_par_abs_path_of_base_directory \
        = set_value_from_XML ( 1 , ins_XMLHandling )
    global_par_path_of_output_directory  \
         = set_value_from_XML ( 2 , ins_XMLHandling )
    global_par_path_of_CopyOfDisplayingImageData_directory \
                   = set_value_from_XML ( 3 , ins_XMLHandling )
    global_par_file_name_part_1_of_CopyOfDisplayingImageData \
                   = set_value_from_XML ( 4 , ins_XMLHandling )
    global_par_file_name_ending_part_of_CopyOfDisplayingImageData  \
                   = set_value_from_XML ( 5 , ins_XMLHandling )
                 #------------------------------
    global_par_insert_date_and_time_Y_N  \
          = set_value_from_XML ( 6 , ins_XMLHandling )
    global_par_x_insert_date_and_timee \
          = set_value_from_XML ( 7 , ins_XMLHandling )
    global_par_y_insert_date_and_timee \
          = set_value_from_XML ( 8 , ins_XMLHandling )
    global_par_text_font_color_Blue \
          = set_value_from_XML ( 9 , ins_XMLHandling )
    global_par_text_font_color_Green \
          = set_value_from_XML ( 10 , ins_XMLHandling )
    global_par_text_font_color_Red  \
          = set_value_from_XML ( 11 , ins_XMLHandling )
                 #------------------------------
    global_par_path_of_input_directory  \
          = set_value_from_XML ( 12 , ins_XMLHandling )
    global_par_path_of_BaseImageDataForDisplay_directory  \
          = set_value_from_XML ( 13 , ins_XMLHandling )
    global_par_file_name_part_1_of_BaseImageDataForDisplay  \
          = set_value_from_XML ( 14 , ins_XMLHandling )
    global_par_file_name_ending_part_of_BaseImageDataForDisplay  \
          = set_value_from_XML ( 15 , ins_XMLHandling )

    print ( "==================================" )
    print ( "Exit from , Module = " + MODULE_NAME
                      + " , function = " + function_name )
    print ( "==================================" )

#--------------------------------------
def display_parameter_value ( ) :

    function_name = "display_parameter_value"

    print ( "==================================" )
    print ( "Enter into , Module = " + MODULE_NAME
                      + " , function = " + function_name )
    print ( "==================================" )

    print ( "global_par_abs_path_of_base_directory = " \
               + str ( global_par_abs_path_of_base_directory ) )
    print ( "global_par_path_of_output_directory = " \
               + str ( global_par_path_of_output_directory ) )
    print ( "global_par_path_of_CopyOfDisplayingImageData_directory = " \
               + str ( global_par_path_of_CopyOfDisplayingImageData_directory ) )
    print ( "global_par_file_name_part_1_of_CopyOfDisplayingImageData = " \
               + str ( global_par_file_name_part_1_of_CopyOfDisplayingImageData ) )
    print ( "global_par_file_name_ending_part_of_CopyOfDisplayingImageData = " \
               + str ( global_par_file_name_ending_part_of_CopyOfDisplayingImageData ) )

    print ( "global_par_insert_date_and_time_Y_N = " \
               + str ( global_par_insert_date_and_time_Y_N ) )
    print ( "global_par_x_insert_date_and_timee = " \
               + str ( global_par_x_insert_date_and_timee ) )
    print ( "global_par_y_insert_date_and_timee = " \
               + str ( global_par_y_insert_date_and_timee ) )
    print ( "global_par_text_font_color_Blue = " \
               + str ( global_par_text_font_color_Blue ) )
    print ( "global_par_text_font_color_Green = " \
               + str ( global_par_text_font_color_Green ) )
    print ( "global_par_text_font_color_Red = " \
               + str ( global_par_text_font_color_Red ) )
             #-------------------------------
    print ( "global_par_path_of_input_directory = " \
               + str ( global_par_path_of_input_directory ) )
    print ( "global_par_path_of_BaseImageDataForDisplay_directory = " \
               + str ( global_par_path_of_BaseImageDataForDisplay_directory ) )
    print ( "global_par_file_name_part_1_of_BaseImageDataForDisplay = " \
               + str ( global_par_file_name_part_1_of_BaseImageDataForDisplay ) )
    print ( "global_par_file_name_ending_part_of_BaseImageDataForDisplay = " \
               + str ( global_par_file_name_ending_part_of_BaseImageDataForDisplay ) )

      #------------------------------------------------
    print ( "==================================" )
    print ( "Exit from , Module = " + MODULE_NAME
                      + " , function = " + function_name )
    print ( "==================================" )

    return

  #--------------------------------
def set_value_from_XML (
              arg_order_number_in_attribute_list
            , arg_ins_XMLHandling
                        ) :

    function_name = "set_value_from_XML"

    return_value \
       = arg_ins_XMLHandling  \
            .get_value_of_XML_data (
                      MODULE_NAME
                    , function_name
                    , 1  # order_number_of_child_of_XML_data
                    , arg_order_number_in_attribute_list
                    , "Y"    # message_display
                                 )
    return return_value


-----
Python(パイソン) ,ソースプログラムリスト あり ,プログラム作ってみた ,[指定された曲線を、指定された値で、近似的に等分割し、その結果を画面上に表示する] を 行う へ

いいなと思ったら応援しよう!