来年辺り足和田トンネル(仮称)が掘り出され予感がしてきました。イメージ立て看板が小海地区、長浜地区に立てられました。いよいよですね、長浜地区の方々にとって、役場まで、約5分です。
THE KUKUNAでは連泊されるお客様に、自然環境保護のため、 ご滞在中の清掃が不要な場合は、 1部屋につき、館内でご利用分の1,000円分をサービスするプランがございます。
あとは調整とディテールと配色をどう仕上げるかだ。 ちなみに過去の光る模型作品(凱風快晴、神奈川沖浪裏、山下白雨、甲州三坂水面)は以下からhttps://www.fujigoko.tv/mtfuji/vol5/3Dmodel/index.html 今回は人物の入った北斎の画で比較的簡単なものを選んでみた。 3D-CADで画の雰囲気を壊さぬよう作りこみ3Dプリンターで出力後試作品という事で適当に色を付けてみた。
3D-CADで作成中 特に初老の人物らしき人の肉付きに注意を払った。
この画は人物ができればあとは簡単。
3Dプリンターで印刷
奥行き感をどうするかの課題が残った。
とりあえず色を塗って様子を見る。
やはりデカールが必要かぁ。
この模型は無理に光らせなくても良いかなと思っている。田畑らしき部分を黄色で光らせるのは下品か? 本当に難しいのは3Dプリンターの印刷調整でこれから果てしない試作品の山ができるだろう。 #葛飾北斎 #冨嶽三十六景 #3Dプリンター #浮世絵 #模型
告知:令和6年度歴史文化講演会 主催:古谿荘に親しむ会 主題:葛飾北斎は凱風快晴をどこから描いたのか 日時:2024年6月15日(土)15:00〜(受付14:45) 場所:富士市富士川ふれあいホール多目的室 無料:一般参加者は60人程度(申込不要)
久保覚: 1963年(昭和38年)山梨県河口湖生まれ 20代はSEとして竹中工務店と共同で人工知能CADの開発、SONYと共同でA1タブレット開発。 1995年、河口湖に戻り富士山の情報発信サイトを立ちあげるかたわらコンピュータ技術書や小説を出版。 特に富士山のライブカメラは設置数30を超えるほど富士山周囲に配置し、マスコミに多数出演。 2010年ごろより地域の歴史に興味を持つのを契機に、365日360度網羅した膨大な富士山画像と画像処理技術の成果として江戸時代に描かれた浮世絵の場所特定を始める。 2017年、葛飾北斎の凱風快晴の場所特定を扱ったNHK歴史秘話ヒストリアに出演。2021年、葛飾北斎の秘密としてNHK歴史探偵。2023年の正月特番で山下白雨回として出演。
葛飾北斎の凱風快晴は秋の赤富士の山梨説が流布されていますが、初夏の早朝静岡で描かれています。 また、画は一般的に秋のイメージと言われていますが、地域からの富士山を知らない赤富士と鱗雲の根拠に頼る御用学者の知識不足には閉口するばかりです。 講演では諸々含めて200年の論争に終止符を打ちます。
富士川付近のスケッチは他の冨嶽三十六景の画に流用されています。
講演では凱風快晴以外の浮世絵にも言及します。 山下白雨は富士宮市からのスケッチです。そのトリッキーな手法は実に面白いもので200年の謎は解けました。 決して2000mもの上空から描いたと唱えるご都合主義の解釈ではありません。
また、そのスケッチは甲州伊沢暁に流用されており、こちらの富士山の謎も解けました。
甲州三島超の富士山稜線の凹凸は絵の中央の木の皮と一致しており、他の要素も前景と相似しています。前景の旅人は何に喜んでいるのか近くの傍観者は何を思うのか。 このように新発見によって画の見方が変わる瞬間が面白いです。
神奈川沖浪裏の画はアニメーション効果です。波は一般的に言うシャッターの目という浅い表現ではなく、日本の歴史的経緯で生まれたものです。 葛飾北斎の画はそのインパクトからあらゆる知識人が後付け で色々なことを発言し、それが事実のように流布しています。結果論から絵を解釈するという行為は作品の本質や歴史的事実に迫るときある種の危険性をはらんでいます。
2024年3月30日(土)〜4月14日(日)まで 勝山観光協会主催 【勝山さくら祭りスタンプラリー】 さくら名所3か所(道の駅かつやま、富士ビューホテル、冨士御室浅間神社)のスタンプを押して道の駅かつやま又は冨士御室浅間神社にご提示ください。 期間中毎日先着50名様にプレゼントを差し上げます。 プレゼントは、おひとり様1枚につき以下のどちらかをおひとつ! ●冨士御室浅間神社の厄割の玉(厄難を打ち砕く御守り) ●道の駅かつやまのソフトクリーム ※プレゼント配布時間 10:00〜15:00
TV番組で良く見る金庫開け。 そういえばダイヤル式金庫ってどんな仕組みだったっけ?右に何回、左に何回でどうして開くのか? 金庫の仕組みを知りたいので3Dプリンターで作ってみた動画をYoutuber風に作ったみた。
#3Dプリンター #模型
VIDEO
googleの生成AIのBardがGeminiになった。その実力を見るために何かプログラムを作って確かめてみた。 気象庁では定期的にXMLフォーマット形式の電文を配信している。 このXMLファイルを定期的に自動で読み込めばHP上に天気予報を表示できるので実際にGoogleGeminiを使用してプログラムしてみた。 以下に表示に至るまでの方法をステップごとに備忘録として記録する。 ===========
ステップ1. 気象庁のXMLフォーマット形式の電文を定期的に取り込む。 サーバーのcrontabで定期的にXMLファイルを取り込むよう設定。 気象庁のファイルは「https://www.data.jma.go.jp/developer/xml/feed/regular_l.xml 」にある。 読み込む方法はfreeBSDならfetchコマンドで取り込む。 fetch -mp -o /自分のサーバーのパス/weatherJapan.rdf https://www.data.jma.go.jp/developer/xml/feed/regular_l.xml 以上で、自身のサーバー内にweatherJapan.rdfファイルとして取り込み完了。 ---------------
ステップ2. 取り込んだデータから「山梨県の最新データ」を取り込む。 「ステップ1」で取り込んだ気象庁のデータは全国の気象データのindexのようなものなので、そこから山梨県の最新気象データを抽出する。 具体的には、indexに並んでいるデータ群(過去データもある)から目的のデータを見つける。 山梨県の気象予報なら、甲府気象台の「https://www.data.jma.go.jp/developer/xml/data/ データの日付_0_VPFD51_190000.xml」となる。 データは過去のアーカイブを含むので最新のデータ、つまりリストの先頭のindexを引く。 indexの引き方はunixのshellScriptで自動化する。 生成AIで、「VPFD51_190000を含むリストの先頭の文字を取り出すshellScriptを書け」と命令。 weatherF=$(grep -Eo 'https:\/\/www\.data\.jma\.go\.jp\/developer\/xml\/data\/(.*)VPFD51_190000\.xml' /自分のサーバーのパス/weatherJapan.rdf | awk -F/ '{print $NF}' | head -1) 上記の回答を得る。 次は変数weatherFを使用して山梨県のXMLデータをfetchで読み込む。 fetch -mp -o /自分のサーバーのパス/weatherYamanashi.rdf https://www.data.jma.go.jp/developer/xml/data/" ${weatherF}" 以上で、自身のサーバー内にweatherYamanashi.rdfファイルとして取り込み完了。 <Gemini最初の指令>https://www.data.jma.go.jp/developer/xml/feed/regular_l.xml にあるXMLファイルからhttps://www.data.jma.go.jp/developer/xml/data/ *****_VPFD51_190000.xml の部分を抽出し、抽出した先頭のみを表示するシェルを書け。 ただし、「*****」は任意の文字列。 解答→正規表現とgrepのパターンを提示してきた。正規表現はエラーになったのでgrepを使用し改良して使用。 ---------------
ステップ3. 「ステップ1」と「ステップ2」をcrontabで定期的に実行するようサーバーに記述する。 <weatherYamanashi.rdfファイルの中身例> 前段あり〜 <DateTime>2024-02-13T17:00:00+09:00</DateTime> <Duration>PT7H</Duration> <Name>今夜</Name> </TimeDefine> <TimeDefine timeId="2"> <DateTime>2024-02-14T00:00:00+09:00</DateTime> <Duration>P1D</Duration> <Name>明日</Name> </TimeDefine> <TimeDefine timeId="3"> <DateTime>2024-02-15T00:00:00+09:00</DateTime> <Duration>P1D</Duration> <Name>明後日</Name> </TimeDefine> </TimeDefines> <Item> <Kind> <Property> <Type>天気</Type> <DetailForecast> <WeatherForecastPart refID="1"> <Sentence>晴れ</Sentence> <Base> <jmx_eb:Weather type="天気">晴れ</jmx_eb:Weather> </Base> </WeatherForecastPart> <WeatherForecastPart refID="2"> <Sentence>晴れ 昼過ぎ から くもり</Sentence> <Base> <jmx_eb:Weather type="天気">晴れ</jmx_eb:Weather> </Base> <Becoming> <TimeModifier>昼過ぎ から</TimeModifier> <jmx_eb:Weather type="天気">くもり</jmx_eb:Weather> </Becoming> </WeatherForecastPart> <WeatherForecastPart refID="3"> <Sentence>くもり 後 一時 雨</Sentence> <Base> <jmx_eb:Weather type="天気">くもり</jmx_eb:Weather> </Base> <Temporary> <TimeModifier>後 一時</TimeModifier> <jmx_eb:Weather type="天気">雨</jmx_eb:Weather> </Temporary> </WeatherForecastPart> </DetailForecast> <WeatherPart> <jmx_eb:Weather refID="1" type="天気">晴れ</jmx_eb:Weather> <jmx_eb:Weather refID="2" type="天気">晴れ後くもり</jmx_eb:Weather> <jmx_eb:Weather refID="3" type="天気">くもり後一時雨</jmx_eb:Weather> </WeatherPart> <WeatherCodePart> <jmx_eb:WeatherCode refID="1" type="天気予報用テロップ番号">100</jmx_eb:WeatherCode> <jmx_eb:WeatherCode refID="2" type="天気予報用テロップ番号">111</jmx_eb:WeatherCode> <jmx_eb:WeatherCode refID="3" type="天気予報用テロップ番号">212</jmx_eb:WeatherCode> </WeatherCodePart> </Property> </Kind> <Kind> <Property> <Type>風</Type> 〜以下続く ---------------
ステップ4. 定期的に取り込んだ山梨県の天気予報データ(weatherYamanashi.rdf)を解析する。 解析にはperlプログラムを使用する。 必要な部分のみperlの正規表現を使用してプログラムしようとしたが、今回は「XML::Simple;」を使用することにした。 use File::Slurp; use XML::Simple; use Data::Dumper; my $xml = read_file("weatherYamanashi.rdf"); #ファイルの読み my $parser = XML::Simple->new(); #XML::Simple使用準備 my $parser_data = $parser->XMLin( $xml); #取り込み print Dumper($parser_data); #結果表示 〜取り込まれたデータ例 $VAR1 = { 'xmlns' => 'http://xml.kishou.go.jp/jmaxml1/ ', 'xmlns:jmx' => 'http://xml.kishou.go.jp/jmaxml1/ ', 'Control' => { 'DateTime' => '2024-02-11T01:34:15Z', 'Status' => "\x{901a}\x{5e38}", 'PublishingOffice' => "\x{7532}\x{5e9c}\x{5730}\x{65b9}\x{6c17}\x{8c61}\x{53f0}", 'EditorialOffice' => "\x{7532}\x{5e9c}\x{5730}\x{65b9}\x{6c17}\x{8c61}\x{53f0}", 'Title' => "\x{5e9c}\x{770c}\x{5929}\x{6c17}\x{4e88}\x{5831}\x{ff08}\x{ff32}\x{ff11}\x{ff09}" }, 'Head' => { 'xmlns' => 'http://xml.kishou.go.jp/jmaxml1/informationBasis1/ ', 'TargetDateTime' => '2024-02-11T11:00:00+09:00', 'Headline' => { 'Text' => {} }, 'InfoKind' => "\x{5e9c}\x{770c}\x{5929}\x{6c17}\x{4e88}\x{5831}", 'TargetDuration' => 'P2DT13H', 'EventID' => {}, 'Serial' => {}, 'Title' => "\x{5c71}\x{68a8}\x{770c}\x{5e9c}\x{770c}\x{5929}\x{6c17}\x{4e88}\x{5831}", 'InfoType' => "\x{767a}\x{8868}", 'InfoKindVersion' => '1.0_1', 'ReportDateTime' => '2024-02-11T11:00:00+09:00' }, 'xmlns:jmx_add' => 'http://xml.kishou.go.jp/jmaxml1/addition1/ ', 'Body' => { 'xmlns' => 'http://xml.kishou.go.jp/jmaxml1/body/meteorology1/ ', 'xmlns:jmx_eb' => 'http://xml.kishou.go.jp/jmaxml1/elementBasis1/ ', 'MeteorologicalInfos' => [ { 'TimeSeriesInfo' => [ { 'Item' => [ { 'Area' => { 'Code' => '190010', 'Name' => "\x{4e2d}\x{30fb}\x{897f}\x{90e8}" ---------------
ステップ5. 必要な部分のみ取り出す 例えば、天気予報の部分を取り出す sub getJMAWeatherTenki{ my $data = shift; #取り込んだハッシュ my $place_id = shift; #地域コード:富士五湖=1 my $time_id = shift; #今日=1,明日=2、明後日=3 my $content; foreach my $weather_define ( @{$data->{Body}{MeteorologicalInfos}[0]{TimeSeriesInfo}[0]{Item}[$place_id]{Kind}[0]{Property}{WeatherPart}{'jmx_eb:Weather'}} ){ if( $weather_define->{refID}==$time_id ){ $content = $weather_define->{content}; } } return $content; } 戻り値例:「くもり後晴れ」 <Gemini最初の指令> weatherYamanashi.rdfを解析し、天気データ「{jmx_eb:Weather}」の「{refID}」が一致する文字列「{content}」を得よ。 解答→得た答えを修正して上記を仕上げた。 ---------------
ステップ6. 天気予報の文字から画像を作成する まず以下の画像データを意味付けしたファイル名で作成する。 文字列から画像ファイル名を構成する。 sub getJMAWeatherImg{ my $weather_str = shift; #天気文字列 my $time_id = shift; # my %exDayId = ( '今日' => 1, '明日' => 2, '明後日' => 3 ); use constant WEATHER_CODES => { '晴れ' => 1, 'くもり' => 2, '雨' => 3, '雪' => 4, }; use constant TIME_CODES => { '時々' => 1, '後' => 2, }; my @parts = split(/(後|時々)/, $weather_str); my $a = WEATHER_CODES->{ $parts[0] } || 0; my $b = TIME_CODES->{ $parts[1] } || 0; my $c = WEATHER_CODES->{ $parts[2] } || 0; my $p = 0; my $name; #以下は「今夜」の場合を考慮する foreach my $time_define ( @{$exParserData->{Body}{MeteorologicalInfos}[0]{TimeSeriesInfo}[0]{TimeDefines}{TimeDefine}} ){ if( $time_define->{timeId}==$time_id ){ $name = $time_define->{Name}; } } Jcode::convert( \$name, 'utf-8'); #ファイル内はUTF-8だが、そのままでは使用できない my $fDayw = Jcode::convert( '今夜', 'utf-8'); #そのため比べる両者をUTF-8で再矯正する if( $name eq $fDayw ){ $p = 1; } my $fileImg = sprintf("tnk%04d.png", $p . $a . $b . $c); return $fileImg; } 何故か文字化けが発生し苦労したが上記の方法で回避 <Gemini最初の指令> 「晴れ」、「晴れ後くもり」、「雨時々雪」と言った文字列があります。 「後」と「時々」をキーに文字列を前後に分けて上の例なら、 「晴れ」、「晴れ」「後」「くもり」、「雨」「時々」「雪」と文字列を分解するperlプログラムを書け。 〜 得た文字列を、「晴れ」=1、「くもり」=2、…のように3桁の数字に置き換えよ。 解答→得た答えを修正して上記を仕上げた。 ---------------
ステップ7. 以上のプログラムを半分以上生成AIに手伝ってもらい完成させた。 あとは自分の環境に合わせて関数化し汎用ライブラリーとして保管。 --------------- 以上、動作例は「https://live.fujigoko.tv/?n=30 」等を参照。 今回は自身と気象庁のサーバー負荷を考え以上のようにしたが、「ステップ1」と「ステップ2」を省いて全てperlで記述すればその都度全国の気象データを得ることができる。 具体的には、https://www.data.jma.go.jp/developer/xml/feed/regular_l.xml から全国の気象データを抽出すれば良いようにプログラムをさらに汎用化し公開もできる。 が、自身のサーバーでそのサービスを提供するメリットがあるかどうかと考えてしまった。 #コンピュータ #AI #人工知能 #プログラム