Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hotfix: Shapefile 用のフィールド名辞書を更新する #545

Merged
merged 1 commit into from
May 28, 2024

Conversation

ciscorn
Copy link
Member

@ciscorn ciscorn commented May 28, 2024

PLATEAU 4.0 対応 (#524) により、出現するフィールド名の種類が増えたが、Shapefile 用の属性名変換辞書を辞書を更新していなかった。また、11文字以上のフィールド名が含まれていると即 panic する実装であった。

  • これらを修正・改善する。
  • 上記の問題をテストで検出できるようにするため、パイプライン全体を最後に join する際のエラーを捕捉するようにする。現在はパイプライン内のスレッドが panic してもテストが通ることがある。

Copy link

coderabbitai bot commented May 28, 2024

Walkthrough

この変更は、複数のファイルにおいてエラーハンドリングの強化を目的としています。特に、handle.join()呼び出しに対するエラーハンドリングが追加され、エラーが発生した場合のログ記録が行われるようになりました。これにより、スレッドのジョイン操作中に発生する可能性のあるエラーが適切に処理され、デバッグが容易になります。

Changes

ファイル 変更内容の概要
app/src-tauri/src/main.rs handle.join()のエラーハンドリングを追加
nusamai/src/main.rs handle.join()の結果をチェックし、エラーが発生した場合にログを記録
nusamai/src/pipeline/runner.rs PipelineHandlejoinメソッドがResultを返すように変更、エラーログの追加
nusamai/src/sink/shapefile/attributes.rs make_table_builder関数でfield_nameの変換エラーをハンドリングし、ログを記録
nusamai/tests/pipeline.rs handle.join()呼び出しをhandle.join().unwrap()に変更し、エラーハンドリングを追加
nusamai/tests/sink.rs handle.join()呼び出しをhandle.join().unwrap()に変更し、エラーハンドリングを追加

変更の風が吹いている
エラーを捕まえるその手で
ログに刻むは新たな知恵
バグの嵐を乗り越えて
コードの未来、明るく照らす
🐇✨


Tip

Early Access Features
  • gpt-4o model for chat
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to full the review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@ciscorn ciscorn changed the title hotfix: Shapefile 用のフィールド名辞書を更新 hotfix: Shapefile 用のフィールド名辞書を更新する May 28, 2024
Copy link

codecov bot commented May 28, 2024

Codecov Report

Attention: Patch coverage is 32.14286% with 19 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
nusamai/src/pipeline/runner.rs 35.29% 11 Missing ⚠️
app/src-tauri/src/main.rs 0.00% 5 Missing ⚠️
nusamai/src/sink/shapefile/attributes.rs 33.33% 2 Missing ⚠️
nusamai/src/main.rs 66.66% 1 Missing ⚠️
Additional details and impacted files
Components Coverage Δ
GUI 0.00% <0.00%> (ø)
Backend 87.16% <39.13%> (+2.05%) ⬆️
Libraries 91.33% <ø> (ø)

📢 Thoughts on this report? Let us know!

@ciscorn ciscorn merged commit 1cd36a8 into main May 28, 2024
8 of 9 checks passed
@ciscorn ciscorn deleted the error-handling-shp branch May 28, 2024 14:57
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 9f6c373 and 7af010c.
Files ignored due to path filters (1)
  • nusamai/src/transformer/transform/shp_field_dict.json is excluded by !**/*.json
Files selected for processing (6)
  • app/src-tauri/src/main.rs (1 hunks)
  • nusamai/src/main.rs (1 hunks)
  • nusamai/src/pipeline/runner.rs (1 hunks)
  • nusamai/src/sink/shapefile/attributes.rs (1 hunks)
  • nusamai/tests/pipeline.rs (1 hunks)
  • nusamai/tests/sink.rs (1 hunks)
Additional Context Used
GitHub Check Runs (1)
codecov/patch failure (8)

nusamai/src/main.rs: [warning] 287-287: nusamai/src/main.rs#L287
Added line #L287 was not covered by tests


nusamai/src/pipeline/runner.rs: [warning] 114-118: nusamai/src/pipeline/runner.rs#L114-L118
Added lines #L114 - L118 were not covered by tests


nusamai/src/pipeline/runner.rs: [warning] 120-120: nusamai/src/pipeline/runner.rs#L120
Added line #L120 was not covered by tests


nusamai/src/pipeline/runner.rs: [warning] 122-123: nusamai/src/pipeline/runner.rs#L122-L123
Added lines #L122 - L123 were not covered by tests


nusamai/src/pipeline/runner.rs: [warning] 127-127: nusamai/src/pipeline/runner.rs#L127
Added line #L127 was not covered by tests


nusamai/src/pipeline/runner.rs: [warning] 130-130: nusamai/src/pipeline/runner.rs#L130
Added line #L130 was not covered by tests


nusamai/src/pipeline/runner.rs: [warning] 133-133: nusamai/src/pipeline/runner.rs#L133
Added line #L133 was not covered by tests


nusamai/src/sink/shapefile/attributes.rs: [warning] 28-29: nusamai/src/sink/shapefile/attributes.rs#L28-L29
Added lines #L28 - L29 were not covered by tests

Additional comments not posted (2)
nusamai/tests/sink.rs (1)

67-67: handle.join().unwrap(); の追加により、スレッドの結合中に発生する可能性のあるエラーを適切に処理できるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。

Verification successful

handle.join().unwrap(); の追加により、スレッドの結合中に発生する可能性のあるエラーを適切に処理できるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。simple_run_sink 関数がテストファイル内で複数回呼び出されているため、この新しい行もテストでカバーされています。

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify if the new line is covered by tests.

# Test: Search for the test coverage of the line. Expect: Coverage report showing the line.
rg --type rust $'handle.join().unwrap();' nusamai/tests/sink.rs

Length of output: 64



Script:

#!/bin/bash
# Description: Verify if the function `simple_run_sink` is invoked in any test cases.

# Test: Search for invocations of `simple_run_sink` in the test files.
rg 'simple_run_sink' nusamai/tests/

Length of output: 1066

nusamai/tests/pipeline.rs (1)

165-165: handle.join().unwrap(); の追加により、スレッドの結合中に発生する可能性のあるエラーを適切に処理できるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。

Verification successful

handle.join().unwrap(); の追加により、スレッドの結合中に発生する可能性のあるエラーを適切に処理できるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。また、この行は test_run_pipeline テスト関数内に含まれているため、テストによってカバーされています。

  • nusamai/tests/pipeline.rstest_run_pipeline 関数内の165行目
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify if the new line is covered by tests.

# Test: Search for the test coverage of the line. Expect: Coverage report showing the line.
rg --type rust $'handle.join().unwrap();' nusamai/tests/pipeline.rs

Length of output: 68



Script:

#!/bin/bash
# Description: Find all test functions in the file and check if they cover the new line.

# Find all test functions in the file
rg --type rust '#\[test\]' -A 1 nusamai/tests/pipeline.rs

# Check if any test functions call `handle.join().unwrap();`
rg --type rust 'handle.join().unwrap();' nusamai/tests/pipeline.rs -A 10

Length of output: 167



Script:

#!/bin/bash
# Description: Extract the content of the `test_run_pipeline` function to verify if it includes the new line.

# Extract the `test_run_pipeline` function
ast-grep --lang rust --pattern $'fn test_run_pipeline() {
  $$$
}' nusamai/tests/pipeline.rs

Length of output: 3088

Comment on lines +113 to +135
pub fn join(self) -> Result<(), String> {
fn report_error(stage: &str, err: Box<dyn std::any::Any + Send>) -> String {
let msg = if let Some(message) = err.downcast_ref::<&str>() {
format!("{stage} thread panicked with message: {}", message)
} else if let Some(string) = err.downcast_ref::<String>() {
format!("{stage} thread panicked with message: {}", string)
} else {
format!("{stage} thread panicked with an unknown type.")
};
log::error!("{}", msg);
msg.to_string()
}
if self.transformer_thread_handle.join().is_err() {
log::error!("Transformer thread panicked");

if let Err(err) = self.source_thread_handle.join() {
return Err(report_error("Source", err));
}
if let Err(err) = self.transformer_thread_handle.join() {
return Err(report_error("Transformer", err));
}
if self.sink_thread_handle.join().is_err() {
log::error!("Sink thread panicked");
if let Err(err) = self.sink_thread_handle.join() {
return Err(report_error("Sink", err));
}
Ok(())
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

join 関数の新しいエラーハンドリングロジックがテストでカバーされているか確認するために、テストファイル nusamai/tests/sink.rsnusamai/tests/pipeline.rs を調査しました。これらのテストは join メソッドを呼び出していますが、新しいエラーハンドリングロジックを明示的にテストしているわけではありません。

以下の点を確認する必要があります:

  • join メソッドのエラーハンドリングロジックが適切にテストされているか。

このためには、エラーハンドリングロジックをテストするための新しいテストケースを追加することをお勧めします。

  • join メソッドのエラーハンドリングロジックをテストする新しいテストケースを追加してください。
Analysis chain

join 関数に追加されたエラーハンドリングにより、スレッドの結合中に発生する可能性のあるエラーを特定し、適切にログを出力することができるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify if the new lines are covered by tests.

# Test: Search for the test coverage of the lines. Expect: Coverage report showing the lines.
rg --type rust $'pub fn join(self) -> Result<(), String>' nusamai/src/pipeline/runner.rs

Length of output: 89



Script:

#!/bin/bash
# Search for test functions that call the `join` method in the codebase.
rg 'join\(\)' --type rust --glob '*_test.rs'

# Search for test files that might include tests for `PipelineHandle`.
rg 'PipelineHandle' --type rust --glob '*_test.rs'

Length of output: 395



Script:

#!/bin/bash
# Locate all test files in the repository.
fd --type f --glob '*_test.rs'

# Search for the `join` method in the located test files.
fd --type f --glob '*_test.rs' --exec rg 'join\(\)'

# Search for `PipelineHandle` in the located test files.
fd --type f --glob '*_test.rs' --exec rg 'PipelineHandle'

Length of output: 144



Script:

#!/bin/bash
# List all files in the repository to identify potential test files.
fd --type f

# Search for the `join` method in all Rust files to ensure we are not missing any test files.
rg 'join\(\)' --type rust

# Search for `PipelineHandle` in all Rust files to ensure we are not missing any test files.
rg 'PipelineHandle' --type rust

Length of output: 58092



Script:

#!/bin/bash
# Extract and review the relevant test functions in `nusamai/tests/sink.rs` and `nusamai/tests/pipeline.rs`.

# Extract test functions from `nusamai/tests/sink.rs` that call `join`.
rg -A 10 'handle.join\(\)' nusamai/tests/sink.rs

# Extract test functions from `nusamai/tests/pipeline.rs` that call `join`.
rg -A 10 'handle.join\(\)' nusamai/tests/pipeline.rs

Length of output: 606

Comment on lines +27 to +30
let Ok(name) = field_name.as_str().try_into() else {
log::error!("Field name '{}' cannot be used in Shapefile", field_name);
continue;
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

make_table_builder 関数に追加されたエラーハンドリングコードがテストでカバーされていないようです。このコードの堅牢性を確保するために、手動での確認と新しいエラーハンドリングコードをカバーするテストの追加をお勧めします。

  • nusamai/src/sink/shapefile/attributes.rsmake_table_builder 関数
Analysis chain

make_table_builder 関数に追加されたエラーハンドリングにより、無効なフィールド名が発生した場合にエラーをログに記録し、処理をスキップすることができるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify if the new lines are covered by tests.

# Test: Search for the test coverage of the lines. Expect: Coverage report showing the lines.
rg --type rust $'let Ok(name) = field_name.as_str().try_into()' nusamai/src/sink/shapefile/attributes.rs

Length of output: 105



Script:

#!/bin/bash
# Description: Search for test functions that might cover the `make_table_builder` function.

# Find all test files in the repository
test_files=$(fd --type f --extension rs --exec rg --files-with-matches 'fn test' {} +)

# Search for invocations of `make_table_builder` in the test files
for file in $test_files; do
    rg 'make_table_builder' $file
done

Length of output: 14593



Script:

#!/bin/bash
# Description: Search for test functions in `nusamai/src/sink/shapefile/mod.rs` that might cover `make_table_builder`.

# Search for test functions in the file
rg 'fn test' nusamai/src/sink/shapefile/mod.rs

Length of output: 94



Script:

#!/bin/bash
# Description: Search for invocations of `make_table_builder` within the `test_toplevel_cityobj_multipolygon` function.

# Search for the `test_toplevel_cityobj_multipolygon` function definition and its body
rg -A 20 'fn test_toplevel_cityobj_multipolygon' nusamai/src/sink/shapefile/mod.rs | rg 'make_table_builder'

Length of output: 108

Comment on lines +286 to +289
if let Err(msg) = handle.join() {
log::error!("Pipeline thread panicked: {:?}", msg);
}

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

main 関数に追加された handle.join() のエラーハンドリングにより、スレッドの結合中に発生する可能性のあるエラーを適切に処理できるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。ただし、現在のテストではこのエラーハンドリングがカバーされていないようです。新しいエラーハンドリング行をカバーするテストを追加することをお勧めします。

  • nusamai/tests/sink.rs: handle.join().unwrap();
  • nusamai/tests/pipeline.rs: handle.join().unwrap();
Analysis chain

main 関数に追加された handle.join() のエラーハンドリングにより、スレッドの結合中に発生する可能性のあるエラーを適切に処理できるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify if the new line is covered by tests.

# Test: Search for the test coverage of the line. Expect: Coverage report showing the line.
rg --type rust $'if let Err(msg) = handle.join()' nusamai/src/main.rs

Length of output: 70



Script:

#!/bin/bash
# Description: Search for test functions related to thread operations and joining threads.

# Find all Rust test functions in the codebase.
rg --type rust --pattern '#\[test\]' --context 10

# Specifically look for thread operations and joining threads in test files.
rg --type rust 'thread::spawn' --context 10
rg --type rust 'handle.join()' --context 10

Length of output: 6594



Script:

#!/bin/bash
# Description: Search for test functions that include `handle.join()` and handle errors.

# Find all Rust test functions that include `handle.join()`.
rg --type rust 'handle.join()' --context 10 | rg --type rust '#\[test\]' --context 10

Length of output: 1122

Comment on lines +263 to +267
if let Err(msg) = handle.join() {
return Err(Error::ConversionFailed(format!(
"Pipeline thread panicked: {msg}"
)));
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

run_conversion 関数の handle.join() エラーハンドリングがテストでカバーされていないようです。この新しいエラーハンドリングロジックをカバーするために、特定のテストケースを追加することをお勧めします。

  • run_conversion 関数の handle.join() エラーハンドリングをカバーするテストケースを追加してください。
Analysis chain

run_conversion 関数に追加された handle.join() のエラーハンドリングにより、スレッドの結合中に発生する可能性のあるエラーを適切に処理できるようになりました。この変更は、エラーハンドリングを強化するというプルリクエストの目的に合致しています。

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify if the new line is covered by tests.

# Test: Search for the test coverage of the line. Expect: Coverage report showing the line.
rg --type rust $'if let Err(msg) = handle.join()' app/src-tauri/src/main.rs

Length of output: 76



Script:

#!/bin/bash
# Description: Search for test functions that might cover the `handle.join()` call in `run_conversion`.

# Find all test functions in the codebase.
rg --type rust '#\[test\]' -A 1

# Search for invocations of `run_conversion` in the test files.
rg 'run_conversion' --type rust

Length of output: 25084



Script:

#!/bin/bash
# Description: Search for functions that call `run_conversion` and check their test coverage.

# Find all functions that call `run_conversion`.
rg 'run_conversion' --type rust -A 3

# Check if these functions are covered by tests.
rg --type rust '#\[test\]' -A 1

Length of output: 25426

nokonoko1203 added a commit that referenced this pull request May 31, 2024
commit 0f7b652
Author: satoshi komatsu <[email protected]>
Date:   Thu May 30 17:33:09 2024 +0900

    minecraft-sinkの実装 (#528)

    <!-- Close or Related Issues -->
     minecraft-sinkを実装しました。以下の理由によりイシューは閉じません。
    -  出力時に複数のLODがでてしまう不具合があり。(#532)
    - コマンド引数のオプションの未実装。
    - テスト未実装
    <!-- Please describe the motivation behind this PR and the changes it
    introduces. -->
    <!-- 何のために、どのような変更をしますか? -->

    - `.mca`ファイルを出力するsinkを実装
    - 出力時は`region`フォルダが作成され、その中に複数の`.mca`を生成
    -
    変換時の座標系は`ExtendedTransverseMercatorProjection`で横メルカトル座標系に変換し、citygmlの全体の中心がマインクラフトのワールドの中心に来るように設定
    -
    ブロックの高さはcitygmlのそのままの高さにしているため、標高が高すぎる建物等は現状変換しても表示されない(マイクラのブロックの設置可能高さは
    `-64` ~ `319`)
    - ブロックの種類は地物型の種類によって分けるように実装。また、ボクセライザー側でRGBのカラー情報を受け取るように修正。

    | 地物型 | ブロック | RGB |

    |--------------------------------------|---------------------------------------|-----------------|
    | bldg:Building | minecraft:iron_block | 220, 220, 220 |
    | tran:Road | minecraft:gray_wool | 62, 68, 71 |
    | tran:Railway | minecraft:granite | 149, 103, 85 |
    | tran:Track | minecraft:stone_bricks | 122, 121, 122 |
    | tran:Square | minecraft:smooth_stone | 158, 158, 158 |
    | uro:Waterway | minecraft:cyan_stained_glass | 75, 127, 153 |
    | luse:LandUse | minecraft:coarse_dirt | 119, 85, 59 |
    | frn:CityFurniture | minecraft:quartz_block | 235, 229, 222 |
    | veg:PlantCover | minecraft:moss_block | 89, 109, 45 |
    | veg:SolitaryVegetationObject | minecraft:oak_leaves | 0, 255, 0 |
    | wtr:WaterBody | minecraft:water | 0, 0, 255 |
    | dem:ReliefFeature | minecraft:stone | 125, 125, 125 |
    | brid:Bridge | minecraft:polished_andesite | 132, 134, 133 |
    | tun:Tunnel | minecraft:cobblestone | 127, 127, 127 |
    | urf:UseDistrict | minecraft:green_stained_glass | 102, 127, 50 |
    | urf:FirePreventionDistrict | minecraft:red_stained_glass | 53, 50, 50
    |
    | urf:SedimentDisasterProneArea | minecraft:yellow_stained_glass | 229,
    229, 50 |
    | urf:Zone | minecraft:magenta_stained_glass | 178, 75, 215 |
    | その他未定義の地物型 | minecraft:white_wool | 255, 255, 255 |
    <!-- If manual testing is required, please describe the procedure. -->
    <!-- 手動での動作確認が必要なら、そのやり方を記述してください。-->

    下記のコマンドで出力されます
    ```
    <input_path_gml> --sink minecraft --output <output_path>
    ```

    `region`フォルダが出力されるので、これをマインクラフトの既存のワールドデータにある`region`ディレクトリと置き換えてワールドに入れば確認できます。(<output_path>の部分を直接マインクラフトのワールドデータのディレクトリに指定しても良い)

    建築物
    bldg:Building
    minecraft:iron_block
    ![2024-05-26_21 22
    37](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/d492cdac-516b-41a8-94bd-c8b08906c563)

    道路
    tran:Road
    minecraft:gray_wool
    ![2024-05-26_21 42
    48](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/deb78cd6-d309-4bc4-aa9d-49dbf56acaa1)

    鉄道
    tran:Railway
    minecraft:granite

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/2c080d31-e59b-419c-bc37-6f93a12d859f)

    歩道
    tran:Track
    minecraft:stone_bricks
    ![2024-05-26_21 44
    21](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/8273b23c-b294-4354-bec8-4ba36e8520e1)

    広場
    tran:Square
    minecraft:smooth_stone

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/70fdfad9-b7a3-4005-8e5d-c255c89cccfc)

    航路
    uro:Waterway
    minecraft:cyan_stained_glass

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/bb3079ae-38a4-48d4-aa42-e1ba6c204505)

    土地利用
    luse:LandUse
    minecraft:coarse_dirt

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/4bb4a87f-473d-4551-86a2-90160c7c5e9e)

    用途地域
    urf:UseDistrict
    green_stained_glass

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/48f2639e-d2d9-4f84-bb09-84858e02f53f)

    防火地域又は準防火地域
    urf:FirePreventionDistrict
    green_stained_glass

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/46374d5a-9eec-409f-976c-8af6cb5e06d0)

    土砂災害警戒区域
    minecraft:yellow_stained_glass
    urf:SedimentDisasterProneArea

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/6025b013-1650-43d6-a94b-5bfc37c910b8)

    都市設備
    frn:CityFurniture
    minecraft:quartz_block

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/1f518c3d-99e2-45a4-85a2-a9601d23938c)

    植被
    veg:PlantCover
    minecraft:moss_block

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/0be6c713-99f7-4e33-bf66-136ced416473)

    単独木
    veg:SolitaryVegetationObject
    minecraft:oak_leaves

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/bdc387c3-9ac3-45e2-ad84-2535f690ed23)

    洪水浸水想定区域、津波浸水想定、高潮浸水想定区域、内水浸水想定区域、海、潮汐水域、水路、河川/小川、湖、滝、湿地・沼地、浸水域、貯水池、不明
    wtr:WaterBody
    minecraft:water

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/72388d29-481e-4230-b662-dbef68052694)

    地形
    dem:ReliefFeature
    minecraft:stone

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/1caea87a-10e1-4142-b20f-ccf72f2b739c)

    橋梁
    brid:Bridge
    minecraft:polished_andesite

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/99005f31-e306-42e6-bb59-78f1926e6a92)

    トンネル
    tun:Tunnel
    minecraft:cobblestone

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/4a3b2259-2df7-45e5-9ee7-6ba77045184d)

    区域
    urf:Zone
    minecraft:magenta_stained_glass

    ![image](https://github.com/MIERUNE/plateau-gis-converter/assets/84182110/ce73aeea-f4f4-40d1-abe5-dcc22ca3da5e)

    ---------

    Co-authored-by: nokonoko1203 <[email protected]>
    Co-authored-by: Taku Fukada <[email protected]>

commit 0c6addf
Author: Taku Fukada <[email protected]>
Date:   Wed May 29 15:49:36 2024 +0900

    Publish nusamai-geometry as 'flatgeom' on crates.io. (#546)

    Close: #536

    Publish nusamai-geometry as
    [flatgeom](https://crates.io/crates/flatgeom) on crates.io

commit 720b2f0
Author: Taku Fukada <[email protected]>
Date:   Wed May 29 15:38:17 2024 +0900

    Fix: DisasterRiskAttributeProperty for backward compatibility (#547)

    PLATEAU 4.0において `uro:BuildingHighTideRiskAttribute`(建築物で使用) と
    `uro:HighTideRiskAttribute` (その他の地物で使用)が1つの `uro:HighTideRiskAttribute`
    に統一されたため #524 で対応したが、後方互換性のために `uro:BuildingHighTideRiskAttribute`
    要素も拾うような対処はしていなかった。対応する。

commit 1cd36a8
Author: Taku Fukada <[email protected]>
Date:   Tue May 28 23:57:00 2024 +0900

    hotfix: Shapefile 用のフィールド名辞書を更新する (#545)

    PLATEAU 4.0 対応 (#524) により、出現するフィールド名の種類が増えたが、Shapefile
    用の属性名変換辞書を辞書を更新していなかった。また、11文字以上のフィールド名が含まれていると panic する実装になっていた。

    - これらを修正する。
    - 上記の問題をテストで検出できるようにするため、パイプライン全体を最後に join
    する際のエラーを捕捉するようにする。現在はパイプライン内のスレッドが panic してもテストが通ることがある。

commit 9f6c373
Author: Taku Fukada <[email protected]>
Date:   Tue May 28 10:30:43 2024 +0900

    外部ソートを独自の実装に切り替える (#531)

    Close #302

    外部ソートライブラリを、独自に実装した
    [kv-extsort](https://github.com/MIERUNE/kv-extsort-rs) に変更する。
    [ext-sort](https://crates.io/crates/ext-sort) は必要なくなる。

    - ソート中でも処理をキャンセルできるようになる。
    - パフォーマンスがいくらか向上する。
    - 信頼性は低下する、かもしれない → kv-extsort側の品質を上げていく

    Not required / 不要
@ciscorn ciscorn self-assigned this Jun 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant