<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="https://jj1bby.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://jj1bby.com/" rel="alternate" type="text/html" /><updated>2022-02-06T12:38:54+00:00</updated><id>https://jj1bby.com/feed.xml</id><title type="html">JJ1BBY blog</title><subtitle>a Ham contester's blog</subtitle><entry><title type="html">マルチ獲得地図</title><link href="https://jj1bby.com/contest/2022/02/05/Map-out-multi.html" rel="alternate" type="text/html" title="マルチ獲得地図" /><published>2022-02-05T13:30:00+00:00</published><updated>2022-02-05T13:30:00+00:00</updated><id>https://jj1bby.com/contest/2022/02/05/Map-out-multi</id><content type="html" xml:base="https://jj1bby.com/contest/2022/02/05/Map-out-multi.html">&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;csvにしたコンテストログファイルを白地図に塗りつぶした画像ファイルを作成します。&lt;/li&gt;
  &lt;li&gt;関東UHFとACAGに対応&lt;/li&gt;
  &lt;li&gt;ロカコンの特殊なマルチ番号やJCGより細かい番号、管外は都道府県レベルのマルチ番号などにまだ対応していません。&lt;/li&gt;
  &lt;li&gt;いつものように雑な実装ですのでお手柔らかに…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;探してみましたが、落ちてなかったので作ってみたシリーズ。&lt;br /&gt;
&lt;a href=&quot;https://github.com/JJ1BBY/multimap&quot;&gt;ソースコード&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;読み込むファイルは ctestwinでファイル出力 - その他ファイル出力 - TXT形式ファイル出力 で作成したものを使ってください。log.txtかlogfileを設定してください。&lt;br /&gt;
レポジトリにあるのはサンプルコードですので、必要に応じて変更してください。&lt;/p&gt;

&lt;p&gt;白地図のデータを https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v3_0.html#prefecture00 からあらかじめダウンロードしてローカルに展開し、指定してください。&lt;br /&gt;
例
“D:\Downloads\N03-20210101_GML\N03-20210101_GML\N03-21_210101.shp”&lt;/p&gt;

&lt;p&gt;JCG等の番号一覧のデータを
https://github.com/w-ockham/JCC-JCG-List/blob/master/munitable.csv （w-ockham/JCC-JCG-List is licensed under the Apache License 2.0）から利用しました。ありがとうございます。&lt;/p&gt;

&lt;p&gt;その他コメントを見てください。緯度経度指定して描画エリアを変更できます。塗りつぶしの色なども変更できます。&lt;/p&gt;

&lt;p&gt;##使い方&lt;br /&gt;
&lt;code&gt;
python mapout.py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;出力は multimap.pngおよびmultimap.csv になります。
&amp;lt;/code&amp;gt;
—&lt;/p&gt;

&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Contest" /><summary type="html">TL;DR csvにしたコンテストログファイルを白地図に塗りつぶした画像ファイルを作成します。 関東UHFとACAGに対応 ロカコンの特殊なマルチ番号やJCGより細かい番号、管外は都道府県レベルのマルチ番号などにまだ対応していません。 いつものように雑な実装ですのでお手柔らかに… 探してみましたが、落ちてなかったので作ってみたシリーズ。 ソースコード 読み込むファイルは ctestwinでファイル出力 - その他ファイル出力 - TXT形式ファイル出力 で作成したものを使ってください。log.txtかlogfileを設定してください。 レポジトリにあるのはサンプルコードですので、必要に応じて変更してください。 白地図のデータを https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v3_0.html#prefecture00 からあらかじめダウンロードしてローカルに展開し、指定してください。 例 “D:\Downloads\N03-20210101_GML\N03-20210101_GML\N03-21_210101.shp” JCG等の番号一覧のデータを https://github.com/w-ockham/JCC-JCG-List/blob/master/munitable.csv （w-ockham/JCC-JCG-List is licensed under the Apache License 2.0）から利用しました。ありがとうございます。 その他コメントを見てください。緯度経度指定して描画エリアを変更できます。塗りつぶしの色なども変更できます。 ##使い方 python mapout.py 出力は multimap.pngおよびmultimap.csv になります。 &amp;lt;/code&amp;gt; —</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">ctestwinのログファイル変換</title><link href="https://jj1bby.com/contest/2022/02/01/Convert-ctestwin-log-file.html" rel="alternate" type="text/html" title="ctestwinのログファイル変換" /><published>2022-02-01T02:30:00+00:00</published><updated>2022-02-01T02:30:00+00:00</updated><id>https://jj1bby.com/contest/2022/02/01/Convert-ctestwin-log-file</id><content type="html" xml:base="https://jj1bby.com/contest/2022/02/01/Convert-ctestwin-log-file.html">&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;ctestwinのログファイルをcsvファイルに変換するpythonのスクリプトです。&lt;/li&gt;
  &lt;li&gt;見当たらなかったので、作ってみました。&lt;/li&gt;
  &lt;li&gt;雑な実装ですのでお手柔らかに&lt;/li&gt;
  &lt;li&gt;久々にGithub Pagesでblog更新しようとしたらできず、GithubのメニューでSecurityを設定すると行けるみたい。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;探してみましたが、落ちてなかったので作ってみたシリーズ&lt;br /&gt;
&lt;a href=&quot;https://github.com/JJ1BBY/lg82csv/blob/main/lg82csv.py&quot;&gt;ソースコード&lt;/a&gt;&lt;br /&gt;
バイナリファイルを操作するのは初めてなので、色々と至らないところがあるかと思いますが。&lt;br /&gt;
とりあえず、動いているみたいなので…&lt;/p&gt;

&lt;p&gt;##使い方&lt;br /&gt;
&lt;code&gt;
python lg82csv logfile.lg8  
出力は logfile.csv になります。  
&lt;/code&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Contest" /><summary type="html">TL;DR ctestwinのログファイルをcsvファイルに変換するpythonのスクリプトです。 見当たらなかったので、作ってみました。 雑な実装ですのでお手柔らかに 久々にGithub Pagesでblog更新しようとしたらできず、GithubのメニューでSecurityを設定すると行けるみたい。</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">JARL会員情報検索を自動化</title><link href="https://jj1bby.com/tips/2022/01/08/Check-JARL-menbership.html" rel="alternate" type="text/html" title="JARL会員情報検索を自動化" /><published>2022-01-08T13:05:00+00:00</published><updated>2022-01-08T13:05:00+00:00</updated><id>https://jj1bby.com/tips/2022/01/08/Check-JARL-menbership</id><content type="html" xml:base="https://jj1bby.com/tips/2022/01/08/Check-JARL-menbership.html">&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;python, selenium, pandasを利用。&lt;/li&gt;
  &lt;li&gt;HamlogからExcel-&amp;gt;CSVと出力したファイルを読み込み、コールサインを取得して検索し、QSL欄に書き戻す&lt;/li&gt;
  &lt;li&gt;存在しうるコールサインか確認した列など、いくつか追加しているので、不要なら削除してください。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;新ソースコード&quot;&gt;新ソースコード&lt;/h2&gt;
&lt;p&gt;‘&lt;a href=&quot;https://jj1bby.com/qslcheck2.py&quot;&gt;qslcheck2.py&lt;/a&gt;’
重複するコールサインを除いてユニークなコールサインだけをJARLで検索し、その結果を展開するように変更。&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pathlib&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#https://chromedriver.chromium.org/getting-started をダウンロードし、chromedriver.exe をソースコードのディレクトリに配置
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium.webdriver.chrome.service&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Service&lt;/span&gt; 
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium.webdriver.common.by&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;


&lt;span class=&quot;c1&quot;&gt;#JARL 会員サイトURL
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;JARL&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;https://www.jarl.com/Page/Search/MemberSearch.aspx?Language=Jp&quot;&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#読み込むHamlogのCSVファイル名 実際にはHamlogの検索-複合検索条件と印刷メニューでExcel形式で書き出し、ExcelからUTF-8のCSVで保存する必要がある
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qsl&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;LogList.csv&quot;&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#最終的に出力するCSVファイル名
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;csvout&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;qslchecked.csv&quot;&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#CSVファイル読み込み
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_code&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;qsl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;#debug用に読み込む列を少なく設定
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;#nrows=40,
&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;index_col&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 移動局を/で分割し、格納
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;  &lt;span class=&quot;n&quot;&gt;df_code&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'Call'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'/'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;expand&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#rename
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CS_only'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'Portable'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# CSをテストして結果をfCSへ格納。存在しないCSならばFalse
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'fCS'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CS_only'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'^J[AE-S][0-9][A-Z]{3}|J[AR][0-9][A-Z]{2}|JD1[A-Z]{3}|7[J-N][0-9][A-Z]{3}|8[J-N][0-9][0-9A-Z]+$'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# df_listに元のdf_codeとdf_csを結合
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_code&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'columns'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; 

&lt;span class=&quot;c1&quot;&gt;#重複したCSを除くユニークなコールサインのDFをつくり、それだけをJARLのWebで問い合わせる
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;CallSign&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CS_only'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;duplicated&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;subset&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CS_only'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)])&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#JARL会員検索
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Service&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'chromedriver'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Chrome&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;JARL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;maximize_window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;jarl_res&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;m&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CallSign&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;txtCallSign&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find_element&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;txtCallSign&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;txtCallSign&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;send_keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;btnSearch&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find_element&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;btnSearch&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;btnSearch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;td&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find_element&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;ListView1_lblResult_0&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;jarl_res&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;td&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#問い合わせ結果のDF
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_isJARL&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jarl_res&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'isJARL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#対応するコールサインのDFを結合
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_isJARL&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_isJARL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;CallSign&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CallSign'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;quit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#マスターDFにJARL会員情報を格納してdfを結合
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#ユニークなコールサインDFをマスターDFでマッチさせて展開
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;insert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'isJARL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CS_only'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_isJARL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CallSign'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'isJARL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#QSL列の値をJARL会員情報の検索結果から書き換える
#QSL J yes, N no qsl, S SASE - non jarl 自分の使っている記号に合わせて下さい。
#○ Yes via等の対応は入れていません。
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'QSL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'QSL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'isJARL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;×&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;S&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'QSL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'QSL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'isJARL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;○ NO&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;N&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#Debug          
#print(df_list)
#print(df_list.columns.values)
&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#Debug Data check
#print('dataframeの行数・列数の確認==&amp;gt;\n', df_code.shape)
#print('indexの確認==&amp;gt;\n', df_code.index)
#print('columnの確認==&amp;gt;\n', df_code.columns)
#print('dataframeの各列のデータ型を確認==&amp;gt;\n', df_code.dtypes)
#print(df_list)
#print (len(df_list['CS_only']), &quot;includes &quot;, df_list['CS_only'].nunique(), &quot;unique CSs&quot;)
&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#csvファイルに書き込み
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;pathlib&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;csvout&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;#index=False,
&lt;/span&gt;        &lt;span class=&quot;c1&quot;&gt;#quoting=csv.QUOTE_NONNUMERIC,
&lt;/span&gt;        &lt;span class=&quot;n&quot;&gt;encoding&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;utf_8_sig&quot;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;旧ソースコード&quot;&gt;旧ソースコード&lt;/h2&gt;
&lt;p&gt;‘&lt;a href=&quot;https://jj1bby.com/qslcheck.py&quot;&gt;qslcheck.py&lt;/a&gt;’&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pathlib&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#https://chromedriver.chromium.org/getting-started をダウンロードし、chromedriver.exe をソースコードのディレクトリに配置
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium.webdriver.chrome.service&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Service&lt;/span&gt; 
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium.webdriver.common.by&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;


&lt;span class=&quot;c1&quot;&gt;#JARL 会員サイトURL
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;JARL&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;https://www.jarl.com/Page/Search/MemberSearch.aspx?Language=Jp&quot;&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#読み込むHamlogのCSVファイル名 実際にはHamlogの検索-複合検索条件と印刷メニューでExcel形式で書き出し、ExcelからUTF-8のCSVで保存する必要がある
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;qsl&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;LogList.csv&quot;&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#最終的に出力するCSVファイル名
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;csvout&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;qslchecked.csv&quot;&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#CSVファイル読み込み
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_code&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;qsl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;index_col&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 移動局を/で分割し、格納
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;  &lt;span class=&quot;n&quot;&gt;df_code&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'Call'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'/'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;expand&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#rename
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CS_only'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;'Portable'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# CSをテストして結果をfCSへ格納。存在しないCSならばFalse
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'fCS'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CS_only'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'^J[AE-S][0-9][A-Z]{3}|J[AR][0-9][A-Z]{2}|JD1[A-Z]{3}|7[J-N][0-9][A-Z]{3}|8[J-N][0-9][0-9A-Z]+$'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# df_listに元のdf_codeとdf_csを結合
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_code&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_cs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'columns'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; 

&lt;span class=&quot;c1&quot;&gt;#Debug Data check
#print('dataframeの行数・列数の確認==&amp;gt;\n', df_code.shape)
#print('indexの確認==&amp;gt;\n', df_code.index)
#print('columnの確認==&amp;gt;\n', df_code.columns)
#print('dataframeの各列のデータ型を確認==&amp;gt;\n', df_code.dtypes)
#print(df_list)
&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CallSign&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'CS_only'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#JARL会員検索
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Service&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'chromedriver'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Chrome&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;JARL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;maximize_window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;jarl_res&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;m&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CallSign&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;txtCallSign&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find_element&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;txtCallSign&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;txtCallSign&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;send_keys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;btnSearch&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find_element&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;btnSearch&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;btnSearch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;td&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find_element&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;by&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;ListView1_lblResult_0&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;jarl_res&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;td&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df_isJARL&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;DataFrame&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;jarl_res&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'isJARL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;browser&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;quit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#マスターリストにJARL会員情報を格納してdfを結合
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;reset_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_isJARL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;axis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#QSLの値をJARL会員情報の検索結果から書き換える
#QSL J yes, N no qsl, S SASE - non jarl 自分の使っている記号に合わせて下さい。
#○ Yes via等の対応は入れていません。
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'QSL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'QSL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'isJARL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;×&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;S&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'QSL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'QSL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'isJARL'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;○ NO&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;N&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;#Debug          
#print(df_list)
#print(df_list.columns.values)
&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#csvファイルに書き込み
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df_list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;pathlib&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;csvout&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;#index=False,
&lt;/span&gt;        &lt;span class=&quot;c1&quot;&gt;#quoting=csv.QUOTE_NONNUMERIC,
&lt;/span&gt;        &lt;span class=&quot;n&quot;&gt;encoding&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;utf_8_sig&quot;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Tips" /><summary type="html">TL;DR python, selenium, pandasを利用。 HamlogからExcel-&amp;gt;CSVと出力したファイルを読み込み、コールサインを取得して検索し、QSL欄に書き戻す 存在しうるコールサインか確認した列など、いくつか追加しているので、不要なら削除してください。 新ソースコード ‘qslcheck2.py’ 重複するコールサインを除いてユニークなコールサインだけをJARLで検索し、その結果を展開するように変更。 import pathlib #https://chromedriver.chromium.org/getting-started をダウンロードし、chromedriver.exe をソースコードのディレクトリに配置 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By import pandas as pd #JARL 会員サイトURL JARL = &quot;https://www.jarl.com/Page/Search/MemberSearch.aspx?Language=Jp&quot; #読み込むHamlogのCSVファイル名 実際にはHamlogの検索-複合検索条件と印刷メニューでExcel形式で書き出し、ExcelからUTF-8のCSVで保存する必要がある qsl = &quot;LogList.csv&quot; #最終的に出力するCSVファイル名 csvout =&quot;qslchecked.csv&quot; #CSVファイル読み込み df_code = pd.read_csv( qsl, #debug用に読み込む列を少なく設定 #nrows=40, index_col=0 ) # 移動局を/で分割し、格納 df_cs = df_code['Call'].str.split('/', expand=True) #rename df_cs.columns = ['CS_only', 'Portable'] # CSをテストして結果をfCSへ格納。存在しないCSならばFalse df_cs['fCS'] = df_cs['CS_only'].str.match('^J[AE-S][0-9][A-Z]{3}|J[AR][0-9][A-Z]{2}|JD1[A-Z]{3}|7[J-N][0-9][A-Z]{3}|8[J-N][0-9][0-9A-Z]+$') # df_listに元のdf_codeとdf_csを結合 df_list = pd.concat([df_code, df_cs], axis='columns') #重複したCSを除くユニークなコールサインのDFをつくり、それだけをJARLのWebで問い合わせる CallSign = list(df_list['CS_only'][~df_list.duplicated(subset='CS_only')]) #JARL会員検索 s = Service ('chromedriver') browser = webdriver.Chrome(service=s) browser.get(JARL) browser.maximize_window() jarl_res = [] for m in CallSign: txtCallSign = browser.find_element(by=By.ID, value = &quot;txtCallSign&quot;) txtCallSign.send_keys(m) btnSearch = browser.find_element(by=By.ID, value = &quot;btnSearch&quot;) btnSearch.click() td = browser.find_element(by=By.ID, value = &quot;ListView1_lblResult_0&quot;) jarl_res.append(td.text) #問い合わせ結果のDF df_isJARL = pd.DataFrame(jarl_res, columns = ['isJARL']) #対応するコールサインのDFを結合 df_isJARL = pd.concat([df_isJARL, pd.DataFrame(CallSign, columns = ['CallSign'])], axis=1) browser.quit() #マスターDFにJARL会員情報を格納してdfを結合 df_list = df_list.reset_index() #ユニークなコールサインDFをマスターDFでマッチさせて展開 df_list.insert(len(df_list.columns), 'isJARL', df_list['CS_only'].map(df_isJARL.set_index('CallSign')['isJARL'])) #QSL列の値をJARL会員情報の検索結果から書き換える #QSL J yes, N no qsl, S SASE - non jarl 自分の使っている記号に合わせて下さい。 #○ Yes via等の対応は入れていません。 df_list['QSL'] = df_list['QSL'].where(df_list['isJARL'] != &quot;×&quot;, &quot;S&quot;) df_list['QSL'] = df_list['QSL'].where(df_list['isJARL'] != &quot;○ NO&quot;, &quot;N&quot;) #Debug #print(df_list) #print(df_list.columns.values) #Debug Data check #print('dataframeの行数・列数の確認==&amp;gt;\n', df_code.shape) #print('indexの確認==&amp;gt;\n', df_code.index) #print('columnの確認==&amp;gt;\n', df_code.columns) #print('dataframeの各列のデータ型を確認==&amp;gt;\n', df_code.dtypes) #print(df_list) #print (len(df_list['CS_only']), &quot;includes &quot;, df_list['CS_only'].nunique(), &quot;unique CSs&quot;) #csvファイルに書き込み df_list.to_csv( pathlib.Path(&quot;&quot;, csvout), #index=False, #quoting=csv.QUOTE_NONNUMERIC, encoding=&quot;utf_8_sig&quot; ) 旧ソースコード ‘qslcheck.py’ import pathlib #https://chromedriver.chromium.org/getting-started をダウンロードし、chromedriver.exe をソースコードのディレクトリに配置 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By import pandas as pd #JARL 会員サイトURL JARL = &quot;https://www.jarl.com/Page/Search/MemberSearch.aspx?Language=Jp&quot; #読み込むHamlogのCSVファイル名 実際にはHamlogの検索-複合検索条件と印刷メニューでExcel形式で書き出し、ExcelからUTF-8のCSVで保存する必要がある qsl = &quot;LogList.csv&quot; #最終的に出力するCSVファイル名 csvout =&quot;qslchecked.csv&quot; #CSVファイル読み込み df_code = pd.read_csv( qsl, index_col=0 ) # 移動局を/で分割し、格納 df_cs = df_code['Call'].str.split('/', expand=True) #rename df_cs.columns = ['CS_only', 'Portable'] # CSをテストして結果をfCSへ格納。存在しないCSならばFalse df_cs['fCS'] = df_cs['CS_only'].str.match('^J[AE-S][0-9][A-Z]{3}|J[AR][0-9][A-Z]{2}|JD1[A-Z]{3}|7[J-N][0-9][A-Z]{3}|8[J-N][0-9][0-9A-Z]+$') # df_listに元のdf_codeとdf_csを結合 df_list = pd.concat([df_code, df_cs], axis='columns') #Debug Data check #print('dataframeの行数・列数の確認==&amp;gt;\n', df_code.shape) #print('indexの確認==&amp;gt;\n', df_code.index) #print('columnの確認==&amp;gt;\n', df_code.columns) #print('dataframeの各列のデータ型を確認==&amp;gt;\n', df_code.dtypes) #print(df_list) CallSign = list(df_list['CS_only']) #JARL会員検索 s = Service ('chromedriver') browser = webdriver.Chrome(service=s) browser.get(JARL) browser.maximize_window() jarl_res = [] for m in CallSign: txtCallSign = browser.find_element(by=By.ID, value = &quot;txtCallSign&quot;) txtCallSign.send_keys(m) btnSearch = browser.find_element(by=By.ID, value = &quot;btnSearch&quot;) btnSearch.click() td = browser.find_element(by=By.ID, value = &quot;ListView1_lblResult_0&quot;) jarl_res.append(td.text) df_isJARL = pd.DataFrame(jarl_res, columns = ['isJARL']) browser.quit() #マスターリストにJARL会員情報を格納してdfを結合 df_list = df_list.reset_index() df_list = pd.concat([df_list, df_isJARL], axis=1) #QSLの値をJARL会員情報の検索結果から書き換える #QSL J yes, N no qsl, S SASE - non jarl 自分の使っている記号に合わせて下さい。 #○ Yes via等の対応は入れていません。 df_list['QSL'] = df_list['QSL'].where(df_list['isJARL'] != &quot;×&quot;, &quot;S&quot;) df_list['QSL'] = df_list['QSL'].where(df_list['isJARL'] != &quot;○ NO&quot;, &quot;N&quot;) #Debug #print(df_list) #print(df_list.columns.values) #csvファイルに書き込み df_list.to_csv( pathlib.Path(&quot;&quot;, csvout), #index=False, #quoting=csv.QUOTE_NONNUMERIC, encoding=&quot;utf_8_sig&quot; )</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">レピーターリスト</title><link href="https://jj1bby.com/tips/2021/06/16/Repeater.html" rel="alternate" type="text/html" title="レピーターリスト" /><published>2021-06-16T20:30:00+00:00</published><updated>2021-06-16T20:30:00+00:00</updated><id>https://jj1bby.com/tips/2021/06/16/Repeater</id><content type="html" xml:base="https://jj1bby.com/tips/2021/06/16/Repeater.html">&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;JARLが公開しているPDFを整形したものです。&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1SSxUxYsYnzZm-NfCTrdOB-WxfEOWaZOvj9EqpkQe8yM/edit?usp=sharing&quot;&gt;レピーターリスト&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/maps/d/u/0/edit?mid=1-edc-_HbSItUhPAlMshZl-AFUSZrPAH4&amp;amp;usp=sharing&quot;&gt;Google Map&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://www.jarl.org/Japanese/A_Shiryo/A-1_Repeater/A-1_Repeater.htm&quot;&gt;JARLの全国(FM)レピーターリスト&lt;/a&gt;を整形して再利用しやすいようにしてみました。
利用例として運用場所からレピーターまでの距離、方位角を得るようにしています。また、別途Google Mapで表示するようにしました。&lt;/p&gt;

&lt;p&gt;PDFは印刷にはいいかもですが、色々利用できないのでシンプルなデータに整形してみました。セルのグループ化も困りものですね。&lt;/p&gt;

&lt;h2 id=&quot;データの作り方&quot;&gt;データの作り方&lt;/h2&gt;
&lt;p&gt;総務省がデータの作り方をまとめていますので、これが参考になります。
&lt;a href=&quot;https://www.soumu.go.jp/main_content/000723626.pdf&quot;&gt;統計表における機械判読可能なデータ 作成に関する表記方法&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Tips" /><summary type="html">TL;DR JARLが公開しているPDFを整形したものです。 レピーターリスト Google Map JARLの全国(FM)レピーターリストを整形して再利用しやすいようにしてみました。 利用例として運用場所からレピーターまでの距離、方位角を得るようにしています。また、別途Google Mapで表示するようにしました。 PDFは印刷にはいいかもですが、色々利用できないのでシンプルなデータに整形してみました。セルのグループ化も困りものですね。 データの作り方 総務省がデータの作り方をまとめていますので、これが参考になります。 統計表における機械判読可能なデータ 作成に関する表記方法</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">アマチュア無線でのPPS対応PD電源の活用</title><link href="https://jj1bby.com/tips/2021/03/28/Power-supply.html" rel="alternate" type="text/html" title="アマチュア無線でのPPS対応PD電源の活用" /><published>2021-03-28T09:30:00+00:00</published><updated>2021-03-28T09:30:00+00:00</updated><id>https://jj1bby.com/tips/2021/03/28/Power-supply</id><content type="html" xml:base="https://jj1bby.com/tips/2021/03/28/Power-supply.html">&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112736878-660f9e80-8f99-11eb-9a71-7b9f2cb3a586.jpg&quot; alt=&quot;発発&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;発発の給油口の蓋にパイプを通して、携行缶内の燃料を自動供給するというシステムもヘビーデューティー仕様では必須&lt;/li&gt;
  &lt;li&gt;1200MHz 1W移動運用だと、13.8V 2Aもあれば十分IC-9700が稼働します。モバイルバッテリーにPDで十分!&lt;/li&gt;
  &lt;li&gt;9/12/15/20Vを生成するトリガーケーブルを作って運用。&lt;/li&gt;
  &lt;li&gt;無線機は15V(16V)くらい定格上限だったり明記されているのでまぁ安心？&lt;/li&gt;
  &lt;li&gt;でも、12Vではちょっと低い、15Vではちょっと高い。やっぱり13.8Vがほしい。DCDCかませなくても、ロスなく取り出せるとは!!!&lt;/li&gt;
  &lt;li&gt;トランスバーター用電源にPDを使いたいが、15V通すのは気が引ける。&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.usb.org/document-library/usb-power-delivery&quot;&gt;USB Power Delivery&lt;/a&gt; Programmable power supply (PPS)で任意電圧が取り出せるらしい。&lt;/li&gt;
  &lt;li&gt;でもまだPPS対応機器は限定。やや人柱な結果に…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;発発で24時間、HF 50Wでブリブリコンテストに参加するシステムを組んでいましたが、1200MHzに上がってからはめっきりダウンサイジング。&lt;/p&gt;

&lt;p&gt;PD対応のモバイルバッテリーあたりで、IC-9700も駆動できちゃいます。&lt;/p&gt;

&lt;p&gt;6時間級のコンテストでハンディ機ならこのシステム（バッテリ2台）でなんとか行けます。&lt;/p&gt;

&lt;p&gt;今回は、ここにPPSという任意電圧を取り出す拡張機能を使って13.8Vを取り出してみるという記事です。&lt;/p&gt;

&lt;h3 id=&quot;usb-power-delivery-pps&quot;&gt;USB Power Delivery PPS&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112736872-598b4600-8f99-11eb-92c8-6e1fb4d866c7.png&quot; alt=&quot;PD&quot; /&gt;
PPS = Programmable power supply ということで、PDで任意の電圧を設定、取り出すことができる規格です。&lt;/p&gt;

&lt;p&gt;固定の9, 12, 15, 20Vを取り出すトリガーケーブルが最近ようやく知名度を獲得してきて、利用を始めたOMも多いようです。&lt;/p&gt;

&lt;p&gt;山行ではコンパクトでマルチソースなモバイルバッテリーが大変便利ですね。しばらく前からトリガー用小型基板を数百円でAliexpressから購入して愛用しています。&lt;/p&gt;

&lt;p&gt;ノイズ等気になったことはありません。&lt;/p&gt;

&lt;h3 id=&quot;usb-pdシステムで必要なもの&quot;&gt;USB PDシステムで必要なもの&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;PD対応モバイルバッテリー。12/15V 3A, 20V 5Aまであるといいですが、20V3Aとかでも十分ですね。&lt;/li&gt;
  &lt;li&gt;PD対応ケーブル。 20V5A対応を謳うものがあれば万全。なくても、まぁいけるでしょう。&lt;/li&gt;
  &lt;li&gt;PDトリガー。ケーブル内蔵品もあります。PDでは電源側(Source)と負荷側(Sink)で通信を常に行い、電圧のネゴシエーション等を処理しています。Sink側の通信を担う回路が必要です。&lt;/li&gt;
  &lt;li&gt;DCプラグ。PDトリガー内蔵で、負荷側がDCプラグ5525付きのケーブルも売っている。&lt;/li&gt;
  &lt;li&gt;USBテスター。 神経質な人はそろえておくと、抵抗値とか、対応状況が可視化できます。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aliexpressなどで、自作用&lt;a href=&quot;https://ja.aliexpress.com/item/4000460866867.html?spm=a2g0o.productlist.0.0.676754f50iC13k&amp;amp;algo_pvid=e1391d28-af44-468a-8f44-e2e7bd828006&amp;amp;algo_expid=e1391d28-af44-468a-8f44-e2e7bd828006-5&amp;amp;btsid=0b0a556b16168862676057846ec7c0&amp;amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_&quot;&gt;PDトリガー&lt;/a&gt;基板を入手しましょう。簡単な工作です。
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112738165-b1c74580-8fa3-11eb-995c-d3492dd9b51a.JPG&quot; alt=&quot;PD Trigger&quot; /&gt;&lt;/p&gt;

&lt;p&gt;電圧をジャンパで設定するので、+-と電圧は事前に確認しましょう。&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112738162-af64eb80-8fa3-11eb-8228-ffb139d21372.jpg&quot; alt=&quot;自作ケーブル&quot; /&gt;&lt;/p&gt;

&lt;p&gt;面倒な人はお高い市販品、ケーブル一体型などがお手軽です。&lt;/p&gt;

&lt;h3 id=&quot;dcプラグのシステム統一を考えておく&quot;&gt;DCプラグのシステム統一を考えておく&lt;/h3&gt;
&lt;p&gt;DCプラグ5.5mm外径2.1mm内径センタープラスがデファクト(いわゆる5521))ですが、5525や5521/25両用、DG-G7/TH-D74/ID-31, 51など3.4x1.4、VX-3 2.35×0.7、FT-817/818N/VX-8 4.0×1.7、IC-705 5.5x2.5などのDCプラグを5521と変換するプラグは持っておいたほうがいいです。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112737542-a0c80580-8f9e-11eb-9d3e-f67bd0fe0396.png&quot; alt=&quot;APP&quot; /&gt;
大電流を流すには少し心配なDCプラグなので、&lt;a href=&quot;https://www.andersonpower.com/us/en/resources/PowerPoleResourcesPage.html&quot;&gt;Anderson Power Pole&lt;/a&gt;でシステムを組む方が多いですね。私もAPPへ移行しました。レガシーというが、機器側がDCなので、DCプラグも併用しています。&lt;/p&gt;

&lt;h3 id=&quot;pps用ケーブル&quot;&gt;PPS用ケーブル&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112736913-c1da2780-8f99-11eb-8da3-95d13ce50cdd.jpg&quot; alt=&quot;PPS Cable&quot; /&gt;
USB A - USB Cのドングル（電圧設定時にPCに接続して利用）とType Cケーブルのセットを入手。&lt;br /&gt;
私の買った&lt;a href=&quot;https://ja.aliexpress.com/item/4000382210098.html?spm=a2g0s.9042311.0.0.3c544c4dCqFbdf&quot;&gt;ケーブル&lt;/a&gt;は機器側の7つの設定を確認して設定する仕様のせいか、機器側が７つ以上設定があると肝心の任意電圧を設定する設定がUIにも現れず、結局設定できませんでした。手持ちのPPS対応電源では13.8Vが設定できました。&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112736914-c3a3eb00-8f99-11eb-8aba-744ba6132e99.jpg&quot; alt=&quot;USB Power PD&quot; /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112736917-c56dae80-8f99-11eb-8075-8c87927b41c0.jpg&quot; alt=&quot;13.8V&quot; /&gt;&lt;/p&gt;

&lt;p&gt;ちょっと面倒に思える、手順です。&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;USBドングルとケーブルを接続しておいて、PCにUSB Aを差し込む&lt;/li&gt;
  &lt;li&gt;設定アプリ(witrn upgrade 3.3)で設定ファイルを読み込む&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112737768-4760d600-8fa0-11eb-99b7-cb58b1bfa9ac.png&quot; alt=&quot;witrn upgrade 3.3&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;任意にするには”PDC002アダプタ任意電圧選択(LED詳細)_2.0.pd1s”を読み込み、Upgradeボタンでケーブルにファームをアップロード(ダウンロード?)する。&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112737810-8858ea80-8fa0-11eb-8aa6-c1f0176383a0.png&quot; alt=&quot;upgrade&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;PCからケーブルを取り外し、Type CプラグをPPSサポートしている機器につなぐ&lt;/li&gt;
  &lt;li&gt;ケーブルが接続された機器と通信を行い、接続機器がサポートしている電圧パターンを理解
ここでは電圧は設定されません!&lt;/li&gt;
  &lt;li&gt;再度ケーブルをUSBドングルに差し込み、PCに接続し、設定アプリで電圧の設定を行う。&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112737853-07e6b980-8fa1-11eb-842c-4012bd91ec78.png&quot; alt=&quot;電圧設定&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Config Unitのドロップダウンで固定電圧（ここでは15V 3A）か、任意電圧を選び（横のテキストボックスで任意電圧を0.02の倍数で指定）、Configボタンを押す&lt;/li&gt;
  &lt;li&gt;再度機器に接続すると、設定電圧が出力されているはず。電圧計で確認！
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112736916-c43c8180-8f99-11eb-9fce-7ff9f31f67a3.jpg&quot; alt=&quot;15V&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;別の機器につなぐと5Vしかでない安全設計。&lt;/p&gt;

&lt;p&gt;設定ソフトのダウンロードは怪しさ満載な以下サイトから自己責任で。
Firmwareダウンロード（本家）&lt;br /&gt;
http://www.witrn.com/witrn/upd/PDC002_software.rar&lt;br /&gt;
Firmwareダウンロード（コピー）&lt;br /&gt;
https://www.amazon.co.jp/clouddrive/share/fbZQyaMTDO3hx8Ir1vFUtjWiucwZW7PzgpfM3IqHsTV&lt;/p&gt;

&lt;h3 id=&quot;pd-pps対応モバイルバッテリー&quot;&gt;PD PPS対応モバイルバッテリー&lt;/h3&gt;
&lt;p&gt;PD PPS対応を謳うモバイルバッテリーはまだ数が少ないです。見つけられたのは一つだけ。
SMARTCOBY20000 60W対応。&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112736919-c69edb80-8f99-11eb-9c67-2ace6bbb34ca.jpg&quot; alt=&quot;Mobile Battery PD all&quot; /&gt;
ただし、前述したようにPPSケーブルとの組み合わせでは残念ながら任意電圧を設定できませんでした。&lt;/p&gt;

&lt;p&gt;これは、バッテリー側の問題ではなくケーブル側の問題だと思われます。&lt;/p&gt;

&lt;p&gt;ケーブルも他に見当たりませんが、検索してみたところPPS対応のトリガー基板はいくつか世にあるようです。&lt;/p&gt;

&lt;h3 id=&quot;pd-pps対応トリガー&quot;&gt;PD PPS対応トリガー&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112738284-dff95500-8fa4-11eb-9f22-80e42a37b058.png&quot; alt=&quot;PD Micro&quot; /&gt;
何とか任意電圧を出せないものか。&lt;a href=&quot;https://www.crowdsupply.com/ryan-ma/pd-micro&quot;&gt;PD Micro&lt;/a&gt;という、Open Source &amp;amp; Hardwarreのプロジェクトがあり、お望みにかつArduino付きで妄想が広がりそうです。&lt;/p&gt;

&lt;p&gt;送料がやや高い$18なのと、送付が6月後半だけど、ポチっときました。着きましたら、また結果をアップデートいたします。&lt;/p&gt;

&lt;h3 id=&quot;aliexpressでお買い物&quot;&gt;Aliexpressでお買い物&lt;/h3&gt;
&lt;p&gt;さて、今回もいくつか紹介したパーツAliexpressさん経由で購入しています。&lt;/p&gt;

&lt;p&gt;最近送料値上げもありますが、いつ到着するか気にしない、安めのお買い物にはAliexpressがワクワクします。&lt;/p&gt;

&lt;p&gt;100回に一回くらい、何事か起こります。これまで、428回購入していますが、さしたるトラブルはありません。&lt;/p&gt;

&lt;p&gt;たまーに故障、入り数が少ない、３か月たっても届かない（でも後から来ることが多い）等々も含めてのお買い物体験。返金保証なので心配なし。売主には買主が届いたと申告しないとお金が渡らないシステムです。&lt;/p&gt;

&lt;p&gt;日本の通販にもクレカ番号入れない！セキュアな方にはおすすめできませんが。&lt;/p&gt;

&lt;p&gt;まだAliexpressに登録してない方は、こちらの&lt;a href=&quot;https://a.aliexpress.com/_mtFaoNp&quot;&gt;紹介コード&lt;/a&gt;を使うと$24 USD相当のクーポンがもらえるそうです。私に紹介料$5 USDクーポンもいただけるそう。よろしかったら、どうぞ。&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;ご紹介した商品&quot;&gt;ご紹介した商品&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.amazon.co.jp/gp/product/B08CHK2YCC/ref=as_li_tl?ie=UTF8&amp;amp;camp=247&amp;amp;creative=1211&amp;amp;creativeASIN=B08CHK2YCC&amp;amp;linkCode=as2&amp;amp;tag=jj1bby-22&amp;amp;linkId=eb5a9f7f2074fe40e5e08747d0c334d3&quot;&gt;CIO SMARTCOBY 20000&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;
&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Tips" /><summary type="html">TL;DR 発発の給油口の蓋にパイプを通して、携行缶内の燃料を自動供給するというシステムもヘビーデューティー仕様では必須 1200MHz 1W移動運用だと、13.8V 2Aもあれば十分IC-9700が稼働します。モバイルバッテリーにPDで十分! 9/12/15/20Vを生成するトリガーケーブルを作って運用。 無線機は15V(16V)くらい定格上限だったり明記されているのでまぁ安心？ でも、12Vではちょっと低い、15Vではちょっと高い。やっぱり13.8Vがほしい。DCDCかませなくても、ロスなく取り出せるとは!!! トランスバーター用電源にPDを使いたいが、15V通すのは気が引ける。 USB Power Delivery Programmable power supply (PPS)で任意電圧が取り出せるらしい。 でもまだPPS対応機器は限定。やや人柱な結果に… 発発で24時間、HF 50Wでブリブリコンテストに参加するシステムを組んでいましたが、1200MHzに上がってからはめっきりダウンサイジング。 PD対応のモバイルバッテリーあたりで、IC-9700も駆動できちゃいます。 6時間級のコンテストでハンディ機ならこのシステム（バッテリ2台）でなんとか行けます。 今回は、ここにPPSという任意電圧を取り出す拡張機能を使って13.8Vを取り出してみるという記事です。 USB Power Delivery PPS PPS = Programmable power supply ということで、PDで任意の電圧を設定、取り出すことができる規格です。 固定の9, 12, 15, 20Vを取り出すトリガーケーブルが最近ようやく知名度を獲得してきて、利用を始めたOMも多いようです。 山行ではコンパクトでマルチソースなモバイルバッテリーが大変便利ですね。しばらく前からトリガー用小型基板を数百円でAliexpressから購入して愛用しています。 ノイズ等気になったことはありません。 USB PDシステムで必要なもの PD対応モバイルバッテリー。12/15V 3A, 20V 5Aまであるといいですが、20V3Aとかでも十分ですね。 PD対応ケーブル。 20V5A対応を謳うものがあれば万全。なくても、まぁいけるでしょう。 PDトリガー。ケーブル内蔵品もあります。PDでは電源側(Source)と負荷側(Sink)で通信を常に行い、電圧のネゴシエーション等を処理しています。Sink側の通信を担う回路が必要です。 DCプラグ。PDトリガー内蔵で、負荷側がDCプラグ5525付きのケーブルも売っている。 USBテスター。 神経質な人はそろえておくと、抵抗値とか、対応状況が可視化できます。 Aliexpressなどで、自作用PDトリガー基板を入手しましょう。簡単な工作です。 電圧をジャンパで設定するので、+-と電圧は事前に確認しましょう。 面倒な人はお高い市販品、ケーブル一体型などがお手軽です。 DCプラグのシステム統一を考えておく DCプラグ5.5mm外径2.1mm内径センタープラスがデファクト(いわゆる5521))ですが、5525や5521/25両用、DG-G7/TH-D74/ID-31, 51など3.4x1.4、VX-3 2.35×0.7、FT-817/818N/VX-8 4.0×1.7、IC-705 5.5x2.5などのDCプラグを5521と変換するプラグは持っておいたほうがいいです。 大電流を流すには少し心配なDCプラグなので、Anderson Power Poleでシステムを組む方が多いですね。私もAPPへ移行しました。レガシーというが、機器側がDCなので、DCプラグも併用しています。 PPS用ケーブル USB A - USB Cのドングル（電圧設定時にPCに接続して利用）とType Cケーブルのセットを入手。 私の買ったケーブルは機器側の7つの設定を確認して設定する仕様のせいか、機器側が７つ以上設定があると肝心の任意電圧を設定する設定がUIにも現れず、結局設定できませんでした。手持ちのPPS対応電源では13.8Vが設定できました。 ちょっと面倒に思える、手順です。 USBドングルとケーブルを接続しておいて、PCにUSB Aを差し込む 設定アプリ(witrn upgrade 3.3)で設定ファイルを読み込む 任意にするには”PDC002アダプタ任意電圧選択(LED詳細)_2.0.pd1s”を読み込み、Upgradeボタンでケーブルにファームをアップロード(ダウンロード?)する。 PCからケーブルを取り外し、Type CプラグをPPSサポートしている機器につなぐ ケーブルが接続された機器と通信を行い、接続機器がサポートしている電圧パターンを理解 ここでは電圧は設定されません! 再度ケーブルをUSBドングルに差し込み、PCに接続し、設定アプリで電圧の設定を行う。 Config Unitのドロップダウンで固定電圧（ここでは15V 3A）か、任意電圧を選び（横のテキストボックスで任意電圧を0.02の倍数で指定）、Configボタンを押す 再度機器に接続すると、設定電圧が出力されているはず。電圧計で確認！ 別の機器につなぐと5Vしかでない安全設計。 設定ソフトのダウンロードは怪しさ満載な以下サイトから自己責任で。 Firmwareダウンロード（本家） http://www.witrn.com/witrn/upd/PDC002_software.rar Firmwareダウンロード（コピー） https://www.amazon.co.jp/clouddrive/share/fbZQyaMTDO3hx8Ir1vFUtjWiucwZW7PzgpfM3IqHsTV PD PPS対応モバイルバッテリー PD PPS対応を謳うモバイルバッテリーはまだ数が少ないです。見つけられたのは一つだけ。 SMARTCOBY20000 60W対応。 ただし、前述したようにPPSケーブルとの組み合わせでは残念ながら任意電圧を設定できませんでした。 これは、バッテリー側の問題ではなくケーブル側の問題だと思われます。 ケーブルも他に見当たりませんが、検索してみたところPPS対応のトリガー基板はいくつか世にあるようです。 PD PPS対応トリガー 何とか任意電圧を出せないものか。PD Microという、Open Source &amp;amp; Hardwarreのプロジェクトがあり、お望みにかつArduino付きで妄想が広がりそうです。 送料がやや高い$18なのと、送付が6月後半だけど、ポチっときました。着きましたら、また結果をアップデートいたします。 Aliexpressでお買い物 さて、今回もいくつか紹介したパーツAliexpressさん経由で購入しています。 最近送料値上げもありますが、いつ到着するか気にしない、安めのお買い物にはAliexpressがワクワクします。 100回に一回くらい、何事か起こります。これまで、428回購入していますが、さしたるトラブルはありません。 たまーに故障、入り数が少ない、３か月たっても届かない（でも後から来ることが多い）等々も含めてのお買い物体験。返金保証なので心配なし。売主には買主が届いたと申告しないとお金が渡らないシステムです。 日本の通販にもクレカ番号入れない！セキュアな方にはおすすめできませんが。 まだAliexpressに登録してない方は、こちらの紹介コードを使うと$24 USD相当のクーポンがもらえるそうです。私に紹介料$5 USDクーポンもいただけるそう。よろしかったら、どうぞ。 ご紹介した商品 CIO SMARTCOBY 20000</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">第38回関東UHFコンテスト - ログサマリー提出局発表</title><link href="https://jj1bby.com/contest/2021/03/24/38th-Kanto-UHF-submission.html" rel="alternate" type="text/html" title="第38回関東UHFコンテスト - ログサマリー提出局発表" /><published>2021-03-24T09:30:00+00:00</published><updated>2021-03-24T09:30:00+00:00</updated><id>https://jj1bby.com/contest/2021/03/24/38th-Kanto-UHF-submission</id><content type="html" xml:base="https://jj1bby.com/contest/2021/03/24/38th-Kanto-UHF-submission.html">&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112229546-80ced400-8c76-11eb-8881-c04d3f635b5f.png&quot; alt=&quot;結果&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;ログサマリー提出局数は583局。昨年比は不明。&lt;/li&gt;
  &lt;li&gt;メールで提出しても、受領メールが届かず、後日Webに掲載する&lt;a href=&quot;https://www.jarl.com/kanto/38kuhf-rule.pdf&quot;&gt;規約&lt;/a&gt;。&lt;/li&gt;
  &lt;li&gt;例年提出期限前に2度ほど更新があったと記憶しているが、今年は提出期限3/11を過ぎても音沙汰がなかった。&lt;/li&gt;
  &lt;li&gt;3/22に&lt;a href=&quot;https://www.jarl.com/kanto/38kuhf-accepted.pdf&quot;&gt;発表&lt;/a&gt;。&lt;/li&gt;
  &lt;li&gt;PDFだけで、データとしての利用性が低い。冒頭の画像のようにコピペすると文字化けするので、手で直してテキスト化。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2021/2/11に開催された第38回関東UHFコンテスト。1200MHz部門で&lt;a href=&quot;https://jj1bby.com/contest/2021/02/14/2021-Kanto-UHF.html&quot;&gt;参加&lt;/a&gt;し、歴代レコードをたぶん更新できた。&lt;/p&gt;

&lt;p&gt;早速ログは提出したのだが、ここは受領確認のメールがこないという珍しい運用をする。例年ではコンテスト翌週か翌々週にはWebに受領局一覧が表示されていた記憶がある。&lt;/p&gt;

&lt;p&gt;今年は提出期限を過ぎても掲載がない。&lt;br /&gt;
これでは、確認にならないのだが。&lt;br /&gt;
案の定、掲載されてない！という局がいらしたよう。&lt;/p&gt;

&lt;h2 id=&quot;発表がpdfデータのみ&quot;&gt;発表がPDFデータのみ&lt;/h2&gt;
&lt;p&gt;関東UHFコンテストの運営はなんだかあっさりしている感がある。&lt;/p&gt;

&lt;p&gt;結果発表でも運営側総評や参加局感想・コメントも掲載がなく、質実剛健派。&lt;/p&gt;

&lt;p&gt;そして、受領リストもPDF一枚っきり。&lt;/p&gt;

&lt;p&gt;これではデータにならないので、コピペしてエクセルに保存しとこうかと思ったのだが、文字化ける。&lt;/p&gt;

&lt;p&gt;漢字に文字化けるパターンがアルファベット文字に一意のようなので、Jからちまちま手で置換して、&lt;a href=&quot;https://1drv.ms/x/s!Aj7Pae9D8ugFnq0_b_p-K_M25xBNhw?e=pwxoA3&quot;&gt;テキスト&lt;/a&gt;を得た。&lt;/p&gt;

&lt;p&gt;分析するネタもないので、/付きとなし局を調べる。正規表現が使えないので、ひと手間。&lt;br /&gt;
30%がポータブル局でした。実際に移動運用しているかは不明ですね。&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/112228409-9b07b280-8c74-11eb-8b0c-95dfa71d2b2e.png&quot; alt=&quot;Portable&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;運営へお願い&quot;&gt;運営へお願い&lt;/h2&gt;
&lt;p&gt;コンテスト運営お疲れ様です。コロナ禍においても、規約を変更しないのに「自粛」を求める運営が多い中、移動は自主判断というご対応をいただいてうららかな日差しの中コンテストを楽しむことができました。&lt;br /&gt;
ログ受領単純確認メールの実装をお願いしたいと思います。&lt;/p&gt;

&lt;p&gt;また、コンテスト結果に含める情報ですが、個人的にはJARL支部主催ですと、&lt;a href=&quot;https://www.jarl.com/08test/contest/2020/ghz/2020_result.pdf&quot;&gt;ギガヘルツ コンテスト&lt;/a&gt;などが簡素な中にも、参加局とコンテスト運営のやり取りが感じられて好きです。&lt;/p&gt;

&lt;p&gt;独自運営では&lt;a href=&quot;http://www.ja1yjy.com/article/472459070.html&quot;&gt;鶴見川コンテスト&lt;/a&gt;は気合が入ってます。発表も速いし、総評や分析も色々やってますね。&lt;br /&gt;
Webページがわかりづらいけど。&lt;/p&gt;

&lt;hr /&gt;

&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Contest" /><summary type="html">TL;DR ログサマリー提出局数は583局。昨年比は不明。 メールで提出しても、受領メールが届かず、後日Webに掲載する規約。 例年提出期限前に2度ほど更新があったと記憶しているが、今年は提出期限3/11を過ぎても音沙汰がなかった。 3/22に発表。 PDFだけで、データとしての利用性が低い。冒頭の画像のようにコピペすると文字化けするので、手で直してテキスト化。 2021/2/11に開催された第38回関東UHFコンテスト。1200MHz部門で参加し、歴代レコードをたぶん更新できた。 早速ログは提出したのだが、ここは受領確認のメールがこないという珍しい運用をする。例年ではコンテスト翌週か翌々週にはWebに受領局一覧が表示されていた記憶がある。 今年は提出期限を過ぎても掲載がない。 これでは、確認にならないのだが。 案の定、掲載されてない！という局がいらしたよう。 発表がPDFデータのみ 関東UHFコンテストの運営はなんだかあっさりしている感がある。 結果発表でも運営側総評や参加局感想・コメントも掲載がなく、質実剛健派。 そして、受領リストもPDF一枚っきり。 これではデータにならないので、コピペしてエクセルに保存しとこうかと思ったのだが、文字化ける。 漢字に文字化けるパターンがアルファベット文字に一意のようなので、Jからちまちま手で置換して、テキストを得た。 分析するネタもないので、/付きとなし局を調べる。正規表現が使えないので、ひと手間。 30%がポータブル局でした。実際に移動運用しているかは不明ですね。 運営へお願い コンテスト運営お疲れ様です。コロナ禍においても、規約を変更しないのに「自粛」を求める運営が多い中、移動は自主判断というご対応をいただいてうららかな日差しの中コンテストを楽しむことができました。 ログ受領単純確認メールの実装をお願いしたいと思います。 また、コンテスト結果に含める情報ですが、個人的にはJARL支部主催ですと、ギガヘルツ コンテストなどが簡素な中にも、参加局とコンテスト運営のやり取りが感じられて好きです。 独自運営では鶴見川コンテストは気合が入ってます。発表も速いし、総評や分析も色々やってますね。 Webページがわかりづらいけど。</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">日本の呼出符号 - 正規表現</title><link href="https://jj1bby.com/tips/2021/03/22/JP-Call-Sign.html" rel="alternate" type="text/html" title="日本の呼出符号 - 正規表現" /><published>2021-03-22T09:30:00+00:00</published><updated>2021-03-22T09:30:00+00:00</updated><id>https://jj1bby.com/tips/2021/03/22/JP-Call-Sign</id><content type="html" xml:base="https://jj1bby.com/tips/2021/03/22/JP-Call-Sign.html">&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;正規表現 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;^J[A-S]|^[7-8][J-N]&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft OfficeはOffice Open XML ISO/IEC 29500という国際規格になってます。Excelでは標準でない関数だが、Google DogsではSpreadsheetで=REGEXMATCH()という関数が拡張され、正規表現に一致するか否かを返すことができる。&lt;/li&gt;
  &lt;li&gt;というわけで、コールサインのデータがあれば、日本の&lt;a href=&quot;https://www.itu.int/en/ITU-R/terrestrial/fmd/Pages/call_sign_series.aspx&quot;&gt;コールサイン&lt;/a&gt;は =REGEXMATCH(A1,”&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;^J[A-S]|^[7-8][J-N]&lt;/code&gt;“)などで、TRUE or FALSEで判定されます。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;とりあえず、LoTWのユニークな局から日本局を探してみる。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.hb9bza.net/lotw-users-list&quot;&gt;データ&lt;/a&gt;はHB9BZA局が編纂されているものを用いた。最終コールサインとLoTWへの最終アップロード日付が記載されている。&lt;br /&gt;
149507局中日本の局は6333局、4%ということになる。&lt;/p&gt;

&lt;p&gt;正規表現はどっかに落ちてるかと思ったが、なかったので、作ってみた。というだけの、備忘録のポストです。&lt;/p&gt;

&lt;h2 id=&quot;explicitな正規表現&quot;&gt;Explicitな正規表現&lt;/h2&gt;
&lt;p&gt;MJH局より、以下条件を加えた正規表現をいただきましたので、追記します。ありがとうございました。&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;JDは1のみ&lt;/li&gt;
  &lt;li&gt;2文字コールはJAとJRのみ&lt;/li&gt;
  &lt;li&gt;8J&lt;数字&gt;の後は任意の数の英数文字&lt;/数字&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;^J[AE-S][0-9][A-Z]{3}|J[AR][0-9][A-Z]{2}|JD1[A-Z]{3}|7[J-N][0-9][A-Z]{3}|8[J-N][0-9][0-9A-Z]+$&lt;/code&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Tips" /><summary type="html">TL;DR 正規表現 ^J[A-S]|^[7-8][J-N] Microsoft OfficeはOffice Open XML ISO/IEC 29500という国際規格になってます。Excelでは標準でない関数だが、Google DogsではSpreadsheetで=REGEXMATCH()という関数が拡張され、正規表現に一致するか否かを返すことができる。 というわけで、コールサインのデータがあれば、日本のコールサインは =REGEXMATCH(A1,”^J[A-S]|^[7-8][J-N]“)などで、TRUE or FALSEで判定されます。 とりあえず、LoTWのユニークな局から日本局を探してみる。 データはHB9BZA局が編纂されているものを用いた。最終コールサインとLoTWへの最終アップロード日付が記載されている。 149507局中日本の局は6333局、4%ということになる。 正規表現はどっかに落ちてるかと思ったが、なかったので、作ってみた。というだけの、備忘録のポストです。 Explicitな正規表現 MJH局より、以下条件を加えた正規表現をいただきましたので、追記します。ありがとうございました。 JDは1のみ 2文字コールはJAとJRのみ 8Jの後は任意の数の英数文字 ^J[AE-S][0-9][A-Z]{3}|J[AR][0-9][A-Z]{2}|JD1[A-Z]{3}|7[J-N][0-9][A-Z]{3}|8[J-N][0-9][0-9A-Z]+$</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">終の棲家の探し方 - アマチュア無線 ローカル探索編</title><link href="https://jj1bby.com/tips/2021/03/13/my-final-abode.html" rel="alternate" type="text/html" title="終の棲家の探し方 - アマチュア無線 ローカル探索編" /><published>2021-03-13T09:30:00+00:00</published><updated>2021-03-13T09:30:00+00:00</updated><id>https://jj1bby.com/tips/2021/03/13/my-final-abode</id><content type="html" xml:base="https://jj1bby.com/tips/2021/03/13/my-final-abode.html">&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/111007401-15614880-83d2-11eb-8839-d4893711711d.png&quot; alt=&quot;PM95tp&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;特定エリアのアマチュア無線家数を調べる方法を紹介。&lt;/li&gt;
  &lt;li&gt;現在、終の棲家となる土地を探索中。世田谷に住宅地を抜け出し、ぜひともタワーを建てたい。&lt;/li&gt;
  &lt;li&gt;現在の宅地は幅が7m程しかなく、短縮VDP &lt;a href=&quot;http://www.cd-corp.com/ama/bs41.pdf&quot;&gt;730V-2AW&lt;/a&gt;も斜めにしないと越境する始末。&lt;/li&gt;
  &lt;li&gt;無線に適したロケか、分譲地・別荘地の受け入れ具合なども気になる。既にアンテナが建っていれば実績になるが、Google mapでピンポイントに衛星写真・Street viewを見るの以外は無理。&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.qrz.com/gridmapper&quot;&gt;グリッドロケーター&lt;/a&gt;という&lt;a href=&quot;https://www.qrz.com/&quot;&gt;QRZ.com&lt;/a&gt;のWeb ツールを使うことで、QRZ.comの登録局だけだが、およその位置（ランダム化されて地図上に表示）がわかる。&lt;/li&gt;
  &lt;li&gt;ちなみに、関東近郊で最大局数を誇るグリッドは67局の神田・両国(PM95vq)あたりと、緑区(PM95rm)あたり。某分析好き局の言い方をすれば、?魚グリッドか。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HFをやっている局ならほぼQRZ.comには登録済みではないだろうか。住所を文字で入力するか、地図で指定するとそのデータが保存され、グリッドロケーターのツールで一覧表示することができる。&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/111009102-0da3a300-83d6-11eb-8cff-aae01e08aa53.png&quot; alt=&quot;登録&quot; /&gt;
住所は緯度経度の精度が低ければ矩形で、ピンカーソルでピンポイント指定でき、その上で開示される際におおよその位置にするかなど指定できる。心配な方はおおよそにしておこう。&lt;/p&gt;

&lt;h2 id=&quot;グリッドロケーターで検索してみよう&quot;&gt;&lt;a href=&quot;https://www.qrz.com/gridmapper&quot;&gt;グリッドロケーター&lt;/a&gt;で検索してみよう!&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/111008713-0cbe4180-83d5-11eb-964a-ad55dbebecb0.png&quot; alt=&quot;使い方&quot; /&gt;
使い方は簡単、Gridに希望のグリッドロケーター(例、PM95rm)など入れるだけ。緯度経度でも指定できる。&lt;/p&gt;

&lt;p&gt;希望のグリッドがわからなければ、地図表示にして適当にクリックするか、アイカラーさんの&lt;a href=&quot;https://www.icolor.co.jp/catalog/qsl-card/gridlocator.html&quot;&gt;GL（グリッドロケーター）計算&lt;/a&gt;で、住所から引けます。&lt;/p&gt;

&lt;p&gt;図はPM95rmを指定したところ。&lt;br /&gt;
&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/111008778-337c7800-83d5-11eb-80fb-14aa1f82600b.png&quot; alt=&quot;例&quot; /&gt;
当該スクエア内に若干位置をランダム化した円が表示される。それぞれがQRZ.com登録局になる。コールサインをクリックすれば、ページに飛べる。&lt;/p&gt;

&lt;p&gt;地図の下に、表示した累計局数がHamsの隣に表示され、当該グリッドの局数がその下辺りに表示される。表示される局は赤丸と青丸があり、後者は「管理外」とあるが、定義は不明。おそらく、検索で街頭コールサインに第三者が登録できるが、その局。&lt;/p&gt;

&lt;p&gt;クリアボタンを押すとグリッドスクエアの選択が外れるが、累計局数はなぜかクリアされない。ページを表示すると必ずEM17iqが表示されてしまうので、その数が加算されてしまうことに注意。&lt;/p&gt;

&lt;p&gt;右上の拡大ボタンで全画面地図に移行できるが、局数などのステータス表示がなくなる。使い分けないといけない。&lt;/p&gt;

&lt;h2 id=&quot;いざ探訪&quot;&gt;いざ探訪&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/111009777-e352e500-83d7-11eb-8db8-686fbfaa9f9c.png&quot; alt=&quot;飯能近辺&quot; /&gt;
さて、終の棲家でアマチュア無線用タワーを建てるなら、HFメインということになろうか。QRZ.comに掲載されている局も郊外ではそういったガチ勢の局が多そう。&lt;/p&gt;

&lt;p&gt;私とは言えば、そういった住環境もあり、移動GHzマン化しているので、終の棲家から富士山でも丹沢でも近傍の高めの山に見通しあれば反射、なければ月にでも当てて上の方も出るとは思いますが。&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;場所に検討を付けて、&lt;a href=&quot;https://www.qrz.com/gridmapper&quot;&gt;グリッドマッパー&lt;/a&gt;で検索。表示位置はランダム化されている。&lt;/li&gt;
  &lt;li&gt;掲載局のページを拝見。QRZ.comではアマの良き伝統で住所まで開示されていたりする。&lt;/li&gt;
  &lt;li&gt;掲載情報を元に、ピンポイントでシャックを検索。Google mapが役に立つ。アンテナまでなんとなく確認できることも。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;やや、ストーカー地味てくるので、悪用禁止です。&lt;/p&gt;

&lt;p&gt;私の場合はあくまで、移住予定地となりうるアマチュア無線家向け好適地探訪が目的です。&lt;/p&gt;

&lt;p&gt;写真のように、移動運用地のローカル局の情報を得るのもいいかもしれませんね。ご挨拶とか、忘れ物調達とか…。&lt;/p&gt;

&lt;h2 id=&quot;有名移動地横標高900m以上の某別荘地の場合&quot;&gt;有名移動地横、標高900m以上の某別荘地の場合&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/111010128-ec908180-83d8-11eb-8804-65670f6c395f.png&quot; alt=&quot;遠笠山&quot; /&gt;
有名移動地、遠笠山の裾野に広がる別荘地。移住されたOM数局がいらっしゃるとも聞きます。早速みてみると、数局の登録があるようです。&lt;br /&gt;
QRZ.comで参照数が多めの局をGoogle mapで見ると、恐らく巨大なルーフタワー付属のアンテナが確認できます。&lt;/p&gt;

&lt;p&gt;アマチュア無線のアンテナタワーは15mを超えれば工作物扱いとなり、景観条例や建築法上の建築確認申請等協議・審査・届け出が自治体に必要になります。詳細は条例等によりますので、ご確認ください。&lt;/p&gt;

&lt;p&gt;別荘地では別途規制などがあります、そもそも近隣住民の「問題」があります。&lt;/p&gt;

&lt;p&gt;一般宅地ならば、管理会社などありませんので、個人同士のお付き合いですが、別荘地などではそうもいきません。&lt;/p&gt;

&lt;p&gt;さて、別荘地の販売会社に電話で連絡してみましたが、結論としては候補地としてはあきらめることにしました。&lt;/p&gt;

&lt;p&gt;移住の以降ややりたいことを説明した後の営業担当者の話が奥歯にものが挟まったような対応、例えば雪がとにかく深い。一週間孤立する。等々。大げさな説明も入っている感じ。&lt;br /&gt;
説明が長いので、単刀直入に、無線に関して確認すると….&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;アマチュア無線家は歓迎されていない。&lt;/li&gt;
  &lt;li&gt;既にタワー建設した住人がいるが、景観やテレビの映りなど近隣住民からトラブルが管理会社に寄せられていて対応している。&lt;/li&gt;
  &lt;li&gt;今後はお断りしたい。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;という趣旨でした。（ご自身で確認してくださいねー）&lt;/p&gt;

&lt;p&gt;だめだこりゃ&lt;/p&gt;

&lt;h2 id=&quot;探訪の旅は続く&quot;&gt;探訪の旅は続く&lt;/h2&gt;
&lt;p&gt;XYLとの条件を整理したところ&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;海の幸が楽しめる。が、津波の被害はない高台。病院などのインフラがある。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ということで、海沿いの土地を探し、その後QRZ.comで検索してみて、ロケを衛星写真で確かめてみる。&lt;br /&gt;
そんなことを繰り返しています。&lt;/p&gt;

&lt;p&gt;今後候補地を絞って、週末にロケハンに行ってみる予定です。HFは出しませんが、430辺りの聞こえ具合は確認してみたいと思っています。&lt;/p&gt;

&lt;hr /&gt;

&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Tips" /><summary type="html">TL;DR 特定エリアのアマチュア無線家数を調べる方法を紹介。 現在、終の棲家となる土地を探索中。世田谷に住宅地を抜け出し、ぜひともタワーを建てたい。 現在の宅地は幅が7m程しかなく、短縮VDP 730V-2AWも斜めにしないと越境する始末。 無線に適したロケか、分譲地・別荘地の受け入れ具合なども気になる。既にアンテナが建っていれば実績になるが、Google mapでピンポイントに衛星写真・Street viewを見るの以外は無理。 グリッドロケーターというQRZ.comのWeb ツールを使うことで、QRZ.comの登録局だけだが、およその位置（ランダム化されて地図上に表示）がわかる。 ちなみに、関東近郊で最大局数を誇るグリッドは67局の神田・両国(PM95vq)あたりと、緑区(PM95rm)あたり。某分析好き局の言い方をすれば、?魚グリッドか。 HFをやっている局ならほぼQRZ.comには登録済みではないだろうか。住所を文字で入力するか、地図で指定するとそのデータが保存され、グリッドロケーターのツールで一覧表示することができる。 住所は緯度経度の精度が低ければ矩形で、ピンカーソルでピンポイント指定でき、その上で開示される際におおよその位置にするかなど指定できる。心配な方はおおよそにしておこう。 グリッドロケーターで検索してみよう! 使い方は簡単、Gridに希望のグリッドロケーター(例、PM95rm)など入れるだけ。緯度経度でも指定できる。 希望のグリッドがわからなければ、地図表示にして適当にクリックするか、アイカラーさんのGL（グリッドロケーター）計算で、住所から引けます。 図はPM95rmを指定したところ。 当該スクエア内に若干位置をランダム化した円が表示される。それぞれがQRZ.com登録局になる。コールサインをクリックすれば、ページに飛べる。 地図の下に、表示した累計局数がHamsの隣に表示され、当該グリッドの局数がその下辺りに表示される。表示される局は赤丸と青丸があり、後者は「管理外」とあるが、定義は不明。おそらく、検索で街頭コールサインに第三者が登録できるが、その局。 クリアボタンを押すとグリッドスクエアの選択が外れるが、累計局数はなぜかクリアされない。ページを表示すると必ずEM17iqが表示されてしまうので、その数が加算されてしまうことに注意。 右上の拡大ボタンで全画面地図に移行できるが、局数などのステータス表示がなくなる。使い分けないといけない。 いざ探訪 さて、終の棲家でアマチュア無線用タワーを建てるなら、HFメインということになろうか。QRZ.comに掲載されている局も郊外ではそういったガチ勢の局が多そう。 私とは言えば、そういった住環境もあり、移動GHzマン化しているので、終の棲家から富士山でも丹沢でも近傍の高めの山に見通しあれば反射、なければ月にでも当てて上の方も出るとは思いますが。 場所に検討を付けて、グリッドマッパーで検索。表示位置はランダム化されている。 掲載局のページを拝見。QRZ.comではアマの良き伝統で住所まで開示されていたりする。 掲載情報を元に、ピンポイントでシャックを検索。Google mapが役に立つ。アンテナまでなんとなく確認できることも。 やや、ストーカー地味てくるので、悪用禁止です。 私の場合はあくまで、移住予定地となりうるアマチュア無線家向け好適地探訪が目的です。 写真のように、移動運用地のローカル局の情報を得るのもいいかもしれませんね。ご挨拶とか、忘れ物調達とか…。 有名移動地横、標高900m以上の某別荘地の場合 有名移動地、遠笠山の裾野に広がる別荘地。移住されたOM数局がいらっしゃるとも聞きます。早速みてみると、数局の登録があるようです。 QRZ.comで参照数が多めの局をGoogle mapで見ると、恐らく巨大なルーフタワー付属のアンテナが確認できます。 アマチュア無線のアンテナタワーは15mを超えれば工作物扱いとなり、景観条例や建築法上の建築確認申請等協議・審査・届け出が自治体に必要になります。詳細は条例等によりますので、ご確認ください。 別荘地では別途規制などがあります、そもそも近隣住民の「問題」があります。 一般宅地ならば、管理会社などありませんので、個人同士のお付き合いですが、別荘地などではそうもいきません。 さて、別荘地の販売会社に電話で連絡してみましたが、結論としては候補地としてはあきらめることにしました。 移住の以降ややりたいことを説明した後の営業担当者の話が奥歯にものが挟まったような対応、例えば雪がとにかく深い。一週間孤立する。等々。大げさな説明も入っている感じ。 説明が長いので、単刀直入に、無線に関して確認すると…. アマチュア無線家は歓迎されていない。 既にタワー建設した住人がいるが、景観やテレビの映りなど近隣住民からトラブルが管理会社に寄せられていて対応している。 今後はお断りしたい。 という趣旨でした。（ご自身で確認してくださいねー） だめだこりゃ 探訪の旅は続く XYLとの条件を整理したところ 海の幸が楽しめる。が、津波の被害はない高台。病院などのインフラがある。 ということで、海沿いの土地を探し、その後QRZ.comで検索してみて、ロケを衛星写真で確かめてみる。 そんなことを繰り返しています。 今後候補地を絞って、週末にロケハンに行ってみる予定です。HFは出しませんが、430辺りの聞こえ具合は確認してみたいと思っています。</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">コンテストのニューカマーの参加数推移を調べてみた</title><link href="https://jj1bby.com/tips/2021/03/06/New-comer.html" rel="alternate" type="text/html" title="コンテストのニューカマーの参加数推移を調べてみた" /><published>2021-03-06T08:30:00+00:00</published><updated>2021-03-06T08:30:00+00:00</updated><id>https://jj1bby.com/tips/2021/03/06/New-comer</id><content type="html" xml:base="https://jj1bby.com/tips/2021/03/06/New-comer.html">&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/110181802-9b6c1500-7e4f-11eb-851d-4e001742373c.png&quot; alt=&quot;参加者推移グラフ&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;2020年は78局と&lt;a href=&quot;https://jj1bby.com/contest/2021/03/04/Contest-participation-number.html&quot;&gt;全体の傾向&lt;/a&gt;と同様、増加。&lt;/li&gt;
  &lt;li&gt;全体的には大きな変動はなし。&lt;/li&gt;
  &lt;li&gt;6mまでしかない、All JAが最低。やはり、UVから入るかな?&lt;/li&gt;
  &lt;li&gt;PN部門優勝局のその後のコンテストでの活躍をおってみると……？&lt;/li&gt;
  &lt;li&gt;データは&lt;a href=&quot;http://contest.jarl.org/cntdb/?year=&amp;amp;callsign=&amp;amp;contest_code=&amp;amp;category_code=PN&quot;&gt;JARL&lt;/a&gt;から。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;ニューカマーの定義&quot;&gt;ニューカマーの定義&lt;/h2&gt;
&lt;p&gt;JARLのコンテストでの定義は以下のようなもので、規約に書いてあります。&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;ニューカマーは、初めて局を開設した個人局であって、局免許年月日が開催日の３年前の同日以降に免許された局とする。&lt;/li&gt;
  &lt;li&gt;部門名はPN。電話部門のみで免許されない14MHzを除くバンドへの参加。&lt;/li&gt;
  &lt;li&gt;オールバンドにエントリーしたものとみなされる。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;ニューカマー私の場合&quot;&gt;ニューカマー、私の場合&lt;/h2&gt;
&lt;p&gt;まぁ、あまり局数いませんね。免許取って最初の三年でいきなりコンテスト始めるかどうか？&lt;br /&gt;
私は二年目から開始し、その年のACAGでは早くも卒業して一般部門に移りました。&lt;br /&gt;
同部門では学生のフレンド局もいたりして、こちらは社会人もいいところで無線趣味を開始したわけで、設備も車での移動装備等も自由が利くわけで、ちょっとそこでブリブリ言わすのも大人げないなぁということでした。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/110184711-e6882700-7e53-11eb-801f-468909197eb5.jpg&quot; alt=&quot;tsukuba&quot; /&gt;
写真は2018の6D。まだ、PNのオールバンドで頑張ってワイヤーDP、VDP二本、6m八木にGPだの空中線をあげまくって移動していたころですね。&lt;/p&gt;

&lt;p&gt;筑波山の有名移動地に後着して、仕方なしに近所からどうにか出た時です。この時のPNスコアもPAでも入賞はできるスコアでした。&lt;/p&gt;

&lt;p&gt;「おもったよりいけるのか？」、などとも思いまして、残り一年でられたんですが早々に一般部門に鞍替えしました。&lt;/p&gt;

&lt;p&gt;ただ、その後はオールバンドではなく、6mか1200でしかほぼでてないわけですが。&lt;/p&gt;

&lt;p&gt;さて、他のニューカマー局PN部門で楽しんで、一般部門に進出してきてもらいたいですが、中々コンテスターへの道は険しそうです。&lt;/p&gt;

&lt;h2 id=&quot;登竜門&quot;&gt;登竜門?&lt;/h2&gt;
&lt;p&gt;PN部門優勝36回（便宜上6Dは関東のみ調べた）は19局のユニークな局によって達成されている。&lt;/p&gt;

&lt;p&gt;その後一般部門にエントリーしている局数は、なんと7局のみ。12局はエントリーさえもしていない。&lt;/p&gt;

&lt;p&gt;ただし、3年間はPN部門にエントリーし続けるニューカマーもいるので、最近の局は今後エントリーしてきてくれることに期待。&lt;/p&gt;

&lt;p&gt;一方、過去一般局を圧倒する程のスコアを数度もたたき出したにもかかわらず、局免も切れている局もあり、PN部門がコンテスター登竜門なのか否か?&lt;/p&gt;

&lt;hr /&gt;

&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Tips" /><summary type="html">TL;DR 2020年は78局と全体の傾向と同様、増加。 全体的には大きな変動はなし。 6mまでしかない、All JAが最低。やはり、UVから入るかな? PN部門優勝局のその後のコンテストでの活躍をおってみると……？ データはJARLから。 ニューカマーの定義 JARLのコンテストでの定義は以下のようなもので、規約に書いてあります。 ニューカマーは、初めて局を開設した個人局であって、局免許年月日が開催日の３年前の同日以降に免許された局とする。 部門名はPN。電話部門のみで免許されない14MHzを除くバンドへの参加。 オールバンドにエントリーしたものとみなされる。 ニューカマー、私の場合 まぁ、あまり局数いませんね。免許取って最初の三年でいきなりコンテスト始めるかどうか？ 私は二年目から開始し、その年のACAGでは早くも卒業して一般部門に移りました。 同部門では学生のフレンド局もいたりして、こちらは社会人もいいところで無線趣味を開始したわけで、設備も車での移動装備等も自由が利くわけで、ちょっとそこでブリブリ言わすのも大人げないなぁということでした。 写真は2018の6D。まだ、PNのオールバンドで頑張ってワイヤーDP、VDP二本、6m八木にGPだの空中線をあげまくって移動していたころですね。 筑波山の有名移動地に後着して、仕方なしに近所からどうにか出た時です。この時のPNスコアもPAでも入賞はできるスコアでした。 「おもったよりいけるのか？」、などとも思いまして、残り一年でられたんですが早々に一般部門に鞍替えしました。 ただ、その後はオールバンドではなく、6mか1200でしかほぼでてないわけですが。 さて、他のニューカマー局PN部門で楽しんで、一般部門に進出してきてもらいたいですが、中々コンテスターへの道は険しそうです。 登竜門? PN部門優勝36回（便宜上6Dは関東のみ調べた）は19局のユニークな局によって達成されている。 その後一般部門にエントリーしている局数は、なんと7局のみ。12局はエントリーさえもしていない。 ただし、3年間はPN部門にエントリーし続けるニューカマーもいるので、最近の局は今後エントリーしてきてくれることに期待。 一方、過去一般局を圧倒する程のスコアを数度もたたき出したにもかかわらず、局免も切れている局もあり、PN部門がコンテスター登竜門なのか否か?</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">変更申請（届）の審査日数と終了する曜日を調べてみた</title><link href="https://jj1bby.com/tips/2021/03/06/Duration-of-applications.html" rel="alternate" type="text/html" title="変更申請（届）の審査日数と終了する曜日を調べてみた" /><published>2021-03-06T08:00:00+00:00</published><updated>2021-03-06T08:00:00+00:00</updated><id>https://jj1bby.com/tips/2021/03/06/Duration-of-applications</id><content type="html" xml:base="https://jj1bby.com/tips/2021/03/06/Duration-of-applications.html">&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/110177412-48db2a80-7e48-11eb-8dc9-a6e54b9b81e9.png&quot; alt=&quot;電子申請システムLite&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;サンプル数26で審査終了となった頻出曜日は水曜日、ついで金曜日、月曜日、木曜日、火曜日の順です。&lt;/li&gt;
  &lt;li&gt;審査終了までの日数は平均で22日。補正でも19日とほぼかわりません。&lt;/li&gt;
  &lt;li&gt;感覚的には金曜夕方に来ることが多いのですが、そうでもない。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;審査所要日数&quot;&gt;審査所要日数&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/110177715-bb4c0a80-7e48-11eb-9800-b13903a67ff3.png&quot; alt=&quot;審査にかかった日数&quot; /&gt;
小さなことでもお役所に届か申請をしなければいけないわけですが、その処理日数も大変にかかります。&lt;br /&gt;
年末年始などの時期をまたがなければ、おおむね一か月で結果がでます。&lt;/p&gt;

&lt;p&gt;一方で、明白な補正なども、一か月たってから審査して、通知が来るので、結果また一か月審査にかかってしまいます。&lt;br /&gt;
昔は補正後は別トラックで速めに審査してた気もしますが、最近は25日かかっていて、新規申請とかわらない印象です。&lt;/p&gt;

&lt;h2 id=&quot;審査終了するのは何曜日&quot;&gt;審査終了するのは何曜日？&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/79028771/110177514-6d370700-7e48-11eb-978e-57ece2ee3dab.png&quot; alt=&quot;審査終了曜日&quot; /&gt;
体感的には金曜日夕方に審査終了がきても、「局免とりにいけないわー、もうちょい早く通知してよ」という感じですが、実際は水曜日などが多いですね。&lt;/p&gt;

&lt;p&gt;一時期のデジタルモード申請増加で、事務手続きが遅くなった感がありました。&lt;br /&gt;
その後、無線局免許手続規則等の一部が令和2年4月21日に改正され、&lt;a href=&quot;https://www.soumu.go.jp/soutsu/kanto/info/2020/0610r3.html&quot;&gt;アマチュア局の免許手続きの簡素化について（デジタルモード追加）&lt;/a&gt;が通知されましたが、令和2年で28.25日かかっていたものが、令和3年では25日に短縮されているだけです。&lt;br /&gt;
おおむね一か月の目標？もあるようなので、それには収まるようになったのかな。&lt;/p&gt;

&lt;p&gt;こちらのデータはすべて関東総合通信局のケース、私の申請の場合です。&lt;/p&gt;

&lt;hr /&gt;

&lt;script src=&quot;https://utteranc.es/client.js&quot; repo=&quot;JJ1BBY/JJ1BBY.github.io&quot; issue-term=&quot;pathname&quot; theme=&quot;github-light&quot; crossorigin=&quot;anonymous&quot; async=&quot;&quot;&gt;
&lt;/script&gt;</content><author><name>JJ1BBY</name></author><category term="Tips" /><summary type="html">TL;DR サンプル数26で審査終了となった頻出曜日は水曜日、ついで金曜日、月曜日、木曜日、火曜日の順です。 審査終了までの日数は平均で22日。補正でも19日とほぼかわりません。 感覚的には金曜夕方に来ることが多いのですが、そうでもない。 審査所要日数 小さなことでもお役所に届か申請をしなければいけないわけですが、その処理日数も大変にかかります。 年末年始などの時期をまたがなければ、おおむね一か月で結果がでます。 一方で、明白な補正なども、一か月たってから審査して、通知が来るので、結果また一か月審査にかかってしまいます。 昔は補正後は別トラックで速めに審査してた気もしますが、最近は25日かかっていて、新規申請とかわらない印象です。 審査終了するのは何曜日？ 体感的には金曜日夕方に審査終了がきても、「局免とりにいけないわー、もうちょい早く通知してよ」という感じですが、実際は水曜日などが多いですね。 一時期のデジタルモード申請増加で、事務手続きが遅くなった感がありました。 その後、無線局免許手続規則等の一部が令和2年4月21日に改正され、アマチュア局の免許手続きの簡素化について（デジタルモード追加）が通知されましたが、令和2年で28.25日かかっていたものが、令和3年では25日に短縮されているだけです。 おおむね一か月の目標？もあるようなので、それには収まるようになったのかな。 こちらのデータはすべて関東総合通信局のケース、私の申請の場合です。</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://jj1bby.com/logo.png" /><media:content medium="image" url="https://jj1bby.com/logo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>