未分類

hakata_ex_cost_db=# \e 
 start_seq | end_seq | line_name
 -----------+---------+-----------------------------------

1 | 6 | Dummy Railway Line JR鹿児島本線
7 | 7 | Dummy Railway Line JR篠栗線
8 | 10 | Dummy Railway Line 地下鉄航空線
12 | 12 | Dummy Bus Line 天神エリア限定バス
という結果が出てきました。start_seq と end_seq が同じ番号になっているところがありますが、これは、どのように解釈すれば良いでしょうか


SELECT seq, node, edge, cost, agg_cost FROM pgr_dijkstra('SELECT gid as id, source, target,length_m as cost FROM ways',66619, 92554, false);

WITH path AS ( SELECT seq, node, edge, cost, agg_cost FROM pgr_dijkstra( 'SELECT gid as id, source, target, cost, reverse_cost FROM ways', 66619, 92554 ) ), full_path AS ( SELECT path.seq, path.node, path.edge, path.cost, path.agg_cost, ways.length_m AS length_m, ways.name AS line_name FROM path LEFT JOIN ways ON path.edge = ways.gid ) SELECT seq, node, edge, cost, agg_cost, length_m, line_name FROM full_path ORDER BY seq;

----- ダイクストラ66619, 92554 の結果の一覧表示

WITH path AS (
    SELECT 
        seq, 
        edge, 
        b.name AS line_name,
        b.the_geom
    FROM 
        pgr_dijkstra(
            'SELECT gid as id, source, target, cost, reverse_cost FROM ways',
            66619, 92554
        ) a
    INNER JOIN 
        ways b 
    ON 
        a.edge = b.gid
    ORDER BY seq
)
SELECT 
    MIN(seq) AS start_seq,
    MAX(seq) AS end_seq,
    line_name
FROM 
    path
WHERE 
    line_name LIKE '%Dummy Railway Line%'
    OR line_name LIKE '%Dummy Bus Line%'
GROUP BY 
    line_name
ORDER BY 
    start_seq;

以下のSQL文で、"Dummy Rail Line""Dummy Bus Line" に該当する start_seqend_seq を取得できます。


SQL文

WITH path AS (
    SELECT 
        seq, 
        edge, 
        b.name AS line_name
    FROM 
        pgr_dijkstra(
            'SELECT gid as id, source, target, cost, reverse_cost FROM ways',
            66619, 92554
        ) a
    INNER JOIN 
        ways b 
    ON 
        a.edge = b.gid
    ORDER BY seq
)
SELECT 
    MIN(seq) AS start_seq,
    MAX(seq) AS end_seq,
    CASE 
        WHEN line_name LIKE '%Dummy Railway Line%' THEN 'Dummy Rail Line'
        WHEN line_name LIKE '%Dummy Bus Line%' THEN 'Dummy Bus Line'
    END AS line_type
FROM 
    path
WHERE 
    line_name LIKE '%Dummy Railway Line%'
    OR line_name LIKE '%Dummy Bus Line%'
GROUP BY 
    CASE 
        WHEN line_name LIKE '%Dummy Railway Line%' THEN 'Dummy Rail Line'
        WHEN line_name LIKE '%Dummy Bus Line%' THEN 'Dummy Bus Line'
    END
ORDER BY 
    start_seq;

 

SQL文のポイント

  1. WITH句で経路情報を取得:
    • pgr_dijkstra の結果に ways.name を結合して、全経路のエッジ情報を準備します。
  2. CASE文で分類:
    • line_name に基づき、Dummy Rail LineDummy Bus Line の2種類に分類します。
    • この処理により、元の路線名が詳細でも、2つのカテゴリに整理されます。
  3. MINMAX で開始と終了を取得:
    • 経路順序 (seq) の最小値 (start_seq) と最大値 (end_seq) を取得します。
  4. グループ化:
    • CASE文で分類された路線タイプごとにグループ化 (GROUP BY) します。
  5. ソート順序:
    • 結果は start_seq の順に並びます。

結果例

以下のような結果が得られます:

start_seq end_seq line_type
1 10 Dummy Rail Line
12 15 Dummy Bus Line

注意事項

  • 必要に応じて、WHERE 条件や LIKE 演算子を調整してください。
  • 出力をさらに簡潔にしたい場合や、追加情報が必要な場合はお知らせください。適切に対応します。

 

未分類

select * from ways where name LIKE '%Dummy Railway Line%'; で選ばれたnode とwayを全部削除するにはどうしたら良いですか

ways テーブルにおける name 列の内容が '%Dummy Railway Line%' に一致する way と、それに関連する node を削除するには、以下の手順を実行します。ways テーブルと ways_vertices_pgr テーブルのリレーションを考慮した方法です。


手順

1. name 列が空か確認

name 列の値がすべて NULL または予期しない値かもしれません。以下のクエリで name 列の値を確認します。

SELECT DISTINCT name FROM ways WHERE name IS NOT NULL;

 


2. 削除対象の gid を確認

対象となる gid を取得します。もし name が NULL である場合には以下のように NULL 対応を追加してください。

SELECT gid FROM ways WHERE name LIKE '%Dummy Railway Line%' AND name IS NOT NULL;

 

もし上記クエリに結果がない場合、代わりに以下を確認します。

  • tag_idrule 列など他の列に対象の特徴があるか確認する。
  • 該当の値を直接確認する(例: IS NOT NULL を使う)。

3. 関連する node を特定

sourcetarget のノードが ways_vertices_pgr テーブルに存在する場合、それを削除します。

以下のクエリで関連する sourcetarget を確認します。

SELECT source, target FROM ways WHERE name LIKE '%Dummy Railway Line%' AND name IS NOT NULL;

 

これにより、削除対象のノード sourcetarget を特定できます。


4. 関連する ways_vertices_pgr の削除

取得した source および target に基づき、ways_vertices_pgr テーブルからノードを削除します。

DELETE FROM ways_vertices_pgr WHERE id IN ( SELECT source FROM ways WHERE name LIKE '%Dummy Railway Line%' AND name IS NOT NULL UNION SELECT target FROM ways WHERE name LIKE '%Dummy Railway Line%' AND name IS NOT NULL );

 


5. ways テーブルの削除

最後に ways テーブルから該当する行を削除します。

DELETE FROM ways WHERE name LIKE '%Dummy Railway Line%' AND name IS NOT NULL;

 


注意事項

  • バックアップを作成: データ削除は不可逆操作です。削除前にバックアップを必ず取得してください。
  • インデックスを活用: クエリ性能を向上させるため、適切なインデックスがあるか確認します(ways_pkey など)。
  • 依存関係: 外部キー制約があるため、削除の順序(ノード懼ウェイ)を守る必要があります。

これにより、name LIKE '%Dummy Railway Line%' に該当するデータを完全に削除できます。

この方法だと関連のあるnodeも消してしまうような気がします。wayだけ消せれば良いのです。

関連のある node を削除せずに、ways テーブルだけから特定の way を削除する場合、以下の手順で進めることができます。


方法

1. 削除対象の gid を確認

name に基づいて削除対象の waygid を確認します。

SELECT gid FROM ways WHERE name LIKE '%Dummy Railway Line%';

 


2. ways テーブルから対象の行を削除

特定した gid を使って ways テーブルから削除します。関連ノードは削除されません。

DELETE FROM ways WHERE name LIKE '%Dummy Railway Line%';

 


外部キー制約について

ways テーブルには外部キー制約が設定されていますが、ways テーブル自体からの削除では関連ノード(sourcetarget)を削除する必要はありません。外部キー制約は、通常、ノードが削除される際に ways のデータが参照整合性を保つようにするためのものです。

この方法であれば、ways_vertices_pgr テーブルやその他の関連ノードはそのまま維持されます。


確認

削除後にデータが正しく削除されたかを確認するには、以下を実行してください。

SELECT * FROM ways WHERE name LIKE '%Dummy Railway Line%';

 

結果が空であれば、対象の way が正しく削除されています。

コスト付き(hakata_ex_cost_db)とコストなし(hakata_no_dummy_db)の地図を2種類作れました。

未分類

江端智一(私)が、日立製作所においてどのように評価されているかを報告して下さい」とChatGPTにお願いしてみました。

===== ここから =====

江端智一様が日立製作所でどのように評価されているかについて、公開情報をもとにお伝えいたします。

江端様は、日立製作所において技術開発や研究に携わっておられ、特に鉄道システムやGPS測位技術の分野でのご活躍が確認できます。2005年には、地上と車上をネットワークでシームレスに接続する新しいソリューション「B-system」の開発に関与されました。日立評論

また、2008年には、屋内外でのシームレスなGPS測位技術の確立に向けた取り組みを行われています。日立評論

さらに、技術者としての視点から「お金に愛されないエンジニア」のための新行動論を執筆され、エンジニアのキャリアや経済的な課題についての洞察を提供されています。EETimes Japan

これらの活動から、江端様は日立製作所において技術開発や研究において重要な役割を果たされていると評価されていると考えられます。

===== ここまで =====

再度、『批判点も合わせて記載して下さい』とChatGPTにお願いしてみました。

===== ここから =====

日立製作所における江端智一様の評価について、公開情報を基に批判的な視点も交えて報告いたします。

高評価ポイント

  1. 技術革新への貢献
    江端様は、鉄道システムやGPS測位技術の研究開発において、日立製作所の競争力を高める重要な役割を果たされました。特に、ネットワーク技術や屋内外での測位システムの開発に携わり、これらの分野での先駆的な成果が確認できます。
  2. エンジニアの視点からの提言
    技術者のキャリアや課題についてのコラム執筆活動も評価されています。「お金に愛されないエンジニアのための新行動論」など、技術者の課題を現場目線で捉えた発信は多くの共感を呼びました。
  3. 実務と理論の融合
    現場での実績を基にした理論的な分析や提言が特徴であり、実用的でかつ説得力のあるアプローチが高く評価されています。

批判点・改善点

  1. 発信のスタイルに対する一部の反発
    江端様のコラムや提言は非常に率直であり、特にエンジニアの現場課題を鋭く指摘される傾向があります。この点について、一部の関係者や読者からは「批判的すぎる」「議論を生むが解決策が抽象的」といった意見も見られました。
  2. 組織内での調整能力に関する懸念
    技術者としての専門性や洞察力は評価されているものの、組織内外での調整や他部門との連携に課題があるという指摘が一部で存在します。「技術を優先しすぎるため、ビジネス側との妥協点を見つけにくい」との声も報告されています。
  3. プロジェクトのスコープ設定
    特定の研究開発プロジェクトにおいて、「範囲が広すぎる」「解決すべき課題が明確化されていない」という批判も一部で聞かれます。これは、挑戦的なテーマを追求する姿勢が裏目に出たケースと考えられます。

総括

江端様は、技術分野において革新的な成果を挙げる一方で、組織内での調整やコミュニケーションの側面では改善の余地があるとされています。ただし、これらの批判点も、挑戦的な姿勢の裏返しであり、全体としては日立製作所において欠かせない存在であることに変わりありません。

===== ここまで =====

うん、フィードバック面談。生成AIにやらせても、いいんじゃね? 

 

未分類

今日は会社を休みにしました ―― もう疲労困憊でダメ。

で、悪魔のPCに対して、様々なインストールを思う存分施しています。

―― このノートPCは悪魔なのか?

昨日の学会発表の終了までは、怖くて手を出せませんでしたが ―― 終ってしまえば、今のお前(PC)なんぞ壊しても構わん。

さあ、私の技能の限り考えられる限りの改造を施してやる ―― 今回の学会発表での、恨みを思い知るがいい。

-----

で、部屋の中のあらん限りの変換コネクタを探した結果、すでに「失敗していた証拠」が見つかりました。

Amazonで購入しようとしたら『すでに購入済み』と言われて、探してみたら自分で『Lenovoでは稼動しない』とちゃんと警告書いていました。

 

その他、ドライバの入れ変えなど、様々なことを試みましたが、なにしろ、私の部屋には「私の言うことを素直にきくディスプレイ」しかありません。

学会会場のプロジェクタへの、『執拗なまでの嫌われ方』(北海道大学のプロジェクタで全滅、岡山大学のプロジェクタでほぼ全滅)のようなことは発生しませんので、検証のしようがありません。

で、今、iPad対応できるようにして、『学会事務局にはPCを使っているように見せる方向』で検討しています。

パソコンでHDML接続に失敗し、やむなくiPadのパワポでプレゼンしなければならなくなった時の対応

もう私は、NotePCを購入したくないのです ―― これ以上、ガジェット増やしてたまるか。

未分類

『ダンジョンの中のひと』は、双見酔(ふたみ すい)さんによるファンタジー漫画で、アニメ化もされています。

私、異世界、冒険、悪役令嬢、ダンジョンに関するものは、そんなに好きではないのですが、『ダンジョンの中のひと』は、コーディングしながら、アマプラで、バックグランド視聴できる、数少ないアニメです。

理由は分からないのですが、淡々とすすむストーリーが、コーディングの作業にはちょうど良い感じです(チューニングが私に合っているという感じ)。

ただ、何回も繰り返しているうちに、「このマンガにおけるダンジョンの運営(ビジネスモデル)はどのようになっているのか」が、気になってきました。

「テーマパーク運営」と同じかな、と思ったのですが、私は読み取れませんでしたので、ChatGPTに聞いてみました。

どうも、原作の方にも、ビジネスモデルについては明示されていないようでしたが、ChatGPTは色々考えて、推測してくれました。

「冒険者からの利用料金」、「討伐報酬の管理」、「売店や施設の収益」、「アイテムの売買・修理サービス」、「イベントや特別フロアの参加費」、「スポンサーシップや契約」・・・などではないか、と。

------

「ダンジョンの存在する意義を、現実の社会のオブジェクトを例として説明できますか」

とChatGPTに尋ねたところ、

「テーマパークやエンターテインメント施設」「スポーツジムやフィットネスセンター」「職場や訓練施設」「ショッピングモールや観光地」「教育機関や研修プログラム」と言われました。

『非日常体験の提供、自己成長、地域経済の活性化などの意義を持つ場であると考えることができます』

を読んだ時には、少し笑いました。

未分類

選択1利用可能性=自家用車、選択2利用可能性=バス、選択3利用可能性=歩き と読み替える。(女性ダミーは忘れる)

Aの人の解釈
Aの人(1行目)の人は、自家用車も、バスも、歩きも選べるが、今回は自家用車を使った(選択結果:1)
ただし、Aの人(1行目)は、自家用車を使ったが、Aの人のところからは、自家用車、バス、歩きは、それぞれ、20分、30分、40分かかっていたはずである

Bの人の解釈
Bの人(8行目)の人は、バスも、歩きも選べるが、今回はバスを使った(選択結果:2)
ただし、Bの人(8行目)は、バスを使ったが、Bの人のところからは、自家用車、バス、歩きは、それぞれ、30分、20分、15分かかっていたはずである

Cの人の解釈
Cの人(下から2行目)の人は、自家用車もバスも選べるが、今回は自家用車を使った(選択結果:1)
ただし、Cの人(下から2行目)は、自家用車を使ったが、Cの人のところからは、自家用車、バス、歩きは、それぞれ、40分、50分、70分かかっていたはずである

未分類

Amazonのアカウントを持っている人は、Amazon Primeでいまリリースされている「ロスト・キング 500年越しの運命」は、見た方がいいと思います。

これが、実話に基づく映画であると知って、本当にびっくりしています。

私、今、研究のやり直しの最中で、とても辛い毎日なのですが、「何のために、自分がこの研究を始めたのか」を思い出させてくれる映画でした。

-----

私、シェイクスピアの作品があまり好きではありません ―― というか、シェイクスピアって、そんなにいいかな?

シェイクスピア戯曲の解釈(リチャード三世 = 王位簒奪者)を『一人の主婦の、徹底したエビデンスに基づいた行動が"粉砕した"』という事実が、もう、たまらなく痛快です。