1use serde::{Deserialize, Serialize};
2
3use crate::classification::{ClassificationInfo, Constituent, RockGroupCode, RockGroupInfo};
4use crate::types::FreeInfo;
5
6#[derive(Debug, Serialize, Deserialize)]
11#[serde(rename = "ボーリング情報")]
12pub struct Boring210 {
13 #[serde(rename = "@DTD_version")]
14 pub dtd_version: Option<String>,
15 #[serde(rename = "標題情報")]
16 pub title: Title210,
17 #[serde(rename = "コア情報")]
18 pub core: Core210,
19}
20
21#[derive(Debug, Serialize, Deserialize)]
26pub struct Title210 {
27 #[serde(rename = "調査基本情報")]
28 pub basic_info: BasicSurvey210,
29 #[serde(rename = "経度緯度情報")]
30 pub longitude_latitude: LngLat210,
31 #[serde(default, rename = "ローカル座標")] pub local_coordinates: Vec<LocalCoordinate210>,
33 #[serde(rename = "調査位置")]
34 pub survey_position: SurveyPosition210,
35 #[serde(rename = "発注機関")]
36 pub order_institution: OrderInstitution210,
37 #[serde(rename = "調査期間")]
38 pub survey_period: SurveyPeriod210,
39 #[serde(rename = "調査会社")]
40 pub survey_company: SurveyCompany210,
41 #[serde(rename = "ボーリング基本情報")]
42 pub boring_basic_info: BoringBasicInfo210,
43 #[serde(rename = "試錐機")]
44 pub drilling_machine: DrillingMachine210,
45 #[serde(rename = "エンジン")]
46 pub engine: Engine210,
47 #[serde(default, rename = "ハンマー落下用具")] pub hammer_drop_tool: Option<HammerDropTool210>,
49 #[serde(default, rename = "N値記録用具")] pub n_value_recorder: Option<NValueRecorder210>,
51 #[serde(rename = "ポンプ")]
52 pub pump: Pump210,
53 #[serde(default, rename = "櫓種類")] pub tower_type: Option<TowerType210>,
55}
56
57#[derive(Debug, Serialize, Deserialize)]
62pub struct BasicSurvey210 {
63 #[serde(default, rename = "事業工事名")] pub project_name: Option<String>,
65 #[serde(rename = "調査名")] pub survey_name: Option<String>,
67 #[serde(rename = "調査目的")] pub survey_purpose: Option<String>,
69 #[serde(rename = "調査対象")] pub survey_target: Option<String>,
71 #[serde(rename = "ボーリング名")] pub boring_name: Option<String>,
73 #[serde(rename = "ボーリング総数")] pub total_boring: Option<String>,
75 #[serde(rename = "ボーリング連番")] pub boring_serial: Option<String>,
77}
78
79#[derive(Debug, Serialize, Deserialize)]
84pub struct LngLat210 {
85 #[serde(rename = "経度_度")] pub longitude_degree: Option<String>,
87 #[serde(rename = "経度_分")] pub longitude_minute: Option<String>,
89 #[serde(rename = "経度_秒")] pub longitude_second: Option<String>,
91 #[serde(rename = "緯度_度")] pub latitude_degree: Option<String>,
93 #[serde(rename = "緯度_分")] pub latitude_minute: Option<String>,
95 #[serde(rename = "緯度_秒")] pub latitude_second: Option<String>,
97 #[serde(rename = "取得方法コード")] pub acquisition_method_code: Option<String>,
99 #[serde(default, rename = "取得方法説明")] pub acquisition_method_description: Option<String>,
101 #[serde(rename = "読取精度コード")] pub reading_precision_code: Option<String>,
103 #[serde(rename = "測地系")] pub geodetic_system: Option<String>,
105}
106
107#[derive(Debug, Serialize, Deserialize)]
112pub struct LocalCoordinate210 {
113 #[serde(rename = "座標定義")] pub definition: Option<String>,
115 #[serde(rename = "座標")] pub coordinate: Option<String>,
117}
118
119#[derive(Debug, Serialize, Deserialize)]
124pub struct SurveyPosition210 {
125 #[serde(rename = "調査位置住所")] pub address: Option<String>,
127 #[serde(rename = "コード1次")] pub code1: Option<String>,
129 #[serde(rename = "コード2次")] pub code2: Option<String>,
131 #[serde(rename = "コード3次")] pub code3: Option<String>,
133}
134
135#[derive(Debug, Serialize, Deserialize)]
140pub struct OrderInstitution210 {
141 #[serde(rename = "発注機関名称")] pub name: Option<String>,
143 #[serde(rename = "テクリスコード")] pub code: Option<String>,
145}
146
147#[derive(Debug, Serialize, Deserialize)]
152pub struct SurveyPeriod210 {
153 #[serde(rename = "調査期間_開始年月日")] pub start_date: Option<String>,
155 #[serde(rename = "調査期間_終了年月日")] pub end_date: Option<String>,
157}
158
159#[derive(Debug, Serialize, Deserialize)]
164pub struct SurveyCompany210 {
165 #[serde(rename = "調査会社_名称")] pub name: Option<String>,
167 #[serde(rename = "調査会社_TEL")] pub tel: Option<String>,
169 #[serde(rename = "調査会社_主任技師")] pub chief_engineer: Option<String>,
171 #[serde(rename = "調査会社_現場代理人")] pub field_agent: Option<String>,
173 #[serde(rename = "調査会社_コア鑑定者")] pub core_appraiser: Option<String>,
175 #[serde(rename = "調査会社_ボーリング責任者")] pub boring_manager: Option<String>,
177}
178
179#[derive(Debug, Serialize, Deserialize)]
186pub struct BoringBasicInfo210 {
187 #[serde(rename = "孔口標高")] pub surface_elevation: Option<String>,
189 #[serde(rename = "総掘進長")] pub total_drilling_length: Option<String>,
191 #[serde(rename = "柱状図様式")] pub columnar_section_style: Option<String>,
193 #[serde(default, rename = "掘進角度")] pub angle: Option<String>,
195 #[serde(default, rename = "掘進方向")] pub azimuth: Option<String>,
197 #[serde(default, rename = "地盤勾配")] pub ground_slope: Option<String>,
199}
200
201#[derive(Debug, Serialize, Deserialize)]
207pub struct DrillingMachine210 {
208 #[serde(rename = "試錐機_名称")] pub name: Option<String>,
210 #[serde(default, rename = "試錐機_能力")] pub capacity: Option<String>,
212 #[serde(default, rename = "試錐機_方法")] pub method: Option<String>,
214}
215
216#[derive(Debug, Serialize, Deserialize)]
222pub struct Engine210 {
223 #[serde(rename = "エンジン_名称")] pub name: Option<String>,
225 #[serde(default, rename = "エンジン_能力")] pub capacity: Option<String>,
227 #[serde(default, rename = "エンジン_単位")] pub unit: Option<String>,
229}
230
231#[derive(Debug, Serialize, Deserialize)]
236pub struct HammerDropTool210 {
237 #[serde(rename = "ハンマー落下用具_コード")] pub code: Option<String>,
239 #[serde(default, rename = "ハンマー落下用具_名称")] pub name: Option<String>,
241}
242
243#[derive(Debug, Serialize, Deserialize)]
248pub struct NValueRecorder210 {
249 #[serde(rename = "N値記録用具_コード")] pub code: Option<String>,
251 #[serde(default, rename = "N値記録用具_名称")] pub name: Option<String>,
253}
254
255#[derive(Debug, Serialize, Deserialize)]
261pub struct Pump210 {
262 #[serde(rename = "ポンプ_名称")] pub name: Option<String>,
264 #[serde(default, rename = "ポンプ_能力")] pub capacity: Option<String>,
266 #[serde(default, rename = "ポンプ_単位")] pub unit: Option<String>,
268}
269
270#[derive(Debug, Serialize, Deserialize)]
276pub struct TowerType210 {
277 #[serde(default, rename = "櫓種類コード")] pub code: Option<String>,
279 #[serde(default, rename = "櫓種類名称")] pub name: Option<String>,
281}
282
283#[derive(Debug, Serialize, Deserialize)]
298pub struct Core210 {
299 #[serde(rename = "土質岩種区分")] pub soil_rock_classifications: Vec<SoilRockClassification210>,
301 #[serde(default, rename = "色調")] pub colors: Vec<Color210>,
303 #[serde(default, rename = "観察記事")] pub observational_articles: Vec<ObservationalArticle210>,
305 #[serde(default, rename = "観察記事枠線")] pub observational_article_frames: Vec<ObservationalArticleFrame210>,
307 #[serde(default, rename = "標準貫入試験")] pub standard_penetration_tests: Vec<StandardPenetrationTest210>,
309 #[serde(default, rename = "標準貫入試験詳細データ")] pub standard_penetration_test_details: Vec<StandardPenetrationTestDetail210>,
311 #[serde(default, rename = "ルジオン試験")] pub lugeon_tests: Vec<LugeonTest210>,
313 #[serde(default, rename = "ルジオン試験詳細データ")] pub lugeon_test_details: Vec<LugeonTestDetail210>,
315 #[serde(default, rename = "相対密度稠度")] pub relative_density_consistency: Vec<RelativeDensityConsistency210>,
317 #[serde(default, rename = "硬軟区分判定表")] pub hardness_classification_table: Vec<HardnessClassificationTable210>,
319 #[serde(default, rename = "硬軟区分")] pub hardness_classifications: Vec<HardnessClassification210>,
321 #[serde(default, rename = "コア形状区分判定表")] pub core_shape_classification_table: Vec<CoreShapeClassificationTable210>,
323 #[serde(default, rename = "コア形状区分")] pub core_shape_classifications: Vec<CoreShapeClassification210>,
325 #[serde(default, rename = "割れ目区分判定表")] pub fracture_classification_table: Vec<FractureClassificationTable210>,
327 #[serde(default, rename = "割れ目区分")] pub fracture_classifications: Vec<FractureClassification210>,
329 #[serde(default, rename = "風化区分判定表")] pub weathering_classification_table: Vec<WeatheringClassificationTable210>,
331 #[serde(default, rename = "風化区分")] pub weathering_classifications: Vec<WeatheringClassification210>,
333 #[serde(default, rename = "変質区分判定表")] pub alteration_classification_table: Vec<AlterationClassificationTable210>,
335 #[serde(default, rename = "変質区分")] pub alteration_classifications: Vec<AlterationClassification210>,
337 #[serde(default, rename = "孔内水平載荷試験")] pub borehole_horizontal_load_tests: Vec<BoreholeHorizontalLoadTest210>,
339 #[serde(default, rename = "透水試験")] pub permeability_tests: Vec<PermeabilityTest210>,
341 #[serde(default, rename = "P波試験")] pub p_wave_tests: Vec<PWaveTest210>,
343 #[serde(default, rename = "S波試験")] pub s_wave_tests: Vec<SWaveTest210>,
345 #[serde(default, rename = "その他原位置試験")] pub other_in_situ_tests: Vec<OtherInSituTest210>,
347 #[serde(default, rename = "試料採取")] pub sample_collections: Vec<SampleCollection210>,
349 #[serde(default, rename = "地盤材料の工学的分類")] pub ground_material_classifications: Vec<GroundMaterialClassification210>,
351 #[serde(default, rename = "地質時代")] pub geological_ages: Vec<GeologicalAge210>,
353 #[serde(default, rename = "地層岩体区分")] pub stratum_rock_classifications: Vec<StratumRockClassification210>,
355 #[serde(default, rename = "孔内水位")] pub borehole_water_levels: Vec<BoreholeWaterLevel210>,
357 #[serde(default, rename = "掘削工程")] pub drilling_processes: Vec<DrillingProcess210>,
359 #[serde(default, rename = "孔径孔壁保護")] pub borehole_diameter_protections: Vec<BoreholeDiameterProtection210>,
361 #[serde(default, rename = "掘進速度")] pub drilling_speeds: Vec<DrillingSpeed210>,
363 #[serde(default, rename = "コアチューブビット")] pub core_tube_bits: Vec<CoreTubeBit210>,
365 #[serde(default, rename = "給圧条件")] pub pressure_conditions: Vec<PressureCondition210>,
367 #[serde(default, rename = "回転数")] pub rotation_speeds: Vec<RotationSpeed210>,
369 #[serde(default, rename = "送水条件")] pub water_supply_conditions: Vec<WaterSupplyCondition210>,
371 #[serde(default, rename = "断層破砕帯区分")] pub fault_fracture_zone_classifications: Vec<FaultFractureZoneClassification210>,
373 #[serde(default, rename = "コア採取率")] pub core_recovery_rates: Vec<CoreRecoveryRate210>,
375 #[serde(default, rename = "最大コア長")] pub maximum_core_lengths: Vec<MaximumCoreLength210>,
377 #[serde(default, rename = "RQD")] pub rqds: Vec<RQD210>,
379 #[serde(default, rename = "岩級区分判定表")] pub rock_class_classification_table: Vec<RockClassClassificationTable210>,
381 #[serde(default, rename = "岩級区分")] pub rock_class_classifications: Vec<RockClassClassification210>,
383 #[serde(default, rename = "保孔管")] pub casing_pipes: Vec<CasingPipe210>,
385 #[serde(default, rename = "計測機器")] pub measuring_instruments: Vec<MeasuringInstrument210>,
387 #[serde(default, rename = "地下水検層試験")] pub groundwater_logging_tests: Vec<GroundwaterLoggingTest210>,
389 #[serde(default, rename = "地下水検層試験詳細データ")] pub groundwater_logging_test_details: Vec<GroundwaterLoggingTestDetail210>,
391 #[serde(default, rename = "地下水検層試験判定結果")] pub groundwater_logging_test_results: Vec<GroundwaterLoggingTestResult210>,
393 #[serde(default, rename = "備考")] pub remarks: Vec<Remark210>,
395 #[serde(default, rename = "フリー情報")] pub free_info: Vec<FreeInfo>,
397}
398
399#[derive(Debug, Serialize, Deserialize)]
407pub struct SoilRockClassification210 {
408 #[serde(rename = "土質岩種区分_下端深度")] pub depth: Option<String>,
410 #[serde(rename = "土質岩種区分_土質岩種区分1")] pub classification1: Option<String>,
412 #[serde(default, rename = "土質岩種区分_土質岩種記号1")] pub code1: Option<String>,
414 #[serde(rename = "土質岩種区分_分類コード1")] pub classification_code1: Option<String>,
416 #[serde(default, rename = "土質岩種区分_土質岩種区分2")] pub classification2: Option<String>,
418 #[serde(default, rename = "土質岩種区分_土質岩種記号2")] pub code2: Option<String>,
420 #[serde(default, rename = "土質岩種区分_分類コード2")] pub classification_code2: Option<String>,
422}
423
424#[derive(Debug, Serialize, Deserialize)]
430pub struct Color210 {
431 #[serde(rename = "色調_下端深度")] pub depth: Option<String>,
433 #[serde(rename = "色調_色調名")] pub color_name: Option<String>,
435}
436
437#[derive(Debug, Serialize, Deserialize)]
442pub struct ObservationalArticle210 {
443 #[serde(rename = "観察記事_上端深度")] pub start_depth: Option<String>,
445 #[serde(rename = "観察記事_下端深度")] pub end_depth: Option<String>,
447 #[serde(default, rename = "観察記事_記事")] pub observation: Option<String>,
449}
450
451#[derive(Debug, Serialize, Deserialize)]
456pub struct ObservationalArticleFrame210 {
457 #[serde(rename = "観察記事枠線_下端深度")] pub end_depth: Option<String>,
459}
460
461#[derive(Debug, Serialize, Deserialize)]
470pub struct StandardPenetrationTest210 {
471 #[serde(rename = "標準貫入試験_開始深度")] pub start_depth: Option<String>,
473 #[serde(default, rename = "標準貫入試験_0_10打撃回数")] pub hits_0_10: Option<String>,
475 #[serde(default, rename = "標準貫入試験_0_10貫入量")] pub penetration_0_10: Option<String>,
477 #[serde(default, rename = "標準貫入試験_10_20打撃回数")] pub hits_10_20: Option<String>,
479 #[serde(default, rename = "標準貫入試験_10_20貫入量")] pub penetration_10_20: Option<String>,
481 #[serde(default, rename = "標準貫入試験_20_30打撃回数")] pub hits_20_30: Option<String>,
483 #[serde(default, rename = "標準貫入試験_20_30貫入量")] pub penetration_20_30: Option<String>,
485 #[serde(rename = "標準貫入試験_合計打撃回数")] pub total_hit_count: Option<String>,
487 #[serde(rename = "標準貫入試験_合計貫入量")] pub total_penetration: Option<String>,
489 #[serde(default, rename = "標準貫入試験_備考")] pub remarks: Option<String>,
491}
492
493#[derive(Debug, Serialize, Deserialize)]
499pub struct StandardPenetrationTestDetail210 {
500 #[serde(rename = "標準貫入試験詳細データ_開始深度")] pub start_depth: Option<String>,
502 #[serde(default, rename = "標準貫入試験詳細データ_打撃")] pub blows: Vec<StandardPenetrationTestBlow210>,
504}
505
506#[derive(Debug, Serialize, Deserialize)]
513pub struct StandardPenetrationTestBlow210 {
514 #[serde(rename = "標準貫入試験詳細データ_打撃回数")] pub blow_count: Option<String>,
516 #[serde(rename = "標準貫入試験詳細データ_貫入量")] pub penetration: Option<String>,
518 #[serde(rename = "標準貫入試験詳細データ_累積貫入量")] pub cumulative_penetration: Option<String>,
520 #[serde(default, rename = "標準貫入試験詳細データ_備考")] pub remarks: Option<String>,
522}
523
524#[derive(Debug, Serialize, Deserialize)]
533pub struct LugeonTest210 {
534 #[serde(rename = "ルジオン試験_試験番号")] pub test_number: Option<String>,
536 #[serde(rename = "ルジオン試験_上端深度")] pub start_depth: Option<String>,
538 #[serde(rename = "ルジオン試験_下端深度")] pub end_depth: Option<String>,
540 #[serde(rename = "ルジオン試験_圧力管理方法コード")] pub pressure_management_code: Option<String>,
542 #[serde(default, rename = "ルジオン試験_圧力管理方法")] pub pressure_management: Option<String>,
544 #[serde(rename = "ルジオン試験_圧力最大スケール")] pub pressure_max_scale: Option<String>,
546 #[serde(rename = "ルジオン試験_注入量最大スケール")] pub injection_max_scale: Option<String>,
548 #[serde(rename = "ルジオン試験_圧力開始点")] pub pressure_start_point: Option<String>,
550 #[serde(rename = "ルジオン試験_注入量開始点")] pub injection_start_point: Option<String>,
552 #[serde(rename = "ルジオン試験_ルジオン値区分")] pub lugeon_value_classification: Option<String>,
554 #[serde(rename = "ルジオン試験_ルジオン値")] pub lugeon_value: Option<String>,
556 #[serde(rename = "ルジオン試験_限界圧力")] pub limit_pressure: Option<String>,
558}
559
560#[derive(Debug, Serialize, Deserialize)]
567pub struct LugeonTestDetail210 {
568 #[serde(rename = "ルジオン試験詳細データ_試験番号")] pub test_number: Option<String>,
570 #[serde(rename = "ルジオン試験詳細データ_有効圧力")] pub effective_pressure: Option<String>,
572 #[serde(rename = "ルジオン試験詳細データ_注入量")] pub injection_amount: Option<String>,
574}
575
576#[derive(Debug, Serialize, Deserialize)]
583pub struct RelativeDensityConsistency210 {
584 #[serde(rename = "相対密度稠度_下端深度")] pub depth: Option<String>,
586 #[serde(default, rename = "相対密度_コード")] pub relative_density_code: Option<String>,
588 #[serde(default, rename = "相対密度_状態")] pub relative_density_state: Option<String>,
590 #[serde(default, rename = "相対稠度_コード")] pub relative_consistency_code: Option<String>,
592 #[serde(default, rename = "相対稠度_状態")] pub relative_consistency_state: Option<String>,
594}
595
596#[derive(Debug, Serialize, Deserialize)]
603pub struct HardnessClassificationTable210 {
604 #[serde(rename = "硬軟区分判定表_コード")] pub code: Option<String>,
606 #[serde(rename = "硬軟区分判定表_記号")] pub symbol: Option<String>,
608 #[serde(default, rename = "硬軟区分判定表_区分")] pub classification: Option<String>,
610 #[serde(default, rename = "硬軟区分判定表_説明")] pub description: Option<String>,
612}
613
614#[derive(Debug, Serialize, Deserialize)]
620pub struct HardnessClassification210 {
621 #[serde(rename = "硬軟区分_下端深度")] pub depth: Option<String>,
623 #[serde(rename = "硬軟区分_硬軟区分")] pub classification: Option<String>,
625}
626
627#[derive(Debug, Serialize, Deserialize)]
634pub struct CoreShapeClassificationTable210 {
635 #[serde(rename = "コア形状区分判定表_コード")] pub code: Option<String>,
637 #[serde(rename = "コア形状区分判定表_記号")] pub symbol: Option<String>,
639 #[serde(default, rename = "コア形状区分判定表_区分")] pub classification: Option<String>,
641 #[serde(default, rename = "コア形状区分判定表_説明")] pub description: Option<String>,
643}
644
645#[derive(Debug, Serialize, Deserialize)]
651pub struct CoreShapeClassification210 {
652 #[serde(rename = "コア形状区分_下端深度")] pub depth: Option<String>,
654 #[serde(rename = "コア形状区分_コア形状区分")] pub classification: Option<String>,
656}
657
658#[derive(Debug, Serialize, Deserialize)]
665pub struct FractureClassificationTable210 {
666 #[serde(rename = "割れ目区分判定表_コード")] pub code: Option<String>,
668 #[serde(rename = "割れ目区分判定表_記号")] pub symbol: Option<String>,
670 #[serde(default, rename = "割れ目区分判定表_区分")] pub classification: Option<String>,
672 #[serde(default, rename = "割れ目区分判定表_説明")] pub description: Option<String>,
674}
675
676#[derive(Debug, Serialize, Deserialize)]
682pub struct FractureClassification210 {
683 #[serde(rename = "割れ目区分_下端深度")] pub depth: Option<String>,
685 #[serde(rename = "割れ目区分_割れ目区分")] pub classification: Option<String>,
687}
688
689#[derive(Debug, Serialize, Deserialize)]
696pub struct WeatheringClassificationTable210 {
697 #[serde(rename = "風化区分判定表_コード")] pub code: Option<String>,
699 #[serde(rename = "風化区分判定表_記号")] pub symbol: Option<String>,
701 #[serde(default, rename = "風化区分判定表_区分")] pub classification: Option<String>,
703 #[serde(default, rename = "風化区分判定表_説明")] pub description: Option<String>,
705}
706
707#[derive(Debug, Serialize, Deserialize)]
713pub struct WeatheringClassification210 {
714 #[serde(rename = "風化区分_下端深度")] pub depth: Option<String>,
716 #[serde(rename = "風化区分_風化区分")] pub classification: Option<String>,
718}
719
720#[derive(Debug, Serialize, Deserialize)]
727pub struct AlterationClassificationTable210 {
728 #[serde(rename = "変質区分判定表_コード")] pub code: Option<String>,
730 #[serde(rename = "変質区分判定表_記号")] pub symbol: Option<String>,
732 #[serde(default, rename = "変質区分判定表_区分")] pub classification: Option<String>,
734 #[serde(default, rename = "変質区分判定表_説明")] pub description: Option<String>,
736}
737
738#[derive(Debug, Serialize, Deserialize)]
744pub struct AlterationClassification210 {
745 #[serde(rename = "変質区分_下端深度")] pub depth: Option<String>,
747 #[serde(rename = "変質区分_変質区分")] pub classification: Option<String>,
749}
750
751#[derive(Debug, Serialize, Deserialize)]
760pub struct BoreholeHorizontalLoadTest210 {
761 #[serde(rename = "孔内水平載荷試験_試験深度")] pub test_depth: Option<String>,
763 #[serde(rename = "孔内水平載荷試験_試験方法コード")] pub test_method_code: Option<String>,
765 #[serde(default, rename = "孔内水平載荷試験_試験方法")] pub test_method: Option<String>,
767 #[serde(default, rename = "孔内水平載荷試験_載荷パターン")] pub load_pattern: Option<String>,
769 #[serde(rename = "孔内水平載荷試験_初期圧")] pub initial_pressure: Option<String>,
771 #[serde(rename = "孔内水平載荷試験_降伏圧")] pub yield_pressure: Option<String>,
773 #[serde(rename = "孔内水平載荷試験_変形係数")] pub deformation_modulus: Option<String>,
775 #[serde(default, rename = "孔内水平載荷試験_割線弾性係数")] pub secant_modulus: Option<String>,
777 #[serde(default, rename = "孔内水平載荷試験_接線弾性係数")] pub tangent_modulus: Option<String>,
779}
780
781#[derive(Debug, Serialize, Deserialize)]
788pub struct PermeabilityTest210 {
789 #[serde(rename = "透水試験_上端深度")] pub start_depth: Option<String>,
791 #[serde(rename = "透水試験_下端深度")] pub end_depth: Option<String>,
793 #[serde(rename = "透水試験_試験コード")] pub test_code: Option<String>,
795 #[serde(default, rename = "透水試験_試験方法")] pub test_method: Option<String>,
797 #[serde(rename = "透水試験_透水係数")] pub permeability_coefficient: Option<String>,
799}
800
801#[derive(Debug, Serialize, Deserialize)]
807pub struct PWaveTest210 {
808 #[serde(rename = "P波試験_上端深度")] pub start_depth: Option<String>,
810 #[serde(rename = "P波試験_下端深度")] pub end_depth: Option<String>,
812 #[serde(default, rename = "P波試験_起振方式")] pub excitation_method: Option<String>,
814 #[serde(rename = "P波試験_速度")] pub velocity: Option<String>,
816}
817
818#[derive(Debug, Serialize, Deserialize)]
824pub struct SWaveTest210 {
825 #[serde(rename = "S波試験_上端深度")] pub start_depth: Option<String>,
827 #[serde(rename = "S波試験_下端深度")] pub end_depth: Option<String>,
829 #[serde(default, rename = "S波試験_起振方式")] pub excitation_method: Option<String>,
831 #[serde(rename = "S波試験_速度")] pub velocity: Option<String>,
833}
834
835#[derive(Debug, Serialize, Deserialize)]
842pub struct OtherInSituTest210 {
843 #[serde(rename = "その他原位置試験_試験名")] pub test_name: Option<String>,
845 #[serde(rename = "その他原位置試験_上端深度")] pub start_depth: Option<String>,
847 #[serde(rename = "その他原位置試験_下端深度")] pub end_depth: Option<String>,
849 #[serde(rename = "その他原位置試験_試験結果")] pub test_result: Option<String>,
851}
852
853#[derive(Debug, Serialize, Deserialize)]
860pub struct SampleCollection210 {
861 #[serde(rename = "試料採取_上端深度")] pub start_depth: Option<String>,
863 #[serde(rename = "試料採取_下端深度")] pub end_depth: Option<String>,
865 #[serde(rename = "試料採取_試料番号")] pub sample_number: Option<String>,
867 #[serde(rename = "試料採取_採取方法コード")] pub collection_method_code: Option<String>,
869 #[serde(default, rename = "試料採取_採取方法")] pub collection_method: Option<String>,
871 #[serde(default, rename = "試料採取_試験名")] pub test_names: Vec<String>,
873}
874
875#[derive(Debug, Serialize, Deserialize)]
881pub struct GroundMaterialClassification210 {
882 #[serde(rename = "地盤分類_下端深度")] pub depth: Option<String>,
884 #[serde(default, rename = "地盤分類_工学的分類記号")] pub engineering_classification_symbol: Option<String>,
886}
887
888#[derive(Debug, Serialize, Deserialize)]
894pub struct GeologicalAge210 {
895 #[serde(rename = "地質時代_上端深度")] pub start_depth: Option<String>,
897 #[serde(rename = "地質時代_下端深度")] pub end_depth: Option<String>,
899 #[serde(rename = "地質時代_コード")] pub code: Option<String>,
901 #[serde(default, rename = "地質時代_時代名")] pub age_name: Option<String>,
903}
904
905#[derive(Debug, Serialize, Deserialize)]
911pub struct StratumRockClassification210 {
912 #[serde(rename = "地層岩体区分_上端深度")] pub start_depth: Option<String>,
914 #[serde(rename = "地層岩体区分_下端深度")] pub end_depth: Option<String>,
916 #[serde(default, rename = "地層岩体区分_地層岩体名")] pub stratum_rock_name: Option<String>,
918}
919
920#[derive(Debug, Serialize, Deserialize)]
927pub struct BoreholeWaterLevel210 {
928 #[serde(rename = "孔内水位_測定年月日")] pub measurement_date: Option<String>,
930 #[serde(rename = "孔内水位_掘削状況コード")] pub drilling_status_code: Option<String>,
932 #[serde(default, rename = "孔内水位_掘削状況")] pub drilling_status: Option<String>,
934 #[serde(rename = "孔内水位_孔内水位")] pub water_level: Option<String>,
936 #[serde(default, rename = "孔内水位_水位種別コード")] pub water_level_type_code: Option<String>,
938 #[serde(default, rename = "孔内水位_水位種別備考")] pub water_level_type_remarks: Option<String>,
940}
941
942#[derive(Debug, Serialize, Deserialize)]
948pub struct DrillingProcess210 {
949 #[serde(rename = "掘削工程_測定年月日")] pub measurement_date: Option<String>,
951 #[serde(rename = "掘削工程_掘進深度")] pub drilling_depth: Option<String>,
953 #[serde(default, rename = "掘削工程_ケーシング下端深度")] pub casing_bottom_depth: Option<String>,
955}
956
957#[derive(Debug, Serialize, Deserialize)]
964pub struct BoreholeDiameterProtection210 {
965 #[serde(rename = "孔径孔壁保護_下端深度")] pub depth: Option<String>,
967 #[serde(rename = "孔径孔壁保護_孔径")] pub diameter: Option<String>,
969 #[serde(default, rename = "孔径孔壁保護_孔壁保護コード")] pub wall_protection_code: Option<String>,
971 #[serde(default, rename = "孔径孔壁保護_孔壁保護方法")] pub wall_protection_method: Option<String>,
973 #[serde(default, rename = "孔径孔壁保護_孔壁保護実施理由")] pub wall_protection_reason: Option<String>,
975}
976
977#[derive(Debug, Serialize, Deserialize)]
983pub struct DrillingSpeed210 {
984 #[serde(rename = "掘進速度_下端深度")] pub depth: Option<String>,
986 #[serde(rename = "掘進速度_掘進速度")] pub speed: Option<String>,
988}
989
990#[derive(Debug, Serialize, Deserialize)]
997pub struct CoreTubeBit210 {
998 #[serde(rename = "コアチューブビット_下端深度")] pub depth: Option<String>,
1000 #[serde(default, rename = "コアチューブビット_コアチューブ名")] pub core_tube_name: Option<String>,
1002 #[serde(default, rename = "コアチューブビット_ビット名")] pub bit_name: Option<String>,
1004}
1005
1006#[derive(Debug, Serialize, Deserialize)]
1012pub struct PressureCondition210 {
1013 #[serde(rename = "給圧条件_下端深度")] pub depth: Option<String>,
1015 #[serde(rename = "給圧条件_給圧")] pub pressure: Option<String>,
1017}
1018
1019#[derive(Debug, Serialize, Deserialize)]
1025pub struct RotationSpeed210 {
1026 #[serde(rename = "回転数_下端深度")] pub depth: Option<String>,
1028 #[serde(rename = "回転数_回転数")] pub rotation_speed: Option<String>,
1030}
1031
1032#[derive(Debug, Serialize, Deserialize)]
1039pub struct WaterSupplyCondition210 {
1040 #[serde(rename = "送水条件_下端深度")] pub depth: Option<String>,
1042 #[serde(rename = "送水条件_送水圧")] pub water_pressure: Option<String>,
1044 #[serde(rename = "送水条件_送水量")] pub water_supply_volume: Option<String>,
1046 #[serde(rename = "送水条件_排水量")] pub drainage_volume: Option<String>,
1048 #[serde(rename = "送水条件_送水種類コード")] pub water_type_code: Option<String>,
1050 #[serde(default, rename = "送水条件_送水種類")] pub water_type: Option<String>,
1052}
1053
1054#[derive(Debug, Serialize, Deserialize)]
1061pub struct FaultFractureZoneClassification210 {
1062 #[serde(rename = "断層破砕帯区分_上端深度")] pub start_depth: Option<String>,
1064 #[serde(rename = "断層破砕帯区分_下端深度")] pub end_depth: Option<String>,
1066 #[serde(rename = "断層破砕帯区分_性状コード")] pub property_code: Option<String>,
1068 #[serde(default, rename = "断層破砕帯区分_性状")] pub property: Option<String>,
1070 #[serde(default, rename = "断層破砕帯区分_備考")] pub remarks: Option<String>,
1072}
1073
1074#[derive(Debug, Serialize, Deserialize)]
1080pub struct CoreRecoveryRate210 {
1081 #[serde(rename = "コア採取率_下端深度")] pub depth: Option<String>,
1083 #[serde(rename = "コア採取率_採取率")] pub recovery_rate: Option<String>,
1085}
1086
1087#[derive(Debug, Serialize, Deserialize)]
1093pub struct MaximumCoreLength210 {
1094 #[serde(rename = "最大コア長_下端深度")] pub depth: Option<String>,
1096 #[serde(rename = "最大コア長_コア長")] pub core_length: Option<String>,
1098}
1099
1100#[derive(Debug, Serialize, Deserialize)]
1106pub struct RQD210 {
1107 #[serde(rename = "RQD_下端深度")] pub depth: Option<String>,
1109 #[serde(default, rename = "RQD_RQD")] pub rqd: Option<String>,
1111}
1112
1113#[derive(Debug, Serialize, Deserialize)]
1119pub struct RockClassClassificationTable210 {
1120 #[serde(default, rename = "岩級区分判定表_項目名")] pub item_names: Vec<String>,
1122 #[serde(default, rename = "岩級区分判定表_判定")] pub judgments: Vec<RockClassJudgment210>,
1124}
1125
1126#[derive(Debug, Serialize, Deserialize)]
1132pub struct RockClassJudgment210 {
1133 #[serde(rename = "岩級区分判定表_コード")] pub code: Option<String>,
1135 #[serde(rename = "岩級区分判定表_記号")] pub symbol: Option<String>,
1137 #[serde(default, rename = "岩級区分判定表_説明")] pub descriptions: Vec<String>,
1139}
1140
1141#[derive(Debug, Serialize, Deserialize)]
1147pub struct RockClassClassification210 {
1148 #[serde(rename = "岩級区分_下端深度")] pub depth: Option<String>,
1150 #[serde(rename = "岩級区分_岩級区分")] pub classification: Option<String>,
1152}
1153
1154#[derive(Debug, Serialize, Deserialize)]
1160pub struct CasingPipe210 {
1161 #[serde(rename = "保孔管_下端深度")] pub depth: Option<String>,
1163 #[serde(rename = "保孔管_種別コード")] pub type_code: Option<String>,
1165 #[serde(default, rename = "保孔管_備考")] pub remarks: Option<String>,
1167}
1168
1169#[derive(Debug, Serialize, Deserialize)]
1175pub struct MeasuringInstrument210 {
1176 #[serde(rename = "計測機器_上端深度")] pub start_depth: Option<String>,
1178 #[serde(rename = "計測機器_下端深度")] pub end_depth: Option<String>,
1180 #[serde(rename = "計測機器_機器種別")] pub instrument_type: Option<String>,
1182 #[serde(default, rename = "計測機器_備考")] pub remarks: Option<String>,
1184}
1185
1186#[derive(Debug, Serialize, Deserialize)]
1194pub struct GroundwaterLoggingTest210 {
1195 #[serde(rename = "地下水検層試験_試験番号")] pub test_number: Option<String>,
1197 #[serde(rename = "地下水検層試験_上端深度")] pub start_depth: Option<String>,
1199 #[serde(rename = "地下水検層試験_下端深度")] pub end_depth: Option<String>,
1201 #[serde(rename = "地下水検層試験_掘削深度")] pub drilling_depth: Option<String>,
1203 #[serde(rename = "地下水検層試験_孔内水位")] pub water_level: Option<String>,
1205 #[serde(rename = "地下水検層試験_試験方法コード")] pub test_method_code: Option<String>,
1207 #[serde(rename = "地下水検層試験_電解質溶液濃度")] pub electrolyte_concentration: Option<String>,
1209 #[serde(default, rename = "地下水検層試験_測定時間")] pub measurement_times: Vec<String>,
1211}
1212
1213#[derive(Debug, Serialize, Deserialize)]
1220pub struct GroundwaterLoggingTestDetail210 {
1221 #[serde(rename = "地下水検層試験詳細データ_試験番号")] pub test_number: Option<String>,
1223 #[serde(rename = "地下水検層試験詳細データ_測定深度")] pub measurement_depth: Option<String>,
1225 #[serde(default, rename = "地下水検層試験詳細データ_比抵抗値")] pub resistivity_values: Vec<String>,
1227}
1228
1229#[derive(Debug, Serialize, Deserialize)]
1236pub struct GroundwaterLoggingTestResult210 {
1237 #[serde(rename = "地下水検層試験判定結果_上端深度")] pub start_depth: Option<String>,
1239 #[serde(rename = "地下水検層試験判定結果_下端深度")] pub end_depth: Option<String>,
1241 #[serde(rename = "地下水検層試験判定結果_地下水検層結果")] pub result: Option<String>,
1243}
1244
1245#[derive(Debug, Serialize, Deserialize)]
1251pub struct Remark210 {
1252 #[serde(rename = "備考_タイトル")] pub title: Option<String>,
1254 #[serde(rename = "備考_上端深度")] pub start_depth: Option<String>,
1256 #[serde(rename = "備考_下端深度")] pub end_depth: Option<String>,
1258 #[serde(rename = "備考_備考内容")] pub content: Option<String>,
1260}
1261
1262impl ClassificationInfo for SoilRockClassification210 {
1267 fn rock_groups(&self) -> Vec<RockGroupInfo> {
1268 let mut constituents = Vec::new();
1269
1270 if let Some(name) = &self.classification1
1271 && !name.is_empty()
1272 {
1273 constituents.push(Constituent::Named {
1274 name: name.clone(),
1275 symbol: self.code1.clone(),
1276 });
1277 }
1278
1279 if let Some(name) = &self.classification2
1280 && !name.is_empty()
1281 {
1282 constituents.push(Constituent::Named {
1283 name: name.clone(),
1284 symbol: self.code2.clone(),
1285 });
1286 }
1287
1288 let code = if constituents.len() > 1 {
1289 RockGroupCode::Interbedded
1290 } else {
1291 RockGroupCode::Single
1292 };
1293
1294 vec![RockGroupInfo { code, constituents }]
1295 }
1296}