microproduct/vegetationHeight-L-SAR/.ipynb_checkpoints/Untitled-checkpoint.ipynb

1039 lines
4.4 MiB
Plaintext
Raw Normal View History

2023-08-28 10:17:29 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4b6c6efa-4f55-4ebe-9b83-112dcc483c59",
"metadata": {},
"outputs": [],
"source": [
"from VegetationHeightPrePro import PreProcess as Pp # 此行放在下面会报错,最好放在上面\n",
"from tool.algorithm.xml.AlgXmlHandle import ManageAlgXML, CheckSource\n",
"# from AlgXmlHandle import ManageAlgXML, CheckSource # 导入xml文件读取与检查文件\n",
"from VegetationHeightAlg import PlantHeightAlg, ROIAlg # 此处的ROIAlg可以对多波段数据进行掩膜与tool文件中的ROIAlg不同\n",
"from VegetationHeightOrthoAlg import IndirectOrthorectification as Inor\n",
"from tool.algorithm.image.ImageHandle import ImageHandler\n",
"from tool.algorithm.algtools.logHandler import LogHandler\n",
"from AHVToPolSarPro import AHVToPolSarProS2\n",
"from tool.algorithm.xml.CreatMetafile import CreateMetafile\n",
"from VegetationHeightXmlInfo import CreateDict, CreateStadardXmlFile\n",
"from Orthorectification import fine_registration,Orthorectification_RD, header_file_read_angle\n",
"import numpy as np\n",
"import os\n",
"import shutil\n",
"import logging\n",
"import datetime\n",
"import sys\n",
"import tarfile\n",
"import glob\n",
"import gc\n",
"import math\n",
"import xmltodict, json"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "29533f48-c127-4818-b341-fa0a871bac46",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<bound method ABCPolyBase.fit of <class 'numpy.polynomial.hermite.Hermite'>>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.polynomial.hermite.Hermite.fit"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "956f5caf-e28b-4061-a77a-2ae98ab3c170",
"metadata": {},
"outputs": [],
"source": [
"import VegetationHeightMain "
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4c48ac26-92a4-4d48-9e9b-ba50f706708f",
"metadata": {},
"outputs": [],
"source": [
"# polsarpro\n",
"AHVToPolSarProS2 = AHVToPolSarProS2()\n",
"PlantHeightAlg = PlantHeightAlg()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "158be10e-5bab-417d-a00b-62ba9bc25df1",
"metadata": {},
"outputs": [],
"source": [
"workspace_preprocessed2_path=r\"D:\\forestHeight\\Result\\\\\" # 结果文件夹\n",
"workspace_master_slc_path=r\"D:\\forestHeight\\Input\\RS2_OK65154_PK597781_DK529688_FQ20_20151120_101331_HH_VV_HV_VH_SLC\\\\\"\n",
"workspace_slave_slc_path=r\"D:\\forestHeight\\Input\\RS2_OK65154_PK597782_DK529689_FQ20_20151214_101329_HH_VV_HV_VH_SLC\\\\\""
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0c110ba2-e081-4822-accb-a6a2220b04af",
"metadata": {},
"outputs": [],
"source": [
"master_s2 = workspace_preprocessed2_path + \"master_s2\"\"\\\\\"\n",
"os.makedirs(master_s2) \n",
"slave_s2 = workspace_preprocessed2_path + \"slave_s2\"\"\\\\\"\n",
"os.makedirs(slave_s2) "
]
},
{
"cell_type": "markdown",
"id": "2a2bd858-0fb0-4683-9c5c-f46f7f8d244c",
"metadata": {},
"source": [
"### 构建S2阵"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9743b24e-22dc-4dd3-a96c-b700d0d5528f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"slc->s2 finish \n"
]
}
],
"source": [
"\n",
"# 主影像->s2\n",
" # 输出文件夹\n",
"AHVToPolSarProS2.api_ahv_to_polsarpro_s2(master_s2, workspace_master_slc_path) # 全极化影像转S2矩阵\n",
"# 辅影像->s2\n",
"# 输出文件夹\n",
"AHVToPolSarProS2.api_ahv_to_polsarpro_s2(slave_s2, workspace_slave_slc_path) # 全极化影像转S2矩阵\n",
"\n",
"print(\"slc->s2 finish \")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6af4e49d-21fc-48ed-83fb-d3210db3deba",
"metadata": {},
"outputs": [],
"source": [
"from matplotlib import pyplot as plt\n",
"import numpy as np\n",
"image_1120=r\"D:\\forestHeight\\Result\\master_s2\\s11.bin\"\n",
"image_1210=r\"D:\\forestHeight\\Result\\slave_s2\\s11.bin\"\n",
"img_1120=np.fromfile(image_1120,dtype=np.complex64).reshape(6067,3716)[:6065,:]\n",
"img_1210=np.fromfile(image_1210,dtype=np.complex64).reshape(6065,3716)\n",
"img_1210.imag=-1*img_1210.imag\n",
"img_inver=img_1120*img_1210\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e8376768-973b-4160-9b47-c7133af26611",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "c780c2e6-9398-4880-9ee4-9176328c09ca",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 8,
"id": "78f30ac6-1490-4957-b192-9569a8da936a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'D:\\\\forestHeight\\\\Result\\\\\\\\master_s2\\\\'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"master_s2"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "5d5be16a-56c1-4687-8f7d-473356402bcc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'D:\\\\forestHeight\\\\Result\\\\\\\\slave_s2\\\\'"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"slave_s2"
]
},
{
"cell_type": "markdown",
"id": "8b00e200-2f02-4b92-888b-a4e8cbaeea63",
"metadata": {},
"source": [
"### 根据轨道估算 基线\n"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "7b924243-0779-4b95-bb4b-d6eb648e6779",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# 读取轨道节点生产flat kz\n",
"master_orbit_path=r\"D:\\forestHeight\\Input\\orbit\\oribit1120.xml\"\n",
"slave_orbit_path=r\"D:\\forestHeight\\Input\\orbit\\oribit1214.xml\"\n",
"with open(master_orbit_path) as f:\n",
" master_orbit_dict = xmltodict.parse(f.read())['orbitInformation']['stateVector']\n",
"with open(slave_orbit_path) as f:\n",
" slave_orbit_dict = xmltodict.parse(f.read())['orbitInformation']['stateVector']\n",
"GPSTime_Format=\"%Y-%m-%dT%H:%M:%S.%fZ\"\n",
"GPSNodeNames_list=['timeStamp', 'xPosition', 'yPosition', 'zPosition', 'xVelocity', 'yVelocity', 'zVelocity']\n",
"# master\n",
"master_orbits=[]\n",
"for GPSPoint in master_orbit_dict:\n",
" GPSPoint=[\n",
" datetime.datetime.strptime(GPSPoint[GPSNodeNames_list[0]],GPSTime_Format).timestamp(), # TimeStamp\n",
" float(GPSPoint[GPSNodeNames_list[1]]['#text']), # Xp\n",
" float(GPSPoint[GPSNodeNames_list[2]]['#text']), # Yp\n",
" float(GPSPoint[GPSNodeNames_list[3]]['#text']), # Zp\n",
" float(GPSPoint[GPSNodeNames_list[4]]['#text']), # Vx\n",
" float(GPSPoint[GPSNodeNames_list[5]]['#text']), # Vy\n",
" float(GPSPoint[GPSNodeNames_list[6]]['#text'])] # VZ \n",
" master_orbits.append(GPSPoint)\n",
"# slave\n",
"slave_orbits=[]\n",
"for GPSPoint in slave_orbit_dict:\n",
" GPSPoint=[\n",
" datetime.datetime.strptime(GPSPoint[GPSNodeNames_list[0]],GPSTime_Format).timestamp(), # TimeStamp\n",
" float(GPSPoint[GPSNodeNames_list[1]]['#text']), # Xp\n",
" float(GPSPoint[GPSNodeNames_list[2]]['#text']), # Yp\n",
" float(GPSPoint[GPSNodeNames_list[3]]['#text']), # Zp\n",
" float(GPSPoint[GPSNodeNames_list[4]]['#text']), # Vx\n",
" float(GPSPoint[GPSNodeNames_list[5]]['#text']), # Vy\n",
" float(GPSPoint[GPSNodeNames_list[6]]['#text'])] # VZ \n",
" slave_orbits.append(GPSPoint)\n",
"# 设置起始时间\n",
"master_start_time=min([p[0] for p in master_orbits])-1\n",
"slave_start_time=min([p[0] for p in slave_orbits])-1\n",
"for i in range(len(master_orbits)):\n",
" master_orbits[i][0]=master_orbits[i][0]-master_start_time\n",
"for i in range(len(slave_orbits)):\n",
" slave_orbits[i][0]=slave_orbits[i][0]-slave_start_time\n",
"master_orbits=np.array(master_orbits)\n",
"slave_orbits=np.array(slave_orbits)\n",
"# master\n",
"master_orbits_fit_dict={}\n",
"master_orbits_fit_dict['x']=np.polynomial.hermite.Hermite.fit(master_orbits[:,0],master_orbits[:,1],3)\n",
"master_orbits_fit_dict['y']=np.polynomial.hermite.Hermite.fit(master_orbits[:,0],master_orbits[:,2],3)\n",
"master_orbits_fit_dict['z']=np.polynomial.hermite.Hermite.fit(master_orbits[:,0],master_orbits[:,3],3)\n",
"master_orbits_fit_dict['vx']=np.polynomial.hermite.Hermite.fit(master_orbits[:,0],master_orbits[:,4],3)\n",
"master_orbits_fit_dict['vy']=np.polynomial.hermite.Hermite.fit(master_orbits[:,0],master_orbits[:,5],3)\n",
"master_orbits_fit_dict['vz']=np.polynomial.hermite.Hermite.fit(master_orbits[:,0],master_orbits[:,6],3)\n",
"master_orbits_fit=lambda t:[master_orbits_fit_dict['x'](t),\n",
" master_orbits_fit_dict['y'](t),\n",
" master_orbits_fit_dict['z'](t),\n",
" master_orbits_fit_dict['vx'](t),\n",
" master_orbits_fit_dict['vy'](t),\n",
" master_orbits_fit_dict['vz'](t)]\n",
"# slave\n",
"slave_orbits_fit_dict={}\n",
"slave_orbits_fit_dict['x']=np.polynomial.hermite.Hermite.fit(slave_orbits[:,0],slave_orbits[:,1],3)\n",
"slave_orbits_fit_dict['y']=np.polynomial.hermite.Hermite.fit(slave_orbits[:,0],slave_orbits[:,2],3)\n",
"slave_orbits_fit_dict['z']=np.polynomial.hermite.Hermite.fit(slave_orbits[:,0],slave_orbits[:,3],3)\n",
"slave_orbits_fit_dict['vx']=np.polynomial.hermite.Hermite.fit(slave_orbits[:,0],slave_orbits[:,4],3)\n",
"slave_orbits_fit_dict['vy']=np.polynomial.hermite.Hermite.fit(slave_orbits[:,0],slave_orbits[:,5],3)\n",
"slave_orbits_fit_dict['vz']=np.polynomial.hermite.Hermite.fit(slave_orbits[:,0],slave_orbits[:,6],3)\n",
"slave_orbits_fit=lambda t:[slave_orbits_fit_dict['x'](t),\n",
" slave_orbits_fit_dict['y'](t),\n",
" slave_orbits_fit_dict['z'](t),\n",
" slave_orbits_fit_dict['vx'](t),\n",
" slave_orbits_fit_dict['vy'](t),\n",
" slave_orbits_fit_dict['vz'](t)]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "04749813-2065-4670-b272-210b8d785427",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"master_image_time=[datetime.datetime.strptime(i,GPSTime_Format).timestamp() for i in [\"2015-11-20T10:13:32.217993Z\",\"2015-11-20T10:13:36.647123Z\"]]\n",
"slave_image_time=[datetime.datetime.strptime(i,GPSTime_Format).timestamp() for i in [\"2015-12-14T10:13:29.965473Z\",\"2015-12-14T10:13:34.393142Z\"]]\n",
"master_image_time=np.array(master_image_time)-master_start_time\n",
"slave_image_time=np.array(slave_image_time)-slave_start_time\n",
"\n",
"master_lines=6067\n",
"master_cols=3716\n",
"slave_lines=6065\n",
"slave_cols=3716\n",
"\n",
"# 成像时间\n",
"master_delta=(np.max(master_image_time)-np.min(master_image_time))/(master_lines-1)\n",
"slave_delta=(np.max(slave_image_time)-np.min(slave_image_time))/(slave_lines-1)\n",
"master_times=np.array(list(range(master_lines)))*master_delta+np.min(master_image_time)\n",
"slave_times=np.array(list(range(slave_lines)))*slave_delta+np.min(slave_image_time)\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "124b8590-50da-4569-9583-9f0566dc0d7b",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# 构建成像轨道节点\n",
"master_orbits=np.array(master_orbits_fit(master_times)).transpose(1,0)\n",
"slave_orbits=np.array(slave_orbits_fit(slave_times)).transpose(1,0)\n",
"# 成像中心点\n",
"master_center_orbits=np.array(master_orbits_fit(np.mean(master_times)))\n",
"slave_center_orbits=np.array(slave_orbits_fit(np.mean(slave_times)))\n",
"# 构建向量\n",
"B_orbits=slave_orbits-master_orbits\n",
"B=np.mean(B_orbits,axis=0)[:3] # 基线向量的平均值\n",
"B_=slave_center_orbits-master_center_orbits"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "0419c92e-0a1d-447b-935f-db31664f8ba7",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.14508778064805705 185.67240323284773 183.72158384683246 26.84438397640212\n"
]
}
],
"source": [
"# 求解水平角\n",
"alpha =math.pi/2-math.acos(np.dot(master_center_orbits[:3],B[:3])/(np.linalg.norm(master_center_orbits[:3])*np.linalg.norm(B[:3])))\n",
"B_h=np.linalg.norm(B[:3])*math.cos(alpha)\n",
"B_v=np.linalg.norm(B[:3])*math.sin(alpha)\n",
"print(alpha,np.linalg.norm(B[:3]),B_h,B_v)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "f7b6baa9-a33d-4b22-a069-218470fa499d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"88.79261563677431"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alpha*180/math.pi"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "4c2369ea-56ae-4a73-b2fe-954dbe68d700",
"metadata": {},
"outputs": [],
"source": [
"master_center_orbits\n",
"os.makedirs(r\"D:\\forestHeight\\Result\\flat_remove\")"
]
},
{
"cell_type": "markdown",
"id": "0d626586-122d-49fa-b25c-90e407ffd2e4",
"metadata": {},
"source": [
"### 估计地平和波数\n",
"PolSARproSim_FE_Kz out_dir Nlig Ncol dy (m) f0 (GHz) teta0 (deg) H0 (m) Bh (m) Bv (m)\n",
"Nlig 行数 Ncol 列数 dy 列分辨率(距离向分辨率) f0 频率 tata0 入射角 H0 卫星高度 Bh B_h Bv B_v\n",
"PolSARproSim_FE_Kz.exe D:\\forestHeight\\Result\\flat_remove 6764 5809 4.73307896 5.404999242769673 39.9528122 795449.5 102.36594559438615 -9.164148740434687"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "be2691ec-24f2-46b3-9e5b-59c06ca0958b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cmd=r\"cd D:\\forestHeight\\bin\\PolSARproSIM & PolSARproSim_FE_Kz.exe D:\\forestHeight\\Result\\flat_remove 6065 3716 4.73307896 5.404999242769673 39.97606655 796647.8125 183.72158384683246 26.84438397640212\"\n",
"os.system(cmd)"
]
},
{
"cell_type": "markdown",
"id": "8cc4d677-3d71-43c8-aa1e-00d4d20019ad",
"metadata": {
"tags": []
},
"source": [
"### 第二种估算地地平(不建议)\n",
"flat_earth_estimation.exe -ifm D:\\forestHeight\\Input\\RS2_OK31134_PK305834_DK273463_FQ20W_20120627_100751_HH_VV_HV_VH_SLC\\imagery_HH.tif -ifs D:\\forestHeight\\Input\\RS2_OK31594_PK309303_DK276153_FQ20W_20120907_100751_HH_VV_HV_VH_SLC\\imagery_HH.tif -od D:\\forestHeight\\Result\\flat_remove -nwr 5804 -nwc 6764 -nr 5804 -nc 6764 -fmt realdeg"
]
},
{
"cell_type": "markdown",
"id": "ff4f0fcf-7443-40d1-af23-4adeb08c3a63",
"metadata": {
"tags": []
},
"source": [
"### 去地平组件\n",
"flat_earth_removal_Slave.exe\n",
"\n",
"Parameters:\n",
" (string) -ids input slave directory\n",
" (string) -ods output slave directory\n",
" (string) -fe input flat Earth file\n",
" (string) -fmt output format (cmplx / realdeg / realrad)\n",
" (int) -cf conjugate flag (1/0)\n",
" (int) -ieee ieee flag (1/0)\n",
" (string) -idf input data format (SPP, S2)\n",
"\n",
"Optional Parameters:\n",
" (noarg) -help displays this message"
]
},
{
"cell_type": "markdown",
"id": "d7a8c023-804e-466a-9886-2eb1e37bd1d1",
"metadata": {
"tags": []
},
"source": [
"### 舍弃\n",
"flat_earth_removal_MasterSlave.exe -idm D:\\forestHeight\\Result\\master_s2\\ -ids D:\\forestHeight\\Result\\slave_s2\\ -odm D:\\forestHeight\\Result\\master_flat_remove\\ -ods D:\\forestHeight\\Result\\slave_flat_remove\\ -fe D:\\forestHeight\\Result\\flat_remove\\flat_earth_fft.bin -fmt realdeg -cf 1 -ieee 0 -idf S2"
]
},
{
"cell_type": "markdown",
"id": "d5098492-74e7-49aa-aa2c-8672cf538394",
"metadata": {},
"source": [
"### 主影像去地平代码\n",
"主影像去地平<br>\n",
"flat_earth_removal_Slave.exe -ids D:\\forestHeight\\Result\\master_s2 -ods D:\\forestHeight\\Result\\master_fer -fe D:\\forestHeight\\Result\\flat_remove\\flat_earth.bin -fmt realrad -cf 0 -ieee 0 -idf S2"
]
},
{
"cell_type": "markdown",
"id": "c7837bc4-ccfb-4b3f-891a-52411e6c6bf2",
"metadata": {},
"source": [
"### 辅助影像去地平\n",
"辅影响去地平<br>\n",
"flat_earth_removal_Slave.exe -ids D:\\forestHeight\\Result\\slave_s2 -ods D:\\forestHeight\\Result\\slave_fer -fe D:\\forestHeight\\Result\\flat_remove\\flat_earth.bin -fmt realrad -cf 1 -ieee 0 -idf S2"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1d7ea718-090e-4da4-a84f-7a9fd19721dd",
"metadata": {},
"outputs": [],
"source": [
"current_path = os.getcwd()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "9e55f5f2-82a9-48dd-9931-4961a38cc0f0",
"metadata": {},
"outputs": [],
"source": [
"master_fer = workspace_preprocessed2_path + \"master_fer\"\"\\\\\"\n",
"slave_fer = workspace_preprocessed2_path + \"slave_fer\"\"\\\\\""
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "dcdc7c54-367c-4541-a3dd-6bfb7060d813",
"metadata": {},
"outputs": [],
"source": [
"os.makedirs(master_fer)\n",
"os.makedirs(slave_fer)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "c69b6f52-4fd1-4004-bb6c-b920fae5a8aa",
"metadata": {},
"outputs": [],
"source": [
"master_fer = master_s2\n",
"master_slave_t6 = workspace_preprocessed2_path + \"master_slave_t6\"\"\\\\\""
]
},
{
"cell_type": "markdown",
"id": "f42afcc3-d2ef-4444-bf1f-f8327979ef2c",
"metadata": {},
"source": [
"### S2 转 T6"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "4016a0d7-df81-44ac-9be1-63d4242c0363",
"metadata": {},
"outputs": [],
"source": [
"# S2 转 T6 \n",
"current_path=r\"D:\\forestHeight\\vegetationHeight-L-SAR-V1.0-源码\\vegetationHeight-L-SAR-V1.0\"\n",
"# 3、s2+s2->t6\n",
"data_convert_s2_t6_path = os.path.join(current_path, \"data_convert_MLK_S2_T6.exe\")\n",
"master_slave_t6 = workspace_preprocessed2_path + \"master_slave_t6\"\"\\\\\"\n",
"os.makedirs(master_slave_t6)\n",
"PlantHeightAlg.s2_to_t6(master_fer, slave_fer, data_convert_s2_t6_path, master_slave_t6)"
]
},
{
"cell_type": "markdown",
"id": "2fa57ef6-ad8f-4fef-ac89-686ff0d135f6",
"metadata": {},
"source": [
"### 窗口滤波"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "d45f4c7b-af69-4487-99b7-91209345d1b5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"D:\\forestHeight\\vegetationHeight-L-SAR-V1.0-源码\\vegetationHeight-L-SAR-V1.0\\boxcar_filter_T6.exe D:\\forestHeight\\Result\\\\master_slave_t6\\ D:\\forestHeight\\Result\\\\master_slave_t6_box\\ 1 5 0 0 6067 3716\n"
]
}
],
"source": [
"# 4、T6->boxcar_filter->T6 \n",
"boxcar_filter_tool_path = os.path.join(current_path, \"boxcar_filter_T6.exe\")\n",
"# boxcar_filter_tool_path = os.path.join(current_path, \"lee_refined_filter_T6.exe\")\n",
"master_slave_t6_box = workspace_preprocessed2_path + \"master_slave_t6_box\"\"\\\\\"\n",
"#os.makedirs(master_slave_t6_box)\n",
"PlantHeightAlg.polsar_boxcar_filter(master_slave_t6_box, boxcar_filter_tool_path,\n",
" master_slave_t6, *(1, 5, 0, 0))"
]
},
{
"cell_type": "markdown",
"id": "ebab4c64-ce83-4d4f-b2d0-bdc326f2bc5b",
"metadata": {},
"source": [
"### 极化分解"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "a534e53a-9539-4593-b883-4741a029b23a",
"metadata": {},
"outputs": [],
"source": [
"#master_slave_t6_box=master_slave_t6\n",
"master_slave_t6_box_coh=workspace_preprocessed2_path + \"master_slave_t6_box_coh1\"\"\\\\\"\n",
"os.makedirs(master_slave_t6_box_coh)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "94089784-c3d8-4ca8-8bef-5f14ae6f9541",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# 5、 T6->coherence_estimation->T6 \n",
"coherence_estimation_path = os.path.join(current_path, \"complex_coherence_estimation_T6.exe\")\n",
"#coherence_opt_estimation_path = os.path.join(current_path, \"complex_coherence_opt_estimation_T6.exe\")\n",
"#master_slave_t6_box_coh = master_slave_t6_box\n",
"PlantHeightAlg.complex_coherence_estimation_T6(master_slave_t6_box,\n",
" coherence_estimation_path,\n",
" master_slave_t6_box_coh, * (7, 7, 7, 7))"
]
},
{
"cell_type": "markdown",
"id": "cbf4d0e3-1199-454b-b4a6-0952d9854421",
"metadata": {},
"source": [
"\n",
"### 极化分解 调用指令\n",
"complex_coherence_estimation.exe\n",
"Parameters:\n",
" if iodf = S2T6\n",
" (string) -idm input master directory\n",
" (string) -ids input slave directory\n",
" if iodf = T6\n",
" (string) -id input master-slave directory\n",
" (string) -od output directory\n",
" (string) -iodf input-output data format\n",
" (string) -type coherence type : HH, HV, VV, HHpVV, HHmVV, HVpVH, LL, LR, RR, HHVV\n",
" (int) -nwr Nwin Row\n",
" (int) -nwc Nwin Col\n",
" (int) -ofr Offset Row\n",
" (int) -ofc Offset Col\n",
" (int) -fnr Final Number of Row\n",
" (int) -fnc Final Number of Col\n",
"\n",
"Optional Parameters:\n",
" (string) -mask mask file (valid pixels)\n",
" (string) -errf memory error file\n",
" (noarg) -help displays this message\n",
" (noarg) -data displays the help concerning Data Format parameter\n",
"\n",
"\n",
"complex_coherence_opt_estimation.exe\n",
"\n",
"Parameters:\n",
" if iodf = S2T6\n",
" (string) -idm input master directory\n",
" (string) -ids input slave directory\n",
" if iodf = T6\n",
" (string) -id input master-slave directory\n",
" (string) -od output directory\n",
" (string) -iodf input-output data format\n",
" (int) -nwr Nwin Row\n",
" (int) -nwc Nwin Col\n",
" (int) -ofr Offset Row\n",
" (int) -ofc Offset Col\n",
" (int) -fnr Final Number of Row\n",
" (int) -fnc Final Number of Col\n",
"\n",
"Optional Parameters:\n",
" (string) -mask mask file (valid pixels)\n",
" (string) -errf memory error file\n",
" (noarg) -help displays this message\n",
" (noarg) -data displays the help concerning Data Format parameter\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type HHmVV -nwr 5 -nwc 5 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type HH -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type VV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type HV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type HHpVV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type HVpVH -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type LL -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type LR -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type RR -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type HHVV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"complex_coherence_opt_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box -od D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -iodf T6 -type RR -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 6065 -fnc 3716\n",
"\n",
"\n",
"### 植被高度估算\n",
"forest_height_estimation.exe\n",
"Parameters:\n",
" (string) -id input directory\n",
" (string) -od output directory\n",
" (string) -kz input kz file\n",
" (int) -avg coherence average flag (1/0)\n",
" (int) -nr Number of Row\n",
" (int) -nc Number of Col\n",
"\n",
"forest_height_estimation.exe -id D:\\forestHeight\\Result\\master_slave_t6_box_coh1 -od D:\\forestHeight\\Result\\master_slave_t6_box_coh_rvog -kz D:\\forestHeight\\Result\\flat_remove\\kz.bin -avg 0 -nr 6764 -nc 5809"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "c6298e9d-c6f4-49db-a641-8b6d1eac898d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdf1zW5d3//3ujYGIkhYNJo/DCyaIonCwWXZSmi7I0LcuyNG02S83SNNNK036YaVqWpsWiNF0sStNpozBNFo0+OCmKhcmkuMLBJYWROJjs/P7B6fm9uvarWr8ux+N2O2/Km/f5Pl7v4zw5jvdxvF6v5+uwQCAQ0EEHHXTQQQefgm993QZ00EEHHXTwf4eOSaODDjrooINPTcek0UEHHXTQwaemY9LooIMOOujgU9MxaXTQQQcddPCp6Zg0Ouiggw46+NR0TBoddNBBBx18ag7/ug3ooIMOOvg6+NOf/qS1tfVLbSM8PNy3v/3tL7WNr5qOSaODDjr4t+NPf/qT73Tq5OMvuZ3vfve7du3adUhNHB2TRgcddPBvR2trq48xCRFfUhstWPTHP2ptbe2YNDrooIMODgU648sazg/VwbXDEd5BBx100MGn5lCdDDvooIMO/ilHBF9fBm1f0nW/bjpWGh100EEHHXxqOlYaHXTQwb8th/vyBsFDdXDtWGl00EEHHXTwqemYNDr4TDz++OMOO+ww1dXVX7cp/5AtW7Y47LDD5Ofnf+nXmjBhgsMOO+wTx/r06eOkk076m+fv2bPHYYcd5vbbb/+H7R7s69LS0n9q46hRoyQmJv7T8zr4JIf7//0aX/SrY6XRQQcdfGO57bbbrFmz5us2o4N/Aw7VybCDDv6tSEpK+rpN+D9Jh0/js9Ox0vg/wttvv+2yyy4TFxcnIiLCcccdZ+TIkVpaWkLbGC+99JKrr75aTEyMo446ysiRI+3bt88f//hHl1xyiejoaN26dTNlyhR//vOfQ9eurq522GGHuffee911112OO+443/72t6Wnp9u0adM/tOudd95x1FFHufjiiz9x/KWXXhIWFua22277wu7zIG+++aYLLrjA0Ucf7dvf/ra0tDRPPPHE37zen//8Z7fccov4+HhHHXWU/v37q6ys/Ew2fd18+OGHRo8e7ZhjjtG5c2cDBw70hz/84RPn/K3tqcMOO8yECROsXLnSCSecIDIy0imnnOJXv/rVV2h9B4caHZPG/wFef/11P/rRj/z2t781Z84czz//vLlz52ppafmE4NqYMWN06dLFU0895dZbb7V69WpXX3218847zymnnCI/P9+VV17pvvvu8+CDD/5VOw899JBf//rX7r//fk8++aRvfetbzj33XK+++urfte373/++Rx99VH5+vsWLF4M//vGPhg8fLisr65/u23/W+6ysrJSZmemtt96yePFizz77rJSUFKNGjXLvvff+1TVnzJjh3XfflZOT45FHHvHOO+8YOHCgtrbPHkX/l7/8xYEDB/7qFQgE/u57/tb5n7Xtn/70p771rW9ZvXq1+++/32uvvaZPnz4aGxv/6Xs3bNjgoYceMmfOHM8884xjjjnGkCFD/mrS+Xfly/JnfJn5H187gQ6+8Zx11lmB6OjoQH19/d/8fW5ubgCB66677hPHBw8eHEBg4cKFnzielpYW+OEPfxj6edeuXQEE4uPjA/v37w8d/+ijjwLHHHNMoH///n/V1q5duz5xzWuvvTYQHh4eePXVVwNnnXVWIDY2NlBbW/uF3mcgEAhceumlgYiIiMB77733iePnnntuIDIyMtDY2BgIBAKBzZs3BxAYMGDAJ8775S9/GUDg1Vdf/dR2HbzWP3v9T84888x/ev6sWbP+YbsH+3rIkCGfOP7KK68EELjzzjtDx6688srA8ccf/4nzEIiLiwt89NFHoWN//OMfA9/61rcCc+fO/dT3fyiyd+/eAAKLCTz6Jb0WBz/nvXv3ft23+4XSsdL4htPc3Ozll192ySWX+M53vvMPzz3//PM/8fMJJ5wAzjvvvL86/u677/7V+y+88MJPCKtFRUUZOHCgrVu3/tOn40WLFjnxxBP17dvXli1bPPnkk7p16/YP3/M/+bT3+dJLL+nXr5+EhIRPHB81apTm5ua/WhUNGjToEz+ffPLJ8Dfv/58xb948/+///b+/el1yySV/8/ykpKS/eX5hYeFnavfyyy//xM+ZmZmOP/54mzdv/qfv7du3r6ioqNDPcXFxYmNjP9f9H4oc/iW/DkUO1fs6ZPjwww+1tbX53ve+90/PPeaYYz7xc3h4+N89/qc//emv3v/d7373bx5rbW318ccf69Kly99tOyIiwvDhw02dOtUPf/hDP/nJT/6pvf+TT3ufDQ0Nf3Myio+PD/3+fxITE/NXdsL+/fs/k33wH//xH9LT0//q+N+b5A76hf43e/bs+Uzt/r3P5X/f69/if98/7X3wee6/gw7o8Gl84znmmGOEhYX5r//6ry+9rT/+8Y9/81h4eLgjjzzyH773zTffNHPmTD/60Y/87ne/s3Dhws/U9qe9z5iYGLt37/6r47W1taBr166fqd3/C/y9z+VvTQgdfDY68jQ+Ox2TxjecTp06OfPMMz399NOf+Qn1s/Lss89+YgXS1NRk/fr1srKyhIWF/d337du3z8UXXywxMdHmzZtNmDDBzTffrKSk5FO3/Wnvs1+/fl566aXQJHGQFStWiIyM9OMf//hTt/l/hVWrVn3i5+LiYu+++64+ffp8PQZ18G9Nx6Txf4CFCxf685//LCMjw6OPPmrz5s2eeuopw4cP19TU9IW1ExYW5ic/+Yk1a9Z45pln9OvXz0cffWT27Nn/8H3XXHON9957z9NPP61z587uu+8+J598sksvvfRTRfgc5NPc56xZsxxxxBH69u1r1apVnn/+eVdccYUNGza4/fbb/+EW2jeZFStWOPzww61YseKvfldaWmrMmDEKCgrk5OQYMmSIY4891rhx474GSw8tOnwan52OSeP/AKeccorXXntN7969TZ8+3TnnnGPatGkiIiJCfosvggkTJvjJT35i4sSJhg8f7sCBAzZs2OD000//u+/Jycnx5JNPWrJkiRNPPBHtPpO8vDwffPCB0aNHf+r2P819JicnKy4ulpycbPz48QYPHuzNN9+Um5tr6tSp/1oHfI385S9/0dbW5i9/+ctf/e7nP/+51tZWl156qYkTJ0pPT7dly5a/8lV10MFXwWGBwD8IMu/g34Lq6mrdu3c3f/58U6ZM+brN6aCDL52PPvpIly5drETkl9RGM0Zg7969jjrqqC+pla+ejpVGBx100EEHn5pDddutg28Qf/nLX/7mtsv/5PDDv/qvYiAQ+Kf5J2FhYX+lYNvBocOXmbl9qGaEd6w0OpCYmCgQCHxpW1Nz5sxxxBFH/MPX1yG1/sQTT/xTu15++eWv3K4OOvgm0+HT6OBLp7a29q9CZP83J5988hfq1P80NDQ02LVr1z88Jzk5+RMZ1R0cGhz0aeT7cn0aQx16Po2O7akOvnTi4+NDGdvfJGJiYjoS5Dro4DPSMWl00EEH/7YczAj/sq59KNLh0+iggw466OBTc6hOhh100EEH/5SOyn2fnUN2pbF06VLdu3f37W9/W+/evRUVFX0h17399tsddthhn3j9TxXSQCDg9ttvFx8fr1OnTvr06eOtt976xDVaWlpcd911unbtqnPnzgYNGvRPhfq2bt1q4MCB4uPjHXbYYdauXfuJ339R7X744YdGjBihS5cuunTpYsSIESEpkH9mw6hRo/6qb/63FtS/asPcuXP96Ec/EhUVJTY21uDBg/+qEt+X3Refxoavoi8efvhhJ598sqOOOspRRx3ltNNO8/zzz39l/fBpbPgq+qGDr5ivq5DHl8lTTz0VOOKIIwKPPvpooKKiInD99dcHOnfuHHj33Xf/5WvPmjUrcOKJJwZ2794dev3PokH33HNPICoqKvDMM88EysvLA8OGDQt069btE4VwrrnmmsCxxx4bePHFFwO/+93vAn379g2ccsopgQMHDvzddjdu3Bi45ZZbAs8880w
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAIVCAYAAAAteqNiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdf1xW5f348WfDIDGCwkHiKBxOFqVpslg4SstFWf4qy9I0NZulZmmapqVpmVqmZWlZpqlpuSxNF2VpmiwaDadFsWE6KRYGk8JIDBbd3z/A+zs//dzK2tr9ejzOozic+1zvc3F7vc/1/nlYIBAICBEiRIgQIb4GP/q+BQgRIkSIEP89hJRGiBAhQoT42oSURogQIUKE+NqElEaIECFChPjahJRGiBAhQoT42oSURogQIUKE+NqElEaIECFChPjahJRGiBAhQoT42oSURogQIUKE+NqElEaIECFChPjahJRGiBAhQvwHMW/ePC1atHDEEUdo3769nJycL71+2bJlTj75ZJGRkZo1a2bgwIEqKioOmXyHhWpPhQgR4n+Rjz/+WG1t7SEdIzw83BFHHPG1r1+xYoV+/fqZN2+eDh06mD9/vgULFigsLHTcccd95vrf//73zjjjDLNnz9a1a1fvvvuuq666ys9+9jOrVq36Nh8lSEhphAgR4n+Ojz/+2I8bN/bRIR7n2GOPtWvXrq+tONLT051yyinuv//+4LkTTjhBjx49TJs27TPXz5w50/3332/nzp3Bc/fee6877rhDSUnJN3+Az6HRIblriBAhQvwHU1tb6yOMRMQhGqMGs997z549exx11FHB8xERESIiPjtqbW2tLVu2GDdu3EHnzz77bLm5uZ87RkZGhgkTJsjOznbuuecqLy+3cuVK55133rf6LP9MyKcRIkSI/1ma4MhDdDRpGCMxMVF0dHTw+LwdA+zZs0ddXZ34+PiDzsfHx3vvvfc+9zMZGRmWLVumd+/ewsPDHXvssWJiYtx7773/1nx8HUJKI0SIECEOISUlJfbu3Rs8brzxxi+9/rDDDjvo50Ag8JlzBygsLDRixAgTJ060ZcsWzz33nF27drnqqqu+Nfn/LyHzVIgQIf5nObzhOBTUNfz3qKOOOsg89UU0bdpUWFjYZ3YV5eXln9l9HGDatGk6dOhgzJgxoE2bNpo0aSIzM9Ntt92mWbNm3+gZPo/QTiNEiBAh/gMIDw/Xvn17L7zwwkHnX3jhBRkZGZ/7merqaj/60cHLeFhYGOp3KIeC0E4jRIgQ/7M0cugWwX/nvqNGjdKvXz9paWlOO+00Dz74oHfeeSdobrrxxhu9++67lixZArp27erKK690//33y8rKsnv3btddd51TTz1VQkLCt/g0/5/QTuN/gEceecRhhx2muLj4+xblS9m0aZPDDjvMypUrD/m9hg8f/hk7cceOHZ100kmfe/2ePXscdthhbrnllm8sGzz99NMOO+wwDzzwwBde88ILLzjssMPMmDFDfHy8X/7yl1947aeffuq4447Tpk2bz/zuX5nXW2655Qvt5yEOPb1793b33XebMmWKtm3b2rx5s+zsbMcffzzYvXu3d955J3j9gAEDzJo1y3333eekk05y0UUXSUlJ8dRTTx0yGUM7jRAhvgfOO+88xx57rIULF36h03LRokUOP/xwgwYN8ve//91dd92lsLBQamrqZ65dv369kpIS119//TeSa/Dgwc4555xvdI//Jho5dD6NT/7Nzw0dOtTQoUM/93ePPPLIZ85dc801rrnmmn9ztH+d0E4jRIjvgUaNGunfv78//vGP3njjjc/8vrKy0qpVq3Tr1s2Pf/xjV1xxBVi4cOHn3m/hwoXCw8Nddtll30iun/zkJ1+6owkRIqQ0DiF/+ctfXHrppeLj40VERDjuuOP0799fTU1N0GT04osvuvLKK8XGxjrqqKP079/fvn37vPfeey6++GIxMTGaNWtm9OjR/vGPfwTvXVxc7LDDDnPHHXeYOnWq4447zhFHHCEtLc2GDRu+VK633nrLUUcd5aKLLjro/IsvvigsLMzNN9/8rT3nAd544w3du3d39NFHO+KII7Rt29bixYs/937/+Mc/TJgwQUJCgqOOOkrnzp0VFRX9SzJ9F3zTv+EBRbBo0aLP3Puxxx7z8ccfGzRoEOqzgk877TRLly71yScHv8NWVlZ6+umnde/eXWxs7BfK+/HHHxs1apRjjz1W48aNnXHGGbZu3XrQNZ9nnkpKSnL++ed77rnnnHLKKRo3buznP//5Fyqw/yYaHeLjh0hIaRwiXnvtNb/4xS/84Q9/MGXKFM8++6xp06apqak5qN7N4MGDRUdHe/zxx910002WL1/uyiuvdN555zn55JOtXLnS5Zdf7q677vrchJ377rvPc8895+677/boo4/60Y9+5Nxzz/XKK698oWw/+9nPPPTQQ1auXGnOnDngvffe06dPH5mZmf+S3f7rPGdRUZGMjAxvvvmmOXPmeOqpp6SmphowYIA77rjjM/ccP368t99+24IFCzz44IPeeustXbt2VVdX95lrv4pPP/3UJ5988pnjyyJLPu/6Lxv73/0btmrVyq9+9SuPPvroQcqEekXSvHlzWVlZwXNXXHGF8vJyzzzzzEHXLl++3McffxxUQl/E+PHj/fWvf7VgwQILFixQWlqqY8eO/vrXv37p56j/O19//fVGjhzp6aef1qZNG1dccYXNmzd/5WdD/MAIhDgknHnmmYGYmJhAeXn55/5+0aJFAQSuueaag8736NEjgMCsWbMOOt+2bdvAKaecEvx5165dAQQSEhIC+/fvD57/8MMPA8ccc0ygc+fOnxlr165dB93z6quvDoSHhwdeeeWVwJlnnhmIi4sLlJaWfqvPGQgEApdcckkgIiIi8M477xx0/txzzw1ERkYGKisrA4FAILBx48YAAl26dDnout/+9rcBBF555ZWvLdeBe33V8c+cccYZX3n9pEmTgtd/07/hP9/jqaeeCp574403AghMmDDhoGurqqoCRx55ZKBbt24HnW/fvn0gMTExUFdX96VzccoppwQ+/fTT4Pni4uLA4YcfHhg8eHDw3KRJkz4zL8cff3zgiCOOCLz99tvBc/v37w8cc8wxgSFDhnzumP/p7N27N4DAHAIPHaJjTsN3Zu/evd/3436rhHYah4Dq6movvfSSiy++2I9//OMvvfb8888/6OcTTjgBPlM75oQTTvD2229/5vMXXHDBQcXQoqKidO3a1ebNm7/yzXz27NlOPPFEnTp1smnTJo8++ui/lAz0dZ/zxRdfdNZZZ0lMTDzo/IABA1RXV39mV9StW7eDfj4QEfR5z/9VzJgxwx//+MfPHBdffPHnXp+cnPy5169fv/4Lx/gmf8OLL75YVFTUQaaehQsXOuywwwwcOPCga4888kgXX3yx7OxsZWVlqDf7bdmyxYABAz4Tr/9/6dOnz0Gmp+OPP15GRoaNGzd+6eegbdu2B1VZPeKII7Rq1erf+puE+O/mh2p2+1754IMP1NXV+clPfvKV1x5zzDEH/RweHv6F5z/++OPPfP7YY4/93HO1tbU++ugj0dHRXzh2RESEPn36GDNmjFNOOcWvf/3rr5T3n/m6z1lRUfG5yuhAHPn/rf3/f+3yB4q77d+//1+SD376059KS0v7zPkvUnIH/EL/lz179nzhGN/kbxgZGemSSy6xaNEi7733nqZNm3r00UedccYZkpOTPzPWFVdcYeHChZYuXWr06NFfqGA+jy/6rrz22mtf+dnP85VERET8W3+T/yT+0/I0/hsI7TQOAcccc4ywsDB/+9vfDvlYn1fI7L333hMeHu7II4/80s++8cYbJk6c6Be/+IU//elPZs2a9S+N/XWfMzY21u7duz9zvrS0FPXlE/6XueKKK3zyySeWLFnid7/7nfLy8i/0T2RkZDjhhBMsWrTIP/7xD48++qgzzzxTixYtvnKcL/qufJnzPESI/0tIaRwCDkSmPPHEE1/6hvpt8NRTTx309lpVVWXt2rUyMzOD5QQ+j3379rnoooskJSXZuHGj4cOHGzdunLy
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOyde1zN9//An3boqHTKTusoa7KiiThW02RRNFFCExEhstyJzCWTzF3KnWhybZoIraaJosmyUkQWtbImap2tpHKas/P74xzn9/W1i20u+9p5Ph6fx+bT53zer8+70/v1eb+uTZRKpRItWrRo0aLlMXjpeQugRYsWLVr+d9AqDS1atGjR8tholYYWLVq0aHlstEpDixYtWrQ8NlqloUWLFi1aHhut0tCiRYsWLY+NVmlo0aJFi5bHpunzFkCLFi1angf37t2jsbHxqY6ho6ND8+bNn+oYzxqt0tCiRcu/jnv37vGKri53n/I4rVq1oqSk5IVSHFqloUWLln8djY2N3AWCAOFTGkMORN6+TWNjo1ZpaNGiRcuLgD7wtJbzF3Vx1TrCtWjRokXLY/OiKkMtWrRo+UOaqY+ngeIp3fd5o91paNGiRYuWx0a709CiRcu/lqY8vUXwRV1ctTsNLVq0aNHy2GiVxr+MXbt20aRJE0pLS5+3KL9Leno6TZo0IT4+/qnfa+rUqTRp0uShc87OznTq1OlXr6+qqqJJkyYsXrz4T8nx888/I5FIePvtt3/zml9++YXXXnuNzp07ExQURJMmTfjmm29+8/qQkBCaNGnChQsXHvmZhYUFAwYM+EO5SktLadKkCbt27Xqs53iRaMr/+zWe9KHdaWjRouVv0axZM/z8/MjKyqKgoOBXr0lNTaWsrIzx48czfvx4AHbu3Pmr1/7yyy/s2bMHqVTKm2+++ZflMjU15dy5c3h4ePzle2j596BVGlq0PEP+SBHs3LkTHR0dRo0aRadOnejWrRt79+7l/v37j1z7xRdf8P3332vu+VcRCoW8/fbbvPLKK3/rPv+LNH3Kx4uIVmk8I7755htGjBiBRCJBKBTy2muvMXr0aORyucZkdOrUKSZMmIBYLEYkEjF69Gjq6uq4ffs2w4YNw8jICFNTU4KDg/n55581935gXli9ejXLli3jtddeo3nz5tjb23Py5Mnflev69euIRCKGDh360PlTp04hEAj48MMPn9hzPuDy5csMGjSIli1b0rx5c6RSKbt37/7V+/3888+EhIRgZmaGSCTC1dWVwsLCPyXTs+DB7/DEiRP4+/vz8ssvo6+vj6enJ99++63mug4dOtC9e/dfVQTV1dUcPXqUQYMGIRaLAZWSuX37Np9//vkjY8bExCAUChk5cuTvypaQkEDnzp1p3rw5r7/+Ohs2bHjo579mnlq8eDFNmjThypUrjBgxAkNDQyQSCePGjaOmpubPTo+WFwit0ngGXLx4kbfeeouvvvqKJUuW8Pnnn7NixQrkcvlDBdMCAgIwNDTkwIEDLFy4kNjYWCZMmICHhwddunQhPj6eMWPGsHbtWjZu3PjIOJs2beL48eOsW7eOffv28dJLL9G/f3/OnTv3m7K1a9eOHTt2EB8fr1lMbt++ja+vL05OTn/Kbv84z1lYWIijoyNXrlxhw4YNHD58GBsbG8aOHcvq1asfueeCBQu4ceMG0dHRbN++nevXr+Pp6YlC8eej4H/55Rfu37//yKFUKn/zM792/e+NPX78eF566SViY2NZt24d58+fx9nZmerq6oeuqaysJCkp6aHPxsbGcu/evYd2DiNGjEBPT++RnclPP/3E0aNH8fLyomXLlr8pT15eHjNnziQoKIiEhAQcHR2ZMWMG4eHhv/mZ/2TIkCG0b9+eQ4cOMW/ePGJjYwkKCnqsz/4v8LT8GU8z/+O5o9Ty1Ondu7fSyMhIWVlZ+as/j4mJUQLKadOmPXR+8ODBSkAZERHx0HmpVKp88803Nf8uKSlRAkozMzNlQ0OD5vydO3eUL7/8stLV1fWRsUpKSh6656RJk5Q6OjrKc+fOKXv37q00MTFRlpeXP9HnVCqVyuHDhyuFQqHyu+++e+h8//79lXp6esrq6mqlUqlUpqWlKQGlu7v7Q9d9+umnSkB57ty5x5brwb3+6PhPevXq9YfXh4aGaq5/MK9eXl4P3efs2bNKQLl06VLNudraWmWLFi2UAwcOfOhaOzs7pbm5uVKhUDx0fsyYMcpmzZopKyoqNOc2btyoBJQnTpz4zedu06aNskmTJsq8vLyHzr/77rtKkUikrKurUyqV///9iYmJ0VwTGhqqBJSrV69+6LOTJ09WNm/eXPnLL7/85rj/C9TU1CgB5QZQ7nhKxwb196SmpuZ5P+4TRbvTeMrU19dz+vRphg0b9oc24/+OdOnQoQPAIw7KDh06cOPGjUc+/9577z1UGM3AwABPT0/OnDnzh2/mkZGRdOzYERcXF9LT09m3bx+mpqa/+5n/5HGf89SpU/Tp0wdzc/OHzo8dO5b6+vpHdkUDBw586N+dO3cG+NXn/yNWrVrF119//cgxbNiwX73e0tLyV69PTU39zTH+21Tk6OhImzZtSEtL05xr0aIFw4YNIzk5mYqKCkBlssvJyWHs2LG89NLDf5bjx4/n559/Zu/evZpzMTExtGnThj59+vzuM3fs2JEuXbo8dM7X15c7d+78asTVf/Nr83/v3j0qKyv/8LP/C2h9Gn8erdJ4yvz0008oFApeffXVP7z25ZdffujfOjo6v3n+3r17j3y+VatWv3qusbGRu3d/vwi0UCjE19eXe/fuIZVKeffdd/9Q3v/kcZ9TJpP9qjIyMzPT/Pw/eWDb/085ARoaGv6UfACvv/469vb2jxy/peQe+IX++/jvRfg/+a3fwX8/1/jx47l//75GEezcuZMmTZrg7+//yOednJxo3749MTExAFy6dIkLFy7g7+//SKjw48oDj871r/Ek51/Li4FWaTxlXn75ZQQCAd9///1TH+v27du/ek5HR4cWLVr87mcvX77MokWLeOutt7hw4QIRERF/auzHfU6xWMytW7ceOV9eXg6AsbHxnxr3n8Zv/Q7+e/F1dHSkQ4cOxMTE8PPPP7Nv3z569+5N27Ztf/W+48aN48qVK5w/f56dO3fy0ksvMXbs2L8sDzyqEP6NaPM0/jxapfGU0dXVpVevXhw8eJCqqqqnOtbhw4cf2oHU1taSmJiIk5MTAoHgNz9XV1fH0KFDsbCwIC0tjalTpzJv3jyysrIee+zHfc4+ffpw6tQpjZJ4wJ49e9DT0/vdxLf/Bfbv3//QvzMzM7lx4wbOzs6PXDtu3DgKCgpYuHAhP/zwA+PGjfvN+44ZM4amTZsSFRXF/v376dOnD23atPlDea5cucLFixcfOhcbG4uBgcHfyu3Q8u9FqzSeAREREfz88884ODiwY8cO0tLSOHDgAL6+vtTW1j6xcQQCAe+++y4JCQkcOnSIPn36cOfOHcLCwn73cxMnTuS7777j4MGD6Ovrs3btWjp37szw4cMfivr5Ix7nOUNDQ2nWrBkuLi7s37+fzz//nFGjRpGUlMTixYsxNDT8O1Pw3MnOziYgIICUlBSio6Px8vKidevWTJ48+ZFrR48eTbNmzVizZg1GRka89957v3nfVq1a4e7uTkxMDFVVVY/kZlhZWWFlZfXI58zMzBg4cCAxMTEcP36cUaNGceLECRYuXIient7ff+D/cbQ+jT+PVmk8A7p06cL58+exs7Nj/vz59OvXj7lz5yIUCjV+iyfB1KlTeffdd5k+fTq+vr7cv3+fpKQkevTo8ZufiY6OZt++fWzevJmOHTsCKp9JXFwcP/7446/a2H+Lx3lOa2trMjMzsba2ZsqUKQwePJjLly8TExPDnDlz/t4E/AP4+OOPaWxsZPjw4UyfPh17e3vS09Mf8UsBmJiYMGDAAJRKJb6+vn/Y3W38+PEolUpefvllBg8e/NDPHoQD/zdSqZSIiAjWrl3LoEGDOHv2LBEREXzwwQd/6zm1/HtpolT+TpC6lv8JSktLadu2LWvWrCE4OPh5i/OvZNeuXfj
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdf1yV9fk/8GfDYGIEidNko3CYFIvCyScWDdO0WJQmZVmalmXTtCydpWZp2i8tp2XpMl2WpeWyMF00y9J00fCLk0VRlEwWC4OJYSQOJjvfPziez1xttS2r+Tmvx+M8lPvc576v+33uc1/v9/Xj9TosEAgEhBFGGGGEEcbnwDe+agPCCCOMMML470HYaYQRRhhhhPG5EXYaYYQRRhhhfG6EnUYYYYQRRhifG2GnEUYYYYQRxudG2GmEEUYYYYTxuRF2GmGEEUYYYXxutPmqDQgjjDDC+Crw5z//WXNz80E9R2RkpG9+85sH9RxfNsJOI4wwwvg/hz//+c++1batjw/yeY4++mjbt28/pBxH2GmEEUYY/+fQ3NzsY4xD1EE6RxPmfvCB5ubmsNMII4wwwjgU0A4H63F+qD5cw4nwMMIII4wwPjcOVWcYRhhhhPGZODz4OhhoOUjH/aoRXmmEEUYYYYTxuRFeaYQRRhj/Z9HGwXsIHqoP1/BKI4wwwggjjM+NsNMIwyOPPOKwww5TWVn5VZvyT7FhwwaHHXaYlStXHvRjXXPNNQ477LADtvXq1cuJJ574qfvv3LnTYYcd5tZbbwXjxo1z2GGHefvtt/+hDVOmTHHYYYd55ZVXHHbYYSZNmvQP93333Xcddthhxo4d+4n3br31VocddpidO3f+w8//7TX06tXrM/f7v4I2/jev8UW/wiuNMMII43PjyiuvBA8//PCnvv/Xv/7V0qVLpaenO/300/Xo0cPSpUu1tHx6+nTJkiUHHPffxYIFCyxYsOA/OkYY/7cRdhphhHEQcOKJJzrllFM89thj9u3b94n3X3jhBX/84x9DTuDKK6+0Y8cOzz///Cf2bWlpsXTpUj169HDyySf/R3alpqZKTU39j45xKKHNQX4digg7ja8Qb7/9tksuuUSnTp1ERUU55phjDBs2TFNTUyhk9PLLL7vqqqvEx8c78sgjDRs2zJ49e3zwwQcuuugicXFxOnfubMKECf7yl7+Ejl1ZWemwww5z9913u+OOOxxzzDG++c1vysjI8NJLL/1Tu959911HHnmkCy+88IDtL7/8soiICLfccssXdp378cYbbzjvvPMcddRRvvnNb0pPT/foo49+6vH+8pe/mDJlioSEBEceeaS+ffsqLy//l2z6MnDllVf64IMPPtURLFmyRFRUlCFDhoDBgwdr27ZtaEXxt3jhhRe8//77rrjiin96vqqqKueff74jjzxSbGysSy+91J/+9KcD9vn78NT++2T27NnmzJmjS5cujjjiCKeeeqrf/OY3/8ZVh3GoI+w0viL87ne/8z//8z9+85vfmDFjhueff95dd92lqanpABK1ESNGiI2N9eSTT7r55pstX77cVVdd5ZxzznHyySdbuXKlyy67zE9/+lP333//J87zwAMP+NWvfuXee+/1+OOP+8Y3vuHss8/22muv/UPbjjvuOIsWLbJy5Urz5s0DH3zwgcGDB8vOzg7F7b+o6ywvL5eVleXNN980b948zzzzjNTUVJdffrm77777E8e86aab/OEPf7B48WIPPfSQd999V79+/f5haOef4a9//at9+/Z94hUIBP7hZz5t/0879yWXXCI6OvoTIaoPP/zQs88+Ky8vz1FHHQViY2NdcMEF1qxZ84kH/ZIlS3zzm980ePDgf3oteXl5unbtauXKlW699VarVq2Sk5NzwGTiH2H+/PlefPFF9957r2XLltmzZ4/c3Fy7d+/+zM/+N+Ng5TMOZv/HV45AGF8JzjjjjEBcXFygtrb2U99fsmRJAIFrr732gO0DBgwIIDBnzpwDtqenpwe+//3vh/7evn17AIGEhITA3r17Q9s/+uijQPv27QN9+/b9xLm2b99+wDGvvvrqQGRkZOC1114LnHHGGYGOHTsGqqurv9DrDAQCgYsvvjgQFRUVeO+99w7YfvbZZweio6MD9fX1gUAgEFi/fn0Agdzc3AP2+8UvfhFA4LXXXvvcdu0/1me9/hann376Z+4/bdq0Az5z2WWXBQ4//PBATU1NaNv9998fQODFF1/8VJv+9rutq6sLREVFBYYMGfIPr2XatGkBBMaNG3fA9mXLlgUQePzxxw+4htNPPz309/77JC0tLbBv377Q9s2bNwcQeOKJJ/7xIP4XY/fu3QEE5hFYdJBe84L3xO7du7/qy/1CEV5pfAVobGz0yiuvuOiii3zrW9/6p/uee+65B/x9wgkngHPOOecT2//whz984vPnn3/+AWRpMTEx+vXrZ+PGjZ85M587d67vfe97evfubcOGDR5//HGdO3f+p5/5W3ze63z55Zf16dNHYmLiAdsvv/xyjY2Nn1gV9e/f/4C/TzrpJPjU6/8szJo1y//7f//vE6+LLrroU/dPTk7+1P3XrVv3qftfeeWV/vKXv3jsscdC25YsWeLYY4/Vp0+fA/Y9/fTTJScnHxCiWrZsmaamps8MTSEU6tqPiy66SJs2baxfv/4zP3vOOeeIiIgI/f2fjOl/E8I5jX8dh+p1fa3x4Ycfamlp8Z3vfOcz923fvv0Bf0dGRv7D7X/+858/8fmjjz76U7c1Nzf7+OOPxcbG/sNzR0VFGTx4sBtuuMH3v/99Z5555mfa+7f4vNdZV1f3qc4oISEh9P7fIj4+/hN2wt69e/8l++C73/2ujIyMT2z/R05uf17o7/GPyl2zs7N169bNkiVL/OQnP/H666/77W9/GyqT/VscdthhrrjiClOmTFFcXCwjI8OSJUt06dJF7969P/Na/v67btOmjfj4+E+M36fhixzTMA5thFcaXwHat28vIiLCH//4x4N+rg8++OBTt0VGRjriiCP+6WffeOMNU6dO9T//8z9++9vfmjNnzr907s97nfHx8Xbs2PGJ7dXV1aBDhw7/0nm/brjiiiu8+eabNm/e7OGHH/aNb3zD5Zdf/qn7Xn755SIiIjz88MN+97vf2bp1qyuuuOITDubT8Pff9b59+9TV1X3CIYTxvwj3afzrCDuNrwBt27Z1+umne+qppz5XQ9Z/gmeeeeaAFUhDQ4M1a9bIzs4+IBzx99izZ48LL7xQUlKS9evXu+aaa0yaNElRUdHnPvfnvc4+ffp4+eWXQ05iP5YuXSo6OtoPfvCDz33OryMuu+wybdq0sXDhQsuWLdOnTx/HHnvsp+6bkJDgRz/6kSeeeML8+fN94xvfcNlll32u8yxbtuyAv3/xi1/Yt29fuJkvjC8UYafxFWHOnDn+8pe/yMzMtGjRIuvXr/fkk08aPHiwhoaGL+w8ERERzjzzTPn5+Z5++ml9+vTx0UcfmT59+j/93KhRo7z33nueeuop7dq189Of/tRJJ53k4osvVl9f/7nP/3muc9q0aQ4//HC9e/e2bNkyzz//vEsvvdRzzz3n1ltv/achtP8GHH300XJzcy1ZssTOnTs/s0HvyiuvVF9fb/Hixc4666wDcj0zZszQpk0br7zyyic+98wzz7jxxhtDVVAjR4508skn/8P8TBjhnMa/g7DT+Ipw8skn27x5sx49epg8ebIf/ehHJk6cKCoqKpS3+CJwzTXXOPPMM40dO9bgwYPt27fPc88957TTTvuHn1m8eLHHH3/c/Pnzfe9730NrzmTFihV27dpl+PDhn/v8n+c6U1JSFBYWSklJMWbMGAMGDPDGG29YsmSJG2644T8bgK8JrrzySoFAQPv27Q0YMOCf7nvuuefq1KmTQCDwiQT4X//6Vy0tLZ9aEvzMM894++23nX/++aZOnapfv35eeOGFL/R+CiOMwwKfdveF8V+PyspKXbp0cc8995gwYcJXbU4YYXyt8NFHH4mNjfUYog/SORoxFLt373bkkUcepLN8+QivNMIII4wwwvjcOFTDbmEcZPz1r3/117/
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydfVzN5//4nznpqKR0UpztTK2IiKhpsghNE0VE5K7I3N9H7pP7iNzfNrmNVhZFFqmILMuKiKSVtR1KpbTixNn5/XFyfl+f3dnmZh+f83w83o/tvO+u1/vq7Xq9r+t1p6FQKBSoUaNGjRo1L0G9ty2AGjVq1Kj570GtNNSoUaNGzUujVhpq1KhRo+alUSsNNWrUqFHz0qiVhho1atSoeWnUSkONGjVq1Lw0aqWhRo0aNWpeGs23LYAaNWrUvA2ePHlCbW3ta21DS0uLBg0avNY23jRqpaFGjZr/OZ48eUITbW1+fs3tNG3alIKCgndKcaiVhho1av7nqK2t5WdgBiB8TW3IgND796mtrVUrDTVq1Kh5F9AFXtdw/q4OrmpDuBo1atSoeWneVWWoRo0aNX9K/brtdSB/Tfd926hnGmrUqFGj5qVRzzTUqFHzP4smr28QfFcHV/VMQ40aNWrUvDRqpaHmL7N37140NDQoLCx826L8ISkpKWhoaBAdHf3a7zV58mQ0NDQAePDgAVpaWgwZMuR37/fo0SN0dHRwd3f/1bHn/ZuRkfGncvn4+GBqavpyD6HmV2jy/+0ar3pTzzTUqFHzUjRp0gR3d3eOHTvGw4cPf/OcI0eO8PjxY8aMGfOP2lq0aBExMTH/6B5q1PwV1EpDjZrXwJgxY5DJZBw6dOg3j+/ZswcTExP69Onzj9oxNzenQ4cO/+ge/8tovubtXUStNP6LuHXrFkOHDsXExAShUMgHH3zAyJEjkclkqiWNpKQkxo4di0gkolGjRowcOZLq6mru37/P4MGDMTAwoFmzZvj7+/P06VPVvQsLC9HQ0GDNmjWsWLGCDz74gAYNGmBnZ8fZs2f/UK68vDwaNWrEoEGDXtiflJSEQCBg0aJFr+w5n3P9+nX69etH48aNadCgATY2Nuzbt+837/f06VMWLFiAWCymUaNGODs7k5ub+5dk+qu4uLjw/vvvEx4e/qtjN2/eJD09nZEjR6Kp+ftDy8OHD/H19cXQ0BBdXV3c3Nz4/vvvXzjnt5anNDQ0mDx5MgcOHKB169bo6OjQvn17Tpw48UqeTc3/Nmql8V/C1atX+eijj/jmm29YunQpp06dYtWqVchksheSrvn5+aGvr8+RI0dYuHAhERERjB07lj59+tC+fXuio6MZNWoU69atY/Pmzb9qZ8uWLXz99dds2LCBgwcPUq9ePXr37s2lS5d+V7YWLVqwe/duoqOj2bRpEwD379/H29sbR0dHlixZ8kqfMzc3FwcHB27cuMGmTZv46quvsLKywsfHhzVr1vzqnvPnz+fu3buEhYWxa9cu8vLycHNzQy7/6570v/zyC8+ePfvVplAoXjivXr16+Pj48N1333H16tUXjj1XJKNHj/7DtsaMGUO9evWIiIhgw4YNXL58GScnJyoqKv5UzpMnT7JlyxaWLl3K0aNHMTQ0xMPD41dK53+d12XPeJ3xH28dhZr/Cnr06KEwMDBQlJSU/Obx8PBwBaCYMmXKC/v79++vABTr169/Yb+NjY2iY8eOqt8FBQUKQCEWixWPHz9W7X/06JHC0NBQ4ezs/Ku2CgoKXrjnhAkTFFpaWopLly4pevTooTA2NlZIpdJX+pwKhUIxZMgQhVAoVPzwww8v7O/du7dCR0dHUVFRoVAoFIrk5GQFoHB1dX3hvC+//FIBKC5duvTScj2/159t/5fvv/9eoaGhoZg6dapq39OnTxVNmzZVdOnS5Xfbet6/Hh4eL+y/ePGiAlAsX75ctW/UqFGK5s2bv3AeoDAxMVE8evRIte/+/fuKevXqKVatWvXSz/wuU1lZqQAUm0Cx+zVtm+reicrKyrf9uK8U9Uzjv4CamhrOnTvH4MGDadKkyR+e27dv3xd+t27dGuBXa+etW7fm7t27v7p+wIABLyRX09PTw83NjfPnz//pl3loaCht2rShe/fupKSkcPDgQZo1a/aH1/xfXvY5k5KS6NmzJxKJ5IX9Pj4+1NTU/GpW9J8eSu3atQP4zef/M4KDg/n2229/tQ0ePPhX55qZmdG9e3cOHTqkmiWdOnWK+/fv/+ksA2DYsGEv/HZwcKB58+YkJyf/6bXdu3dHT09P9dvExARjY+O/9czvMmqbxl9HrTT+C3j48CFyuZz333//T881NDR84beWltbv7n/y5Mmvrm/atOlv7qutreXnn/84kbRQKMTb25snT55gY2PDp59++qfy/l9e9jnLysp+UxmJxWLV8f+LSCT6lZwAjx8//kvyAXz44YfY2dn9avs9JTdmzBjKysqIjY0FlEtTDRs2/E0l85/83t/iP5/vt/jPZwblc/+dZ1aj5v+iVhr/BRgaGiIQCPjxxx9fe1v379//zX1aWlo0bNjwD6+9fv06ixcv5qOPPuK7775j/fr1f6ntl31OkUjEvXv3frVfKpUCYGRk9JfafZ0MGDCAxo0bs2fPHh48eMCJEyfw8vL6076E3/9b/JZCUPP3UMdp/HXUSuO/AG1tbbp160ZUVBSlpaWvta2vvvrqhRlIVVUVcXFxODo6IhAIfve66upqBg0ahKmpKcnJyUyePJm5c+eSnp7+0m2/7HP27NmTpKQklZJ4zv79+9HR0eHjjz9+6TZfNw0aNMDb25vTp08THBzM06dPX2ppCviVu25aWhp3797FycnpNUiqRs3LoVYa/yWsX7+ep0+fYm9vz+7du0lOTubIkSN4e3tTVVX1ytoRCAR8+umnxMTEcPToUXr27MmjR48ICgr6w+vGjx/PDz/8QFRUFLq6uqxbt4527doxZMiQl/L2ec7LPGdgYCD169dX2QtOnTrF8OHDOXnyJEuWLEFfX/+fdMErZ8yYMcjlctavX0+rVq1wcHBQHdu/fz+amprs37//V9dlZGTg5+dHQkICYWFheHh48N577zFx4sQ3Kf47jdqm8ddRK43/Etq3b8/ly5extbVl3rx5fPbZZwQEBCAUClV2i1fB5MmT+fTTT5k6dSre3t48e/aMkydP0qVLl9+9JiwsjIMHD7J161batGkDKG0mkZGRlJeX4+vr+9Ltv8xzWlpakpaWhqWlJZMmTaJ///5cv36d8PBwZs+e/c864DXQoUMHOnTogEKh+NUs45dffkEul/PLL7/86rovvviC2tpahgwZwtSpU7GzsyMlJeVX9ik1at4kGgrFfziYq/mfpLCwEDMzM9auXYu/v//bFkeNmtfKo0eP0NfX5wCg85raqAFGAJWVlTRq1Og1tfLmUc801KhRo0bNS/OuLrup+Zfxyy+//OYSzP/lj1JqvC4UCsWfxp8IBAJVBls17xavM3L7XY0IV8801ABgamqKQqF4bUtTS5cupX79+n+4vY1U6/v27ftTuc6dO/fG5VKj5t+K2qah5o0glUp/5SL7n7Rr1+6VGvVfhrKyMgoKCv7wHEtLyxeiq9X89/PcphHN67VpePLu2TTUy1Nq3ghisVgVsf1vQiQSqYPl1Kj5C6iVhho1av5neR4R/rru/S6itmmoUaNGjZqX5l1VhmrUqFHzp7zOyO13dXB9Z2ca27Ztw8zMjAYNGmBra0tqauorue+SJUvQ0NB4Yfu/2UgVCgVLlixBLBajra2Nk5MTN27ceOEeMpmMKVOmYGRkhK6uLu7u7n+apO/8+fO4ubkhFovR0NDg2LFjLxx/Ve0+fPiQESNGoK+vj76+PiNGjFClAfkzGXx8fH7VN/+ZB+qfyrBq1So++ugj9PT0MDY2pn///r+qwve6++JlZHgTfbF9+3batWtHo0aNaNSoEZ07d+bUqVNvrB9eRoY30Q9q3jBvqY7Ha+XIkSOK+vXrK3bv3q3IyclRTJs2TaGrq6u4e/fuP753YGCgok2bNop79+6ptv9bMGj16tUKPT09xdGjRxX
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydfVzN5//4n+2ko5LSSXG2M7UiIqKmySLVNFFENLkLmfv7yH1yH5H72ya3kSKKLFIRWZaVRSStrO1QqpVWnDg7vz9Ozu/jYze2Mfv6nOfj8X5svc/7XNfrfZ236/W+rtedhkKhUKBGjRo1atS8BO+8aQHUqFGjRs3/HdRKQ40aNWrUvDRqpaFGjRo1al4atdJQo0aNGjUvjVppqFGjRo2al0atNNSoUaNGzUujVhpq1KhRo+al0XzTAqhRo0bNm+Dx48fU1dW91j60tLRo2LDha+3jn0atNNSoUfM/x+PHj2mqrc3Pr7mfZs2aUVhY+FYpDrXSUKNGzf8cdXV1/AxMB4SvqQ8ZEHb/PnV1dWqloUaNGjVvA7rA65rO39bJVW0IV6NGjRo1L83bqgzVqFGj5g9pUH+8DuSvqd03jXqloUaNGjVqXhr1SkONGjX/s2jy+ibBt3VyVa801KhRo0bNS6NWGv9D7NmzBw0NDYqKit60KL9LamoqGhoaxMTEvPa2Jk2ahIaGBgAPHjxAS0uLzz777Dfbe/jwITo6Onh6er60DH+l3We/VWZm5q9e36dPH0xNTf+wbw0NDSZNmvSH1z0bp9TU1D+89m1Ck/9v13jVh3qloUbNW07Tpk3x9PTk+PHj/PTTT796zeHDh3n06BGjR49+4+2+Sjp16sTly5fp1KnTG+lfzf8d1EpDjZr/YPTo0chkMg4ePPirn+/evRsTExN69+79r2j3VdG4cWM++ugjGjdu/Eb6f1NovubjbUStNP4Bbt26xeDBgzExMUEoFPL+++8zfPhwZDKZahsiOTmZMWPGIBKJaNy4McOHD6empob79+8zaNAgDAwMaN68OQEBATx58kTVdlFRERoaGqxevZrly5fz/vvv07BhQ+zs7Dh37tzvypWfn0/jxo0ZOHDgc+eTk5MRCAQsXLjwld3nM65fv07fvn1p0qQJDRs2xMbGhr179/5qe0+ePGH+/PmIxWIaN26Mq6sreXl5f0qmP4ubmxvvvfceERERL3x28+ZNMjIyGD58OJqayilh8eLFaGhokJWVRf/+/WncuDH6+voMHTqUBw8e/OV2XzU7duygVatWCIVCrKysOHz48HOf/9r2lJ+fH40aNeLOnTu4u7vTqFEjJBIJM2fOfO43VfO/hVppvGauXbvGhx9+yFdffcWSJUs4ffo0K1euRCaTPZcszd/fH319fQ4fPsyCBQuIjIxkzJgx9O7dmw4dOhATE8OIESNYu3YtmzZteqGfzZs38+WXX7J+/XoOHDjAO++8Q69evbh8+fJvytayZUt27dpFTEwMGzduBOD+/fv4+vri6OjI4sWLX+l95uXl4eDgwI0bN9i4cSPHjh3DysoKPz8/Vq9e/UKb8+bN4+7du4SHh7Nz507y8/Px8PBALv/zHvC//PILT58+feFQKBTPXffOO+/g5+fHN998w7Vr15777NmEP2rUqBfa9/LywsLCgpiYGBYvXszx48dxc3NTKfi/2q5cLn8puX+PuLg4Nm7cyJIlS4iJiaFFixYMHjz4pWxGT548wdPTExcXF06cOMGoUaMICwsjJCTkpfv/N/O67BmvM/7jjaNQ81pxdnZWGBgYKEpLS3/184iICAWgmDx58nPn+/XrpwAU69ate+68jY2NolOnTqq/CwsLFYBCLBYrHj16pDr/8OFDhaGhocLV1fWFvgoLC59rc/z48QotLS3F5cuXFc7OzgpjY2OFVCp9pfepUCgUn332mUIoFCq+//7758736tVLoaOjo6isrFQoFApFSkqKAlC4u7s/d92RI0cUgOLy5csvLdeztv7o+E++++47hYaGhmLKlCmqc0+ePFE0a9ZM0bVr1+euDQoKUgCK6dOnP3f+4MGDCkBx4MCBv9Tus9/q944WLVr84f0DCm1tbcX9+/dV554+fapo3bq1wsLC4oVxSklJUZ0bMWKEAlAcOXLkuTbd3d0VlpaWf9j3v5mqqioFoNgIil2v6dhY/ztVVVW96dt9pahXGq+R2tpazp8/z6BBg2jatOnvXtunT5/n/m7Tpg3AC3vcbdq04e7duy98v3///s8lRdPT08PDw4MLFy784Zt5WFgYbdu2pUePHqSmpnLgwAGaN2/+u9/5T172PpOTk3FxcUEikTx33s/Pj9ra2hdWRf/todS+fXuAX73/PyIkJISvv/76hWPQoEEvXGtmZkaPHj04ePCgapV0+vRp7t+//6urAYAhQ4Y89/egQYPQ1NQkJSXlb7W7b9++X5X7448/ful7d3FxwcTERPW3QCDAx8eHO3fu8MMPP/zudzU0NPDw8HjuXPv27f/Sb/BvRG3T+POolcZr5KeffkIul/Pee+/94bWGhobP/a2lpfWb5x8/fvzC95s1a/ar5+rq6vj5599PAC0UCvH19eXx48fY2NjwySef/KG8/8nL3md5efmvKiOxWKz6/D8RiUQvyAnw6NGjPyUfwAcffICdnd0Lx28pudGjR1NeXk5cXByg3EJq1KjRryoZeHH8NTU1EYlEL9zTn223TZs2vyq3vr7+S9/7bz0b8OKY/zc6OjovZGgVCoW/+gyq+d9ArTReI4aGhggEgj98m3sV3L9//1fPaWlp0ahRo9/97vXr11m0aBEffvgh33zzDevWrftTfb/sfYpEIu7du/fCealUCoCRkdGf6vd10r9/f5o0acLu3bt58OABJ0+exMfH5zfH8r/H/+nTp5SXl7+g+P5su6+C33o24EXF/L+GOk7jz6NWGq8RbW1tunfvTnR0NGVlZa+1r2PHjj339lddXU18fDyOjo4IBILf/F5NTQ0DBw7E1NSUlJQUJk2axJw5c8jIyHjpvl/2Pl1cXEhOTlYpiWfs27cPHR0dPvroo5fu83XTsGFDfH19OXPmDCEhITx58uQ3t5CAF1xpjxw5wtOnT3Fycvpb7b4Kzp07R0lJiepvuVxOVFQU5ubmL7UKVqPmP1ErjdfMunXrePLkCfb29uzatYuUlBQOHz6Mr68v1dXVr6wfgUDAJ598QmxsLEePHsXFxYWHDx8SHBz8u98bN24c33//PdHR0ejq6rJ27Vrat2/PZ599RmVl5Uv3/zL3GRQURIMGDVT7+qdPn2bo0KGcOnWKxYsX/6ktl3+C0aNHI5fLWbduHa1bt8bBweE3rz127BizZ8/m7NmzrF+/nrFjx9KhQ4df3Xb6M+3+GTQ1NXFxcXnhvJGREc7Ozhw+fJj4+Hj69OnDrVu3WL58+Svp9/8yapvGn+dtva9/DR06dODKlSsEBQUxd+5cqquradasGc7Oziq7xatg0qRJPH78mClTplBaWkrbtm05deoUXbt2/c3vhIeHc+DAASIiImjbti2gtJlERUXRqVMnRo4cSWxs7Ev1/zL3aWlpSXp6OvPmzWPixIk8evSINm3aEBERgZ+f398eg1dNx44d6dixI1lZWX+4Gjh27BiLFy9m27ZtKuPx+vXrf/U3/jPt/hnkcvmvOj14enrStm1bFixYwPfff4+5uTkHDx7Ex8fnlfWt5n8HDYXiTzh8q/nXUVRUhJmZGWvWrCEgIOBNi/M/x+LFiwkODubBgwf/KpuMmt/n4cOH6Ovrsx/QeU191ALDgKqqqrcq0l69PaVGjRo1al4a9faUmt/ll19+4Zdffvnda15X6ovfQ6FQ/GH8iUAgUGWwVaPm13idkdtva0S4eqXxfxxTU1MUCsVr25pasmQJDRo0+N3jTaRa37t37x/Kdf78+dcux+LFi1EoFOqtKTX/M6htGmp+F6lU+oKL7H/Tvn37V2rUfxnKy8spLCz83WssLS3R09P7hyRS83+JZzaNGF6vTcObt8+mod6eUvO7iMViVcT2vwmRSPQ/H5imRs2bQK001KhR8z/Ls4jw19X
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdf1zV9fn/8XvDYGIEhUniSBwmRZEaLD5hlKaLwjRNm6VpWTZLzbJsVjatppVl2U/LsixNi0VpOlksTdOiaDItkoZJYiwMk4WhGEx2vn9wPN9Pn9pWW9bmeNxu51a8eZ/zvt4vjq/r/Xpd1/W8DgoEAgEttNBCCy208DX4wfdtQAsttNBCC/85tDiNFlpooYUWvjYtTqOFFlpooYWvTYvTaKGFFlpo4WvT4jRaaKGFFlr42rQ4jRZaaKGFFr42LU6jhRZaaKGFr02r79uAFlpooYXvg88//1xjY+N+vUZ4eLgf/vCH+/Ua3zUtTqOFFlr4r+Pzzz93ROvWdu3n6xx55JG2bNlyQDmOFqfRQgst/NfR2NhoFyYgYj9dowGzPv5YY2Nji9NooYUWWjgQaIP9NZ0fqJNrSyC8hRZaaKGFr82B6gxbaKGFFv4hBwdf+4Om/fS53zctK40WWmihhRa+Ni0rjRZaaOG/llb23yR4oE6uLSuNFlpooYUWvjYtTqOFf5onn3zSQQcdpKKi4vs25e+yevVqBx10kLy8vO/ssw466CDjxo37xp9/8cUXO+SQQ77WuYmJiS6++OJvfI0W/j+t/P+4xrf9OlBXGgfqfbXQwgHP4sWLHXrood+3GS38l9HiNFpo4T+U7t27f98m/MfTEtP45rRsT/0H8sc//tEFF1wgLi5ORESEo446yogRIzQ0NIS2jF555RWXXXaZ2NhYhx56qBEjRti9e7ePP/7Yz372MzExMdq3b2/ixIn+8pe/hD67oqLCQQcd5M477zR9+nRHHXWUH/7wh9LT061cufLv2vX+++879NBDnXfeeV84/sorrwgLC/PLX/7yW7vPfbz77rvOOecchx12mB/+8Ie6devmqaee+srP+8tf/mLy5Mni4+Mdeuih+vTpo6ys7BvZ9F2xceNGvXv31qZNG0cccYRx48apr6//wjn/d3tq39bZM8888x9zny3859HiNP7DePvtt/3kJz/x5ptvuvXWW/32t791++23a2ho+IL42qhRo0RHR3v22WfddNNNFi1a5LLLLtO3b19du3aVl5fnoosucvfdd3vggQe+dJ0HH3zQSy+95N577/X000/7wQ9+4KyzzvLGG2/8TduOPvpojz32mLy8PPfffz/4+OOPDR06VFZWlptvvvlbvc+ysjKZmZk2btzo/vvv98ILL0hJSXHxxRe78847v/SZN954o61bt5o7d65HH33U+++/r1+/fpqa/r0y6v/yl7/IycnRu3dvS5YsMW7cOHPmzDFkyJCv9f7/lPv8d2B/xTP2Z/3H906ghf8oTj/99EBMTExg+/btX/n7efPmBRC48sorv3B8wIABAQTuueeeLxzv1q1b4MQTTwz9vGXLlgAC8fHxgT179oSOf/bZZ4HDDz880KdPny9da8uWLV/4zCuuuCIQHh4eeOONNwKnn356oF27doGqqqpv9T4DgUDg/PPPD0RERAQ+/PDDLxw/66yzApGRkYHa2tpAIBAIrFq1KoBATk7OF8779a9/HUDgjTfe+Np27fus55577u+eh8DYsWO/9ufu46KLLgogcN99933h+PTp0wMIvPbaa6FjHTt2DFx00UVfsu3buM8DnZ07dwYQuJ/AY/vpdT8BBHbu3PmNbHvooYcCiYmJgYiIiMCJJ54YWLNmzd89/+mnnw6ccMIJgdatWweOPPLIwMUXXxzYsWPHvzI8f5eWlcZ/EPX19V599VU/+9nPHHHEEX/33LPPPvsLPx977LGgb9++Xzq+devWL73/3HPP/YLIWlRUlH79+lmzZs0/fGKdNWuW4447Tq9evaxevdrTTz+tffv2f/c9/5uve5+vvPKK3r17S0hI+MLxiy++WH19/ZdWRf379//CzyeccAJ85f1/3wwbNuwLPw8dOhSsWrXqH773P+k+v29a7efXNyU3N9fVV19t8uTJ1q9fLysry1lnneXDDz/8yvNfe+01I0aMcOmll9q4caPnnnvO73//e6NGjfonrv71aHEa/0F8+umnmpqa/OhHP/qH5x5++OFf+Dk8PPxvHv/888+/9P4jjzzyK481NjbatevvC0pHREQYOnSozz//XLdu3fz0pz/9h/b+b77ufdbU1HylM4qPjw/9/n8TGxv7JTthz54938i+/U2rVq2+ZOu+v8f/vaev4j/lPv9b+Oyzz77w+t8xuf/LPffc49JLLzVq1CjHHnuse++9V0JCgocffvgrz3/zzTclJiYaP368Tp06OeWUU4wePdq6dev21+20OI3/JA4//HBhYWH+9Kc/7fdrffzxx195LDw8/B/WEbz77rumTJniJz/5iT/84Q/uueeeb3Ttr3ufsbGxtm3b9qXjVVVVoG3btt/ouv8u7N2790vOYd/f4/86hBb+Nb6LOo2EhATR0dGh1+233/6VtjQ2NiouLnbGGWd84fgZZ5yhsLDwK9+TmZnpT3/6k/z8fIFAQHV1tby8vC/tKHybtDiN/yBat27ttNNO89xzz9mxY8d+vdYLL7zwhRVIXV2dZcuWycrKEhYW9jfft3v3buedd57ExESrVq0ybtw4119/vaKioq997a97n7179/bKK6+EnMQ+5s+fLzIy0v/8z/987Wv+u7Fw4cIv/Lxo0SLQs2fP78GaFv4VKisr7dy5M/S64YYbvvK8HTt2aGpqEhcX94XjcXFxX/kQR7PTWLhwoSFDhggPD3fkkUeKiYn5yuSWb4sDNZX4gOWee+5xyimnyMjIcP311+vcubPq6mpLly41Z86cb+06YWFhfvrTn7rmmmv89a9/NWPGDJ999plbbrnl777v8ssv9+GHH3rrrbe0adPG3Xff7Y033nD++edbv369mJiYr3X9f3SfUVFRpk6d6je/+Y1evXqZMmWKww8/3MKFCy1fvtydd94pOjr6WxiJr+bNN9/8yuOnnXZaKA5TXl7+lZXjKSkpUlJSXHrppZ566inl5eU6duwY+n14eLi7777brl27/OQnP1FYWGjatGnOOussp5xyyv65of9Svos6jUMPPfQbFWEedNBBX/g5EAh86dg+SktLjR8/3pQpU2RnZ9u2bZvrrrvO5Zdf7vHHH/9nTf+7tDiN/zC6du3qrbfeMnXqVDfccIO6ujpHHnmk008/PRS3+DYYN26czz//3Pjx423fvt1xxx1n+fLlevTo8TffM3fuXE8//bR58+Y57rjj0DwB5ubmOvHEE40cOdLixYu/1vW/zn0mJycrLCx04403Gjt2rD179jj22GPNmzdvv8tr3H333V95fNWqVaHVwEsvveSll1760jlTp0518803a2pq0tTUJBAIfOH3Bx98sN/85jfGjx9v2rRpWrdu7bLLLnPXXXd96/fRwr8Pbdu2FRYW9qVVxfbt27+0+tjH7bffrkePHq677jo0Jz20adNGVlaWadOmfaMElK/LQYH/+41t4b+aiooKnTp1ctddd5k4ceL3bU4LLewXPvvsM9HR0RYgcj9dox7DsXPnzq+90sjIyJCWlmb27NmhYykpKc4555yvjIUMGjRIq1at5Obmho698cYbMjMzffTRR6GkkG+TlphGCy200MK/Cddcc425c+d64oknvPfeeyZMmODDDz90+eWXgxtuuMGIESNC5/fr188LL7zg4Ycf9sEHH3j99deNHz/eSSedtF8cBi3bUy18x/z1r3/117/+9e+e06rVd/+1DAQC/7D+JCws7G/uLbfwn8n+rNz+Zz53yJAhampq3HrrrbZt2+b444+Xn58finlt27btCzUbF198sbq6Og8++KBrr71WTEyM008/3YwZM76lu/gyLdtTLXyn3Hzzzf8wmL5lyxaJiYnfjUFBnnzySSNHjvy75/zveEUL/9ns25561v7dnjrfN9ue+k+
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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yWFyctK/39fXR2JiIgsXLvTv3Xffffzu456enk5SUhKnTp3y742OjpKSksIXvvCFiz6Pl6MEQYCZ8Y9mbLxMr380w8wIguBKX+4llXikcYXlscceswceeMDmzJljU6dOfcbPFhYWXvDvzMxMMzP7yEc+8qT3T5069aTv/+Vf/uUFxGk33HCDffSjH7Uf//jHz+qZ//3f/7295S1vsfe///0WjUZty5Yt9vrXv/4Zv/NEudjr/OEPf2gf+MAH7A1veMMF78+fP98ee+yxJ3npH/vYxy7499ve9jYzs6e8/hcigJnZkyCev/qrv7rg3+9+97stPT3dfvSjH13S4z+TfPrTn77gvNLT0+3d7373RZ3D29/+drvlllv8v5OSkuxNb3rTJV+/l6q88jK/rkaJG40rLL/85S/tt7/97UUlKVNSUi7497XXXvu074+NjT3p+6mpqU/53vj4uI2MPDNJ9HXXXWef/vSnbWxszN7+9rfbBz/4wWc93yfKxV7n0NDQUxqjm2++2f/9iXLTTTc96TzNzEZHRy/63G655RZ79NFHn/EzYQny7xqzp1vT3z3Pyykv5Bx+d/3MtIbPZf3i8vslcaNxhSUlJcVe8YpXWH9//2U/1u/i8eF71157rU2ZMuUZv9vd3W333nuvveMd77CHHnrIvvWtbz2nY1/sdd500002MDDwpPd/8YtfmJnZa1/72ud03IuRD37wg3bu3Dnr6Oh4yr8/9thj9oMf/MCysrKepKCfbk2fShlfLnkpnMPLVeJ9Gs9d4kbjCktY7fK9733Pzp8/f1mPtW3btgsikF//+te2Y8cOe+9732uveMUrnvZ7v/nNb+yTn/yk3XrrrfajH/3ISktLbcmSJfaTn/zkoo99sdf5gQ98wH74wx96IxHKd77zHXv1q1/9tMnqFyJ/8zd/Y6961avsr//6r+03v/nNk/6+ePFi++Uvf2nLli170t+++93vXvDvBx980E6dOmXve9/7/HuX23P/13/9Vw+fmQmae/DBBy84h7jE5VJJ3Gi8BORb3/qW/c///I+9853vtI0bN9qPfvQja2xstE9/+tP261//+pId5xWveIV98IMftO9///vW3NxsH/jAB+xXv/qV3X///c/4vUWLFtnp06fte9/7nl1//fW2bt06e9vb3mZ33XWXrxK6GLmY67zvvvssMTHR3v/+99t3v/td2717txUVFdmuXbussrLSkpOTX8gSPKX88R//sdXX11tXV5e94x3vsNraWjtw4IBt3brVPvzhD9u3v/1tW7x4sX3qU5960ncPHz5sCxcutL1791ptba194hOfsD/6oz+y//N//o//zFvf+lYbHBy0b3/723bw4EE7fPiw/9sjjzxiW7duta1bt9rZs2ftscce8/9+5JFH/OceeOABe+UrX2lf+9rXnnQOg4OD9olPfMJ27dplDQ0Ndvvtt1tSUpItXbr0Eq/U1SfxnMZzl6v1ul5Wkp2dbQcPHrT77rvPli5dar/+9a8tNTXVZs6c6fMWl0JKS0ttbGzMvvSlL9ng4KC95S1vsV27dtl73vOep/1ObW2tbdmyxTZv3mxvectbzEw5k3/7t3+znJwc+9znPmff//73L+r4F3Odb37zm+3BBx+0u+++2774xS/a6OioZWZm2ubNm23+/PkveA2eTmb
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9f1zdd3n3f5VKi5aWiVKxYqk4dEwUhxVFURQrG4qiQ5k4lDqUW/bFieLNXTSxOFosThwblfamYWXScUcWIpVmpBjao7DCSDBny9ETjyEl8aQkLEw+ehSKyPP7x3XeF4n9lbZJ08ZzPR7n0eZwzvm8z+d8Pu/r1+v1ui4CkJjFLGYxi1nMzsDizvcCYhazmMUsZs8dizmNmMUsZjGL2RlbzGnELGYxi1nMzthiTiNmMYtZzGJ2xhZzGjGLWcxiFrMztpjTiFnMYhazmJ2xxZxGzGIWs5jF7Izteed7ATGLWcxidj5sdXVV1tbWzukxLrnkEklISDinx3imLeY0YhazmP3e2erqqqQ8//kSOcfHSU1NlQcffPCCchwxpxGzmMXs987W1tYkIiKfE5FLz9ExHhaRvz9+XNbW1mJOI2Yxi1nMLgS7TETO1XZ+oW6usUZ4zGIWs5jF7IztQnWGMYtZzGL2hBYffZwL++05+tzzbbFMI2Yxi1nMYnbGFss0YhazmP3e2vPk3G2CF+rmGss0YhazmMUsZmdsMacRs9Osr69PLrroIpmfnz/fS3lc8/l8ctFFF8mOHTvO2mcGg0G5/vrr5eqrr5ZLLrlEXvziF8t73vMeGR0dfVqfOzAwIJ2dnY94fmFhQbZs2SL5+fny4he/WK644gp5wxveID09PfLb3z5xRfzJnIOWlha56KKLnsryL2h7nmz2Nc72I5ZpxCxmF7Dt3LlT/uRP/kRmZmZk69atsmfPHrnttttEROQ973mPNDU1PeXPfiynMTs7K9/61rfkXe96l3zrW9+SoaEhKSwslLq6OvnUpz71lI/3aPbJT35Spqamzupnxuz30y5UZxizmJ2xzc3Nycc+9jF57WtfKz6fTy677DL724c//GGpq6uTv/u7v5Pc3Fz5yEc+ctaO+9a3vlXm5uYkPn4Tv/Pud79b1tbW5Jvf/KZ85StfkZe//OVn5VhpaWmSlpZ2Vj7rQrJYT+PJWyzTeJbYwYMHpbKyUl7ykpfIpZdeKldffbV8/OMfl4cffthKRvfdd5986lOfkhe96EVyxRVXyMc//nH51a9+JcePH5eKigr5gz/4A3npS18qX/jCF+Q3v/mNffb8/LxcdNFF8rWvfU1uvvlmufrqqyUhIUGuvfZaGR8ff9x1/fSnP5UrrrhCPvzhD5/2/H333ScXX3yxbN269ax9T2eBQEDKysrkhS98oSQkJMjrX/96+ed//udH/bzf/OY38qUvfUmuuuoqueKKK+S6666Tn/zkJ09qTX//938vv/71r6Wrq+s0h+Gso6ND/uAP/kBuvvlme879Jt/73vfkE5/4hCQnJ8tll10m73vf++Tw4cP2une84x2ya9cuOXLkiFx00UX2EBF54QtfeJrDcJaXlyciIuFw+IzWv7q6Kp///OclNTVVnv/850thYaHs37//tNc8WnnqmmuukdLSUtm9e7fk5ubK85//fPmjP/oj+ad/+qczOm7Mfj8t5jSeBfaf//mf8sY3vlGmp6flb//2b2V0dFS++tWvysMPP3yaoNonP/lJSUpKku3bt8uWLVtkYGBAPvWpT8l73/teycnJkR07dkh1dbV0dHRIV1fXI45z6623yu7du6Wzs1PuuusuiYuLk5KSksctW2RmZsodd9whO3bskH/8x38UEZHjx4/LRz/6UXnb294mLS0tZ/V7/uQnP5G3vOUt8qMf/Uj+8R//UXbu3Cl//Md/LNdff7187Wtfe8RnfvGLX5QjR47Itm3bpKenR37605/K+973vjPqCTj73ve+Jy95yUvkzW9+86P+/QUveIEUFxdLIBCQ48ePn/a3mpoaiYuLsxLUzMyMvOMd75Dl5WUREenu7pa3vvWtkpqaKlNTU/Z4PLvvvvvkec97nrzqVa86o/V/8YtflMOHD8u2bdtk27Zt8tBDD8k73vGO05zXY9l//ud/SmNjo3zuc5+Tu+++W173utdJTU2N/OAHPzijYz/X7Vz1M84l/+O8GzE771ZUVMQf/MEfsLi4+Kh/v/POOxERPvOZz5z2/Ac+8AFEhG984xunPf/617+e3Nxc+/eDDz6IiHDVVVexsrJiz//iF78gOTmZ66677hHHevDBB0/7zLq6Oi655BKmpqYoKiriyiuv5KGHHjqr3xPgIx/5CJdeeilHjx497fmSkhJe8IIXsLy8DMD999+PiPCe97zntNcNDg4iIkxNTZ3xuhISEnjzm9/8uK/5P//n/yAi/Md//AeweZ4++MEPnva6f//3f0dEuOmmm+y59773vaSnp5/RWu69917i4uL43Oc+94SvdecgNzeXjY0Ne35+fp74+Hg++clP2nM33ngjv3u7p6enk5CQwJEjR+y5lZUVkpOT+V//63+d0Xqfq+Z5HiLCP4pwxzl6/KMIIoLneef7655Vi2Ua59l+/etfy/e//32pqKiQlJSUx31taWnpaf/OysoSEZH3vve9j3j+yJEjj3j/n//5n58mnHb55ZfL+973PvnBD37whJH53//938trXvMaeec73yk+n0/uuusueelLX/q47znVzvR73nffffKud73rEbX866+/Xn79618/Ikp///vff9q/X/e614mIPOr3fzoGiIg8osTzl3/5l6f9+y1veYukp6fL/fff/6SP8cMf/lAqKirkzW9+s3z1q1894/d99KMfPW1d6enp8pa3vOWM1vD6179err76avt3QkKCvOpVrzrr5+/Zas87x48L0WJO4zzbz3/+c/ntb397Rk3K5OTk0/59ySWXPObzq6urj3h/amrqoz63trYmkcjji0Rfeuml8tGPflRWV1fl9a9/vbz73e9+wvWeamf6PZeWlh7VGV111VX291PtRS960SPWKSKysrJyxmu7+uqr5cEHH3zc1zgI8u86s8c6p7+7ziey/fv3y7vf/W7JzMyUf/u3f7PvcSb2dNbwu+dPRM/hkzl/Mfv9spjTOM+WnJwsF1988Rk3PZ+O/W493j13ySWXSGJi4uO+NxAIyJe//GV54xvfKD/84Q/lG9/4xpM69pl+zxe96EWysLDwiOcfeughERF58Ytf/KSOeyb27ne/W06cOCHT09OP+vdf//rX8r3vfU+ys7MfsUE/1jl9tM34sWz//v1y3XXXSXp6uoyNjUlSUtKTWv/ZWMPvq8V4Gk/eYk7jPJtDu/zrv/6rnDx58pwea+fOnadlIL/85S9lZGRE3va2t8nFF1/8mO/71a9+JR/+8Iflmmuukfvvv1/q6+vlhhtukP/4j/8442Of6fd817veJffdd585CWff+ta35AUveMFjNqufjn3uc5+T5z//+fKZz3xGfvWrXz3i71/4whfk5z//uWzZsuURf/uXf/mX0/79wAMPyJEjR+Qd73iHPfd4kbvf75frrrtO0tLS5Hvf+5688IUvfNLr/3//7/9Z+UxES3MPPPDAaWuIWczOlsWcxrPAvvGNb8hvfvMbedOb3iR33HGH3H///bJ9+3b56Ec/Kr/85S/P2nEuvvhiefe73y3f+c53ZGhoSN71rnfJL37xC/nKV77yuO/79Kc/LUePHpV//dd/lcsuu0w6Ojrkda97nXzkIx8xlNCZ2Jl8zxtvvFHi4+Plne98p/zLv/yLjI6OSlVVlezatUtaWlqedBR+JvbKV75S+vv75cCBA/LGN75Rtm3bJhMTE7Jjxw55z3veI7fddpt84QtfkL/4i794xHv37dsnn/zkJ+Xee++Vbdu2yQc/+EF52cteJn/9139tr3nta18ri4uLctttt8nMzIzs27dPRBQpdt1114mIyM033yw//elPZXp62h7//d//bZ/x/e9/X573vOfJ3/7t3z5iDYuLi/LBD35Qdu3aJQMDA3LddddJQkKCNDc3n+1TdcF
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdfVyW5f3/8WfDJDGSwkHSSPziZFEUJouikZoWRWm6bJTmXdE0bzKd5V1lWqamaVlqFsvSslyaptNFaZouGk0nRdEonRQTw8mCSAy+sev3B3R959qNW3bzc7wej/NRnFzXeX6ug8vjOI/PzftzTCAQCGiiiSaaaKKJw+A737QBTTTRRBNN/P9D06LRRBNNNNHEYdO0aDTRRBNNNHHYNC0aTTTRRBNNHDZNi0YTTTTRRBOHTdOi0UQTTTTRxGHTtGg00UQTTTRx2DT7pg1oookmmvgm+PTTT9XV1X2l92jevLnjjjvuK73H103TotFEE0381/Hpp5/6bosWPvmK73PyySfbvXv3UbVwNC0aTTTRxH8ddXV1PsFohH5F96jF3A8/VFdX17RoNNFEE00cDbTEVzWdH62Ta1MgvIkmmmiiicPmaF0Mm2iiiSb+Jcc2Hl8F9V/Rdb9pmnYaTTTRRBNNHDZNO40mmmjiv5ZmvrpJ8GidXJt2Gk000UQTTRw2TYtGE4fw+OOPO+aYY5SUlHzTpvxTNm/e7JhjjrFixYojds133nnHoEGDnHrqqZo3b65169YyMzP96le/+lLXXbZsmfvvv//v/i47O9sZZ5whIiJCixYtdOjQwS233GL//v3/8rr/zhjceeedjjnmmH/X9KOeZv4vrnGkj/90p7FgwQLt2rVz3HHH6dSpk61btx7W+1599VXNmjWTnJz8H9758GhaNJpoAs8995yOHTt6/fXX3X777TZs2GDhwoUgMzPTrbfe+h9f+58tGgcOHPDTn/7UsmXLrFu3TnZ2tkceeUTnzp2PaLVydna211577Yhdr4mvhuXLl7v55ptNmjTJjh07pKenu/TSS33wwQf/9H1VVVUGDBigW7duX7mNR6vbrYkmDptdu3bp37+/pKQkmzdv1rJly+DvrrrqKjfeeKNZs2Y5++yzXX311Uf03k8//fQhP1944YXCw8MNGzbMr3/9axdeeOERuc/3vvc93/ve947ItY4mvo6Yxscff3zI+dDQUKGhf7+kcM6cOa6//nrZ2dng/vvvl5uba+HChaZPn/4P7zVkyBB9+/YVEhJi9erVR8L8f0jTTuNbwu9//3vXXHON6OhooaGhTj31VAMGDFBbWxt0Gb388stuuOEGkZGRTjjhBAMGDHDgwAEffvihn/zkJyIiIrRp08bYsWP97//+b/DaJSUljjnmGPfee69p06Y59dRTHXfccVJSUmzcuPGf2vXee+854YQTXHXVVYecf/nll4WEhLj99tuP2Of8nLfeessVV1zhxBNPdNxxx0lOTvbEE0/83ev97//+r0mTJomJiXHCCSfo3r274uLif8umuXPnqqmp8eCDDx6yYHzOfffdJyIiwrRp04LnPv+bvPTSSwYPHuykk07SsmVLPXr08Ic//CH4ui5duli3bp3333/fMcccEzz+Gd/97ndBs2aHN519+umnxowZ4+STT9aiRQudO3e2Y8eOQ17z99xTcXFxLr/8ci+88IKzzz5bixYt/OAHP/DYY48d1n2bODxiY2O1atUqePyjyb+urs727dtdfPHFh5y/+OKL5eXl/cPrL1682K5du0yePPmI2v2PaFo0vgW88cYbfvjDH/rNb35j6tSpfvWrX5k+fbra2tpDXBTZ2dlatWrlmWeecdttt1m2bJkbbrjBZZdd5qyzzrJixQoDBw503333efDBB79wn4ceesgLL7zg/vvv9+STT/rOd77j0ksv/adui+9///seffRRK1asMG/ePPDhhx/q27ev9PR0d9555xH9nMXFxdLS0rz99tvmzZvnueeek5iYaNCgQe69994vXHPixInef/99OTk5HnnkEe+9954ePXqorz/8LPmXXnpJdHS0c8899+/+PiwszMUXX+ytt97y4YcfHvK766+/3ne+852gC+r111/XpUsXlZWVaPBPn3/++U4++WSvvfZa8PhbPvvsMwcOHPDqq6+6/fbb/ehHP3L++ecflv0TJ070hz/8QU5OjpycHGVlZbp06XLI4vWPeOONN/zsZz8zevRozz//vDPPPNP1119vy5Yth3Xv/9/5quIZf13/UVpaqqqqKnhMmDDh79qyf/9+9fX1oqOjDzkfHR39he/d57z33nvGjx/vqaeeOuyHjC9NoIlvnAsvvDAQERER2Ldv39/9/eLFiwMIjBw58pDzvXr1CiAwZ86cQ84nJycHzj777ODPu3fvDiAQExMTOHjwYPD8xx9/HDjppJMC3bt3/8K9du/efcg1b7zxxkDz5s0Dr732WuDCCy8MREVFBcrKyo7o5wwEAoGrr746EBoaGvjggw8OOX/ppZcGwsLCApWVlYFAIBDYtGlTAIHMzMxDXveLX/wigMBrr7122HYdd9xxgXPPPfefvmbcuHEBBPLz8wOBwP+NU+/evQ953auvvhpA4O677w6eu+yyywJt27b9h9d+7bXXAggemZmZgY8//vhf2v35GJx99tmBv/zlL8HzJSUlgWOPPTaQnZ0dPDd58uTA3/5zb9u2beC4444LvP/++8FzBw8eDJx00kmBIUOG/Mv7//9MVVVVAIF5BB79io55jX/Pqqqqw7Jpz549AQTy8vIOOX/33XcHEhISvvD6zz77LJCSkhJYuHBh8NzkyZMDZ5111pcam39F007jG6ampsYrr7ziJz/5SdAt8Y+4/PLLD/n5tNNOA5dddtkXzr///vtfeP+Pf/zjQ4TTwsPD9ejRw5YtW/7lk/ncuXOdfvrpunbtavPmzZ588klt2rT5p+/5aw73c7788su6desmNjb2kPODBg1SU1Pzhaf0nj17HvLzmWeeCX/3838ZAoEAfMHF069fv0N+TktL07ZtW5s2bTrsayclJfntb3/rlVde8cADD9ixY4eLLrpITU3NYb2/b9++h9jVtm1baWlph2VDcnKyU089Nfjzcccdp0OHDkd8/L6tNPuKj3+H1q1bCwkJ+cKuYt++fV/YfUB1dbVt27YZMWKEZs2aadasmalTp3rjjTc0a9bMyy+//G9acHg0LRrfMB999JH6+vrDClKedNJJh/zcvHnzf3j+008//cL7Tz755L97rq6uzief/HOR6NDQUH379vXpp59KTk520UUX/Ut7/5rD/ZwVFRV/dzGKiYkJ/v6viYyM/IKdcPDgwcO27dRTT7V79+5/+prPU5D/djH7R2P6t3b+M1q2bCklJcUFF1zgpptusmrVKvn5+RYtWnRY7/8yNvzt+NEwhv/O+DVxZGjevLlOnTp56aWXDjn/0ksvSUtL+8LrTzjhBIWFhQoKCoLH0KFDJSQkKCgokJqa+pXY2bRofMOcdNJJQkJC/PGPf/zK7/X3/KIffvih5s2bO/744//pe9966y133HGHH/7wh373u9+ZM2fOv3Xvw/2ckZGR9u7d+4XzZWVlaHgaO9JcdNFFysvL/eY3v/m7v6+pqfHSSy8544wzvjBB/6Mx/XuT8eGSkpLiO9/5jnffffewXv9V2PDfwretTmPMmDFycnI89thj3nnnHaNHj/bBBx8YOnQomDBhggEDBoDvfOc7zjjjjEOOqKgoxx13nDPOOOPvJnUcCZoWjW+Yz7Ndnn322cMq6PoyPPfcc4fsQKqrq61du1Z6erqQkJB/+L4DBw646qqrxMXF2bRpkxEjRhg/frz8/PzDvvfhfs5u3bp5+eWXg4vE5yxZskRYWNg/DFZ/GUaPHq1FixZGjhzpwIEDX/j92LFjffTRR2677bYv/O6pp5465Oe8vDzvv/++Ll26BM/9u0/ur7zyir/85S/at29/WK9/+umng+4zGlxzeXl5h9jQxP8fZGVluf/++02dOlVycrItW7ZYv369tm3bgr179/7Lmo2vmqZF41vAnDlz/O///q/
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdf1zV5f3/8Xsdg4kRFCZJI3E4WRipk2LRSE0XhWlaFqX5q2xalmWz1DRN+6GmaVlalmVpWixL0+miNH+wKJpOi2TDZFJMCicLI3Ew2fn+AZ7vp/2srR9b43G7nZvy5n3e1+t9ncN1va/r9Xo9X0cFg8GgJppoookmmvgMHP11G9BEE0000cR/D02TRhNNNNFEE5+ZpkmjiSaaaKKJz0zTpNFEE0000cRnpmnSaKKJJppo4jPTNGk00UQTTTTxmWmaNJpoookmmvjMNPu6DWiiiSaa+Dr44x//qK6u7kttIywszLe+9a0vtY2vmqZJo4kmmvif449//KMTmzf3yZfczkknnWTPnj3fqImjadJoookm/ueoq6vzCcYg/EtqoxZzP/xQXV1d06TRRBNNNPFNoAW+rOH8mzq4NjnCm2iiiSaa+Mx8UyfDJppoool/yjGNry+D+i/pul83TSuNJppoookmPjNNK40mmmjif5ZmvrxB8Js6uDatNJpoookmmvjMNE0aTXxunnzySUcddZTS0tKv25R/yKZNmxx11FFWrFjxhV3ryCsQCDjxxBP17t3b1q1b/+r8oUOHfur8sLAwiYmJxo4d6+OPP/6n7d1xxx2OOuoo+/fv/6fnduvWTbdu3f6V2/qfp5n/79f4ol/f1JXGN/W+mmjiS+Gee+7RvXt3f/rTn2zfvt3UqVN17drVjh07fPe73/3Uuc2bN/fqq6+CqqoqK1ascN9993n77be9/PLLX5hNCxYs+MKu1UQT/4ymSaOJJj4H3/3ud/3gBz8AGRkZoqOjDRkyxNNPP23q1KmfOvfoo48OnQvnn3++3/72t1555RV79uzRtm3bL8Sm5OTkL+Q6/4s0+TQ+P03bU/9F/OY3v3HFFVeIjY0VHh7ulFNOMXjwYLW1taEto1dffdU111wjJibGcccdZ/DgwQ4ePOjDDz902WWXiY6O1rp1a2PHjvWnP/0pdO3S0lJHHXWUe++919133+2UU07xrW99S2pqqg0bNvxDu959913HHXecSy+99FPHX331VYFAwO233/6F3ecR3nnnHRdddJHjjz/et771LZ06dfLUU0/9zev96U9/MnHiRHFxcY477jg9e/ZUXFz8uWz6e6SmpoKKioov5fyysjIXX3yx4447TlRUlCuvvNLvf//7T53zl9tTRz7L2bNnmzNnjrZt2zr22GOdddZZ3njjjc/UbhNN/D2aJo3/Et566y1nnHGGN954w7Rp0/z85z83ffp0tbW1nxJdGz58uKioKM8++6xJkyZZvny5a665Rq9evXTs2NGKFSsMGTLEfffd58EHH/yrdh566CEvvfSS+++/39NPP+3oo492wQUXeP311/+ubd/97nc99thjVqxYYd68eeDDDz80YMAAGRkZ7rjjji/0PouLi6Wnp9u5c6d58+Z54YUXJCcnGzp0qHvvvfevrnnbbbd57733LFq0yKOPPurdd9/Vu3dv9fX/fiT9nj17QPv27T/z+c2aNfOd73znM53fr18/7dq1s2LFCnfccYdVq1bJzMz81IT/95g/f75XXnnF/fffb9myZQ4ePCgrK8uBAwc+U9v/C3xZ/owvM//jayfYxH8F5557bjA6Ojq4b9++v/n7xYsXBxG84YYbPnW8b9++QQTnzJnzqeOdOnUKfv/73w/9vGfPniCCcXFxwUOHDoWOf/zxx8ETTjgh2LNnz79qa8+ePZ+65rXXXhsMCwsLvv7668Fzzz032KpVq2B5efkXep/BYDB4+eWXB8PDw4Pvv//+p45fcMEFwYiIiGBVVVUwGAwGN27cGEQwKyvrU+f99Kc/DSL4+uuvf2a7jlwrJycn+Kc//SlYU1MTfO2114JJSUnB5OTk4EcfffSp84cMGRJs0aJF8E9/+lPwT3/6U3D//v3Bhx9+OHj00UcHb7vttn/a3pQpU4IIjhkz5lPHly1bFkTw6aefDh3r2rVrsGvXrqGfj3yWKSkpwcOHD4eOv/nmm0EEn3nmmc98399UDhw4EERwHsHHvqTXPIIIHjhw4Ou+3S+UppXGfwE1NTU2b97ssssuc+KJJ/7Dcy+88MJP/XzqqaeCXr16/dXx995776/ef/HFF39KXC0yMlLv3r1t2bLlnz6Zz507V4cOHXTv3t2mTZs8/fTTWrdu/Q/f83/5rPf56quv6tGjh/j4+E8dHzp0qJqamr9aFfXp0+dTP59++unwN+//n5Gdne2YY44RERHh7LPP9vHHH1u7dq3o6Oi/OvfgwYOOOeYYxxxzjJYtW7r22mtlZ2e7++67P3N7AwcO/NTPl112mWbNmtm4ceM/fW+vXr0EAoHQz//OfX9TafYlv76JNE0a/wV89NFH6uvrffvb3/6n555wwgmf+jksLOzvHv/jH//4V+8/6aST/uaxuro6n3zyj4Wkw8PDDRgwwB//+EedOnXyox/96J/a+3/5rPdZWVn5NyejuLi40O//LzExMX9lJxw6dOhz2QczZ870y1/+0ubNm02cOFFFRYW+fft+yt9yhObNm/vlL3/pl7/8pTVr1ujWrZtnnnnGjBkzPnN7f/l5NGvWTExMzF/d49/ii7zvJpo4QtOk8V/ACSecIBAI+N3vfvelt/Xhhx/+zWNhYWGOPfbYf/jed955x+TJk51xxhl+9atfmTNnzudq+7PeZ0xMjA8++OCvjpeXl4OWLVt+rnY/D9/5znekpqY655xz3HXXXaZNm+att976m/6ho48+WmpqqtTUVBdeeKGXXnpJhw4dTJ06VVlZ2Wdq7y8/j8OHD6usrPyrCaGJf42mPI3PT9Ok8V9A8+bNde3a1XPPPfeZkr3+HV544YVPrUCqq6utWbNGRkbGp7Y6/pKDBw+69NJLJSQk2Lhxo+uvv9748eMVFBR85rY/63326NHDq6++GpokjrBkyRIRERGfCnP9srn11lu1a9fOjBkzVFdX/8Nzw8PDzZ8/3x//+Ed33XXXZ7r+smXLPvXzT3/6U4cPH25K5mvia6Np0vgvYc6cOf70pz9JS0vz2GOP2bhxo2effdaAAQP+6WD1eQgEAn70ox9ZuXKl559/Xo8ePXz88cd/lYPwl4wcOdL777/vueee06JFC/fdd5/TTz/d5Zdfrqqq6jO3/1nuc8qUKY455hjdu3e3bNkyP//5z1155ZXWrl3rjjvuEBUV9e90wefimGOOcc8996isrPTAAw/80/O7du0qKyvL4sWLQ5FX06ZN06xZM5s3b/6r81944QW33nprKApqxIgROnbs6LLLLvvC7+V/kSafxuenadL4L6Fjx47efPNNXbp0MWHCBOeff75x48YJDw8P+S2+CK6//no/+tGPjB492oABAxw+fNjatWudffbZf/c9ixYt8vTTT5s/f74OHTqgwWeSk5PjD3/4g2HDhn3m9j/LfSYlJcnPz5eUlGTUqFH69u3rnXfesXjxYrfccsu/1wH/Apdeeqm0tDRz5sz5TOGsM2fOVF9f78477wR//vOf1dfXCwaDf3XuCy+84De/+Y2LL77Y5MmT9e7d28svv/yFfuZNNPF5OCr4t76pTfzPUVpaqm3btmbNmmXs2LFftzlNNPGl8vHHH4uKirIUEV9SGzUYhAMHDjjuuOO+pFa+eppWGk000UQTTXxmvqnbbk38h/HnP//Zn//85394TrNmX/3XMRgM/tP8k0Ag4KijjvqKLGriq+TLzNz+pmaEN600mgAJCQmCweCXtjU1bdq0UKLb33t9HVLrTz311D+16285qJto4n+VJp9GE18J5eXlfxUi+5ecfvrpX7mDt7KyMhTF9PdISkoSGRn5FVnUxFfBEZ/GCl+uT6O/b55Po2l7qomvhLi4uFDG9n8SMTExTYlyTTTxOWiaNJpooon/WY5khH9
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAINCAYAAADC/yOUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdf1yV9f3/8Xs7BhMjKBwkjcKPLorCcLJYNEzTojRNy2ZpapZlmVqapaZpmqaWaVlaLhelabosTacbZWm6aPTRSVEsTCfFwmBSGImDyc73D47n+3G1rdavrfG43c6tuLjO9X6di+P7fb1fP56vI4LBYFATTTTRRBNNfAa+800b0EQTTTTRxH8OTYtGE0000UQTn5mmRaOJJppooonPTNOi0UQTTTTRxGemadFoookmmmjiM9O0aDTRRBNNNPGZaVo0mmiiiSaa+Mw0+6YNaKKJJpr4Jvjzn/+svr7+Kx0jIiLCd7/73a90jK+bpkWjiSaa+K/jz3/+s+81b+7jr3ic4447zu7du79VC0fTotFEE03811FfX+9jjELkVzRGHea+/776+vqmRaOJJppo4ttAC3xV0/m3dXJtCoQ30UQTTTTxmfm2LoZNNNFEE/+UI0Ovr4KGr+i63zRNO40mmmiiiSY+M007jSaaaOK/lma+uknw2zq5Nu00mmiiiSaa+Mw0LRpN/Es89thjjjjiCKWlpd+0Kf+QTZs2OeKII6xcufILXWfUqFGOOOIIb7311t89Z8KECY444ggvvfSSI444wrhx4/7uuW+//bYjjjjCyJEjP/G7O+64wxFHHGHv3r3/1K5OnTrp1KnTZ/oMTXySZv5/XOPLfjXtNJpo4r+Yq6++Gjz66KOf+vu//vWvFi9eLD093dlnn61Dhw4WL16soeHTw6G5ubmHXfdfZcGCBRYsWPCFrtFEE5+HpkWjiSY+A6eddpozzjjDkiVLHDx48BO/f+655/zxj38MLwJXX321PXv2+NWvfvWJcxsaGixevFiHDh2cfvrpX8iu1NRUqampX+ga/800+4pf30aaFo3/MN566y2XX365hIQEkZGRTjjhBAMHDlRXVxd2Gb344ouuueYacXFxjj76aAMHDrR//37vv/++n/70p2JjY7Vq1cqYMWP85S9/CV+7tLTUEUcc4e677zZ9+nQnnHCC7373uzIyMrzwwgv/0K63337b0Ucf7dJLLz3s+IsvvigQCLj99tu/tM95iDfeeMNFF13kmGOO8d3vfld6errHH3/8U6/3l7/8xYQJEyQmJjr66KN17dpVSUnJ57Lp6quv9v7773/qQpCbmysyMlL//v1Bv379NG/ePLyj+L8899xz3nvvPVddddU/HK+srMzFF1/s6KOPFhMT44orrvCnP/3psHP+1j116G84e/Zsc+bM0bp1a0cddZQzzzzTb3/728/1eZto4tNoWjT+g3jttdf86Ec/8tvf/tbUqVP96le/MmPGDHV1dYcJrw0ZMkRMTIzly5ebOHGiZcuWueaaa3Tv3t3pp59u5cqVBg0a5N577/XAAw98YpwHH3zQr3/9a/fdd58nnnjCd77zHRdccIFXXnnl79r2gx/8wCOPPGLlypXmzZsH3n//ff369ZOdne2OO+74Uj9nSUmJrKwsb775pnnz5nnmmWekpqa68sor3X333Z+45m233eadd96xaNEiP/vZz7z99tt69Ojxd91Hn8bll18uKirqEy6qDz/80LPPPqt3796OOeYYEBMT45JLLrF27dpPTPS5ubm++93v6tev3z8cr3fv3tq2bWvlypXuuOMOq1evlpOTc9hC//eYP3++559/3n333Wfp0qX279+vW7du9u3b95k/738DX1U846us//jGCTbxH8M555wTjI2NDVZWVn7q73Nzc4MIjhgx4rDjvXr1CiI4Z86cw46np6cHf/jDH4Z/3r17dxDBxMTE4IEDB8LHP/roo+Cxxx4b7Nq16yfG2r1792HXvP7664MRERHBV155JXjOOecE4+Pjg+Xl5V/q5wwGg8HLLrssGBkZGXz33XcPO37BBRcEo6KigtXV1cFgMBjcuHFjEMFu3boddt4vfvGLIIKvvPLK57Jt0KBBwSOPPDJYUVERPvbAAw8EEXz++ecPO/fQ2P/3vldVVQUjIyOD/fv3/7tjTJ48OYjgqFGjDju+dOnSIIJPPPFE+NjZZ58dPPvss8M/H/obpqWlBQ8ePBg+/uqrrwYRfPLJJz/X5/22sm/fviCC8wg+8hW95hFEcN++fd/0x/1Sadpp/IdQW1vrpZde8tOf/tT3vve9f3juhRdeeNjPp5xyCujevfsnjr/zzjufeP/FF198mMBadHS0Hj162Lx58z99Mp87d65TTz1V586dbdq0yRNPPKFVq1b/8D3/l8/6OV988UVdunSRlJR02PErr7xSbW3tJ3ZFPXv2POzndu3awad+/n/E1Vdf7S9/+YslS5aEj+Xm5jrxxBN16dLlsHPPPvtsbdq0OcxFtXTpUnV1df/UNYWwq+sQP/3pTzVr1szGjRv/6Xu7d+8uEAiEf/5XP++3naaYxuenadH4D+HDDz/U0NDg+9///j8999hjjz3s54iIiL97/M9//vMn3n/cccd96rH6+noff/yPxaQjIyP169fPn//8Z+np6c4999x/au//5bN+zqqqqk9djBITE8O//7/ExcV9wk44cODA57IvOzvbSSedFF4IXn/9db/73e8MHjzYEUcccdi5RxxxhKuuukpRUZGtW7eicYFp3bq1zp07/9Ox/vbv0KxZM3FxcZ/4bJ/Gl/V5m2jib2laNP5DOPbYYwUCAX/84x+/8rHef//9Tz0WERHhqKOO+ofvfeONN0yaNMmPfvQjv/vd78yZM+dzjf1ZP2dcXJw9e/Z84nh5eTlo2bLl5xr383DVVVd58803vfrqqx599FHf+c53XHnllZ967pVXXikQCHj00Ue99tprtm/f7qqrrvrEAvNp/O3f4eDBg6qqqj6xIDTxr9NUp/H5aVo0/kNo3ry5s88+21NPPfWZir6+CM8888xhO5Camhpr166VnZ19mMvjb9m/f79LL71UcnKyjRs3Gj58uHHjxikoKPjMY3/Wz9mlSxcvvvhieJE4xOLFi0VFRfnxj3/8mcf8vAwaNEizZs0sXLjQ0qVLdenSxYknnvip5yYmJjr//PM9+eST5s+f7zvf+Y5BgwZ9pnGWLl162M+/+MUvHDx4sKmYr4lvlKZF4z+IOXPm+Mtf/iIzM9Mjjzxi48aNli9frl+/fmpqar60cQKBgHPPPdeqVas8/fTTunTp4qOPPjJlypR/+L7rrrvOu+++66mnntKiRQv33nuvdu3aueyyy1RXV3/m8T/L55w8ebIjjzxS586dLV261K9+9StXXHGFdevWueOOO8TExHyRW/APOe6443Tr1k1ubq69e/f+0wK9q6++WnV1tUWLFjnvvPMOi8NMnTpVs2bNvPTSS5943zPPPOPWW28NZ0ENHTrU6aef7qc//emX/pn+W2mKaXx+mhaN/yBOP/10r776qg4dOhg/frzzzz/f2LFjRUZGhuMWXwbDhw937rnnGjlypH79+jl48KB169Y566yz/u57Fi1a5IknnjB//nynnnoqGmMmK1as8MEHHxg8ePBnHv+zfM6UlBT5+flSUlLccMMNevXq5Y033pCbm+uWW275YjfgM3D11VcLBoOOPfZYvXr1+ofnXnjhhRISEgSDwU8EwP/6179qaGgQDAY/8b5nnnnGW2+95eKLLzZp0iQ9evTw3HPPfal/6yaa+LwcEfy0b2sT/5WUlpZq3bq1e+65x5gxY75pc5po4ivjo48+EhMTYwmivqIxajEA+/btc/TRR39Fo3z9NO00mmiiiSaa+Mx8W91uTfwb8te//tVf//rXf3hOs2Zf/1cyGAz+0/qTQCDwmTKemvjP4qus3P62VoQ37TSaCJOcnCwYDH5lrqmpU6c68sgj/+Hrm5Baf/zxx/+pXZ8WqG6iif9GmmIaTXxtlJeXfyJF9m9p167d1x7oraqqsnv37n94TkpKiujo6K/Joia
"text/plain": [
"<Figure size 400x652.853 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 展示每一步的结果值从coh 阵开始\n",
"import numpy as np\n",
"from matplotlib import pyplot as plt\n",
"names=os.listdir(r\"D:\\forestHeight\\Result\\master_slave_t6_box_coh1\")\n",
"for i in names:\n",
" a=np.fromfile(os.path.join(r\"D:\\forestHeight\\Result\\master_slave_t6_box_coh1\",i),dtype=np.complex64)\n",
" a=a.reshape(6065,3716)\n",
" a_phi=np.arctan(a.imag/a.real)\n",
" plt.matshow(a.imag,cmap='jet')\n",
" plt.colorbar()\n",
" plt.title(i)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "bde68122-bb63-453b-8863-0d11c1c9bf7c",
"metadata": {},
"outputs": [],
"source": [
"a=np.fromfile(os.path.join(r\"D:\\forestHeight\\Result\\master_slave_t6_box_coh1\",i),dtype=np.complex64)\n",
"a=a.reshape(6065,3716)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "df2d93f6-305a-4244-b35e-2e3109853639",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.0"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "a9452c64-a1bd-4a40-9c6b-f3b0aeaf8170",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "3e7d6732-f95b-4fce-99e6-0b5f334e4e4d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 26,
"id": "3959be0c-9548-4fc7-ba31-37a004fcbeac",
"metadata": {},
"outputs": [],
"source": [
"out_kz_path=r\"D:\\forestHeight\\Result\\flat_remove\\kz.bin\""
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "62498153-e1cf-4127-86fa-7c7f9c2a5444",
"metadata": {},
"outputs": [],
"source": [
"master_slave_t6_box_coh_rvog = workspace_preprocessed2_path + \"master_slave_t6_box_coh_rvog\"\"\\\\\"\n",
"os.makedirs(master_slave_t6_box_coh_rvog)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "16b83d89-271e-4454-a0ca-76da1bf298bc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"D:\\forestHeight\\vegetationHeight-L-SAR-V1.0-源码\\vegetationHeight-L-SAR-V1.0\\height_estimation_inversion_procedure_RVOG.exe D:\\forestHeight\\Result\\\\master_slave_t6_box_coh\\ D:\\forestHeight\\Result\\\\master_slave_t6_box_coh_rvog\\ D:\\forestHeight\\Result\\\\master_slave_t6_box_coh\\cmplx_coh_HV.bin D:\\forestHeight\\Result\\\\master_slave_t6_box_coh\\cmplx_coh_HHmVV.bin D:\\forestHeight\\Result\\flat_remove\\kz.bin 11 0.4 6764 0 0 5804 6764\n"
]
},
{
"ename": "Exception",
"evalue": "('\\n A processing error occured ! \\n allocation failure 1 in vector_float()', 'D:\\\\forestHeight\\\\vegetationHeight-L-SAR-V1.0-源码\\\\vegetationHeight-L-SAR-V1.0\\\\height_estimation_inversion_procedure_RVOG.exe D:\\\\forestHeight\\\\Result\\\\\\\\master_slave_t6_box_coh\\\\ D:\\\\forestHeight\\\\Result\\\\\\\\master_slave_t6_box_coh_rvog\\\\ D:\\\\forestHeight\\\\Result\\\\\\\\master_slave_t6_box_coh\\\\cmplx_coh_HV.bin D:\\\\forestHeight\\\\Result\\\\\\\\master_slave_t6_box_coh\\\\cmplx_coh_HHmVV.bin D:\\\\forestHeight\\\\Result\\\\flat_remove\\\\kz.bin 11 0.4 6764 0 0 5804 6764')",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mException\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn [17], line 9\u001b[0m\n\u001b[0;32m 5\u001b[0m file_gamma_low_file \u001b[38;5;241m=\u001b[39m master_slave_t6_box_coh \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcmplx_coh_HHmVV.bin\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;66;03m# file_gamma_high_file = master_slave_t6_box_coh + \"cmplx_coh_avg_HV.bin\"\u001b[39;00m\n\u001b[0;32m 7\u001b[0m \u001b[38;5;66;03m# file_gamma_low_file = master_slave_t6_box_coh + \"cmplx_coh_avg_HHmVV.bin\"\u001b[39;00m\n\u001b[1;32m----> 9\u001b[0m \u001b[43mPlantHeightAlg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mheight_estimation_RVOG\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmaster_slave_t6_box_coh\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mheight_estimation_inversion_rvog_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_gamma_high_file\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfile_gamma_low_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43mmaster_slave_t6_box_coh_rvog\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_kz_path\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m11\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0.4\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32mD:\\forestHeight\\vegetationHeight-L-SAR-V1.0-源码\\vegetationHeight-L-SAR-V1.0\\VegetationHeightAlg.py:359\u001b[0m, in \u001b[0;36mPlantHeightAlg.height_estimation_RVOG\u001b[1;34m(self, data_in_dir, height_estimation_RVOG_path, file_gamma_high_file, file_gamma_low_file, data_out_dir, kz_file_path, *args)\u001b[0m\n\u001b[0;32m 357\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mexists(data_out_dir):\n\u001b[0;32m 358\u001b[0m os\u001b[38;5;241m.\u001b[39mmakedirs(data_out_dir)\n\u001b[1;32m--> 359\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapi_height_estimation_RVOG\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata_in_dir\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mheight_estimation_RVOG_path\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfile_gamma_high_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 360\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_gamma_low_file\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata_out_dir\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkz_file_path\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32mD:\\forestHeight\\vegetationHeight-L-SAR-V1.0-源码\\vegetationHeight-L-SAR-V1.0\\VegetationHeightAlg.py:399\u001b[0m, in \u001b[0;36mPlantHeightAlg.api_height_estimation_RVOG\u001b[1;34m(data_in_dir, height_estimation_RVOG_path, file_gamma_high_file, file_gamma_low_file, data_out_dir, kz_file_path, *args)\u001b[0m\n\u001b[0;32m 397\u001b[0m result_tuple \u001b[38;5;241m=\u001b[39m subprocess\u001b[38;5;241m.\u001b[39mgetstatusoutput(cmd)\n\u001b[0;32m 398\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m result_tuple[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m result_tuple[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39mfind(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m result_tuple[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39mfind(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mCould not open\u001b[39m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m--> 399\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(result_tuple[\u001b[38;5;241m1\u001b[39m],cmd)\n\u001b[0;32m 400\u001b[0m shutil\u001b[38;5;241m.\u001b[39mcopyfile(config_path, os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(data_out_dir, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mconfig.txt\u001b[39m\u001b[38;5;124m'\u001b[39m))\n",
"\u001b[1;31mException\u001b[0m: ('\\n A processing error occured ! \\n allocation failure 1 in vector_float()', 'D:\\\\forestHeight\\\\vegetationHeight-L-SAR-V1.0-源码\\\\vegetationHeight-L-SAR-V1.0\\\\height_estimation_inversion_procedure_RVOG.exe D:\\\\forestHeight\\\\Result\\\\\\\\master_slave_t6_box_coh\\\\ D:\\\\forestHeight\\\\Result\\\\\\\\master_slave_t6_box_coh_rvog\\\\ D:\\\\forestHeight\\\\Result\\\\\\\\master_slave_t6_box_coh\\\\cmplx_coh_HV.bin D:\\\\forestHeight\\\\Result\\\\\\\\master_slave_t6_box_coh\\\\cmplx_coh_HHmVV.bin D:\\\\forestHeight\\\\Result\\\\flat_remove\\\\kz.bin 11 0.4 6764 0 0 5804 6764')"
]
}
],
"source": [
"# 6、 T6->RVOG->产品\n",
"height_estimation_inversion_rvog_path = os.path.join(current_path,\n",
" \"height_estimation_inversion_procedure_RVOG.exe\")\n",
"file_gamma_high_file = master_slave_t6_box_coh + \"cmplx_coh_HV.bin\"\n",
"file_gamma_low_file = master_slave_t6_box_coh + \"cmplx_coh_HHmVV.bin\"\n",
"# file_gamma_high_file = master_slave_t6_box_coh + \"cmplx_coh_avg_HV.bin\"\n",
"# file_gamma_low_file = master_slave_t6_box_coh + \"cmplx_coh_avg_HHmVV.bin\"\n",
"\n",
"PlantHeightAlg.height_estimation_RVOG(master_slave_t6_box_coh, height_estimation_inversion_rvog_path,\n",
" file_gamma_high_file, file_gamma_low_file,\n",
" master_slave_t6_box_coh_rvog, out_kz_path, *(11, 0.4))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "7ac9033a-705d-403b-b948-00e812a0728b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"D:\\forestHeight\\Result\\\\master_slave_t6_box_coh\\ D:\\forestHeight\\vegetationHeight-L-SAR-V1.0-源码\\vegetationHeight-L-SAR-V1.0\\height_estimation_inversion_procedure_RVOG.exe D:\\forestHeight\\Result\\\\master_slave_t6_box_coh\\cmplx_coh_HV.bin D:\\forestHeight\\Result\\\\master_slave_t6_box_coh\\cmplx_coh_HHmVV.bin D:\\forestHeight\\Result\\\\master_slave_t6_box_coh_rvog\\ D:\\forestHeight\\Result\\flat_remove\\kz.bin 11 0.4\n"
]
}
],
"source": [
"print(master_slave_t6_box_coh, height_estimation_inversion_rvog_path,\n",
" file_gamma_high_file, file_gamma_low_file,\n",
" master_slave_t6_box_coh_rvog, out_kz_path, *(11, 0.4))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6db87380-c199-407f-bea6-a54a1ce9f032",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}