2020年5月7日木曜日

python2

mpltoolkits インポート問題 on Ubunt16




python mpl_toolkitsインストールの問題

コマンドpip install mpl_toolkitsの後、次のエラーを受け取ります:
要件mpl_toolkitsを満たすバージョンが見つかりませんでした(バージョン:から)
Mpl_toolkitsに一致するディストリビューションが見つかりません
私はグーグルしようとしましたが、何も助けません。どうすれば解決できますか?
 36
PyPIにはありません。pip経由でインストールしないでください。 matplotlibがインストールされている場合、mpl_toolkitsを直接インポートできるはずです。
$ pip install --upgrade matplotlib
...

$ python
>>> import mpl_toolkits
>>> 
 56
alecxe
Ubuntu 16.04では動作しません。このライブラリのpythonインストールパッケージでは一部のライブラリが忘れられているようです。代わりにパッケージマネージャーを使用する必要があります。

解決

matplotlibpipからアンインストールしてから、apt-get
python 2:
Sudo pip uninstall matplotlib
Sudo apt-get install python-matplotlib
python 3:
Sudo pip3 uninstall matplotlib
Sudo apt-get install python3-matplotlib
 10
Charlie Lutaud
macで問題が発生した場合は、これを試すことができます
Sudo pip install --upgrade matplotlib --ignore-installed six
 4
Giulio Imperato
評判が悪いためコメントできませんが、Arch Linuxを使用している場合は、Archリポジトリで対応するライブラリを直接見つけることができます。 mpl_toolkits.basemapの例:
pacman -S python-basemap

raspberry pi 3 でGPIO UART



UARTのGPIOピン

UARTの送信ピン及び受信ピンは、それぞれ、GPIOヘッダーの8番ピン(TXD)、10番ピン(RXD)に割り当てられています。(SoCのGPIO14番ピン及び15番ピン)

UART0をシリアル通信で使用する方法

1.Linuxのシリアルコンソールを無効化します。
Raspbianをインストールした時点では、プライマリUART(/dev/serial0)がLinuxのシリアルコンソールとして使用されています。シリアル通信で使用するため、Linuxのシリアルコンソールとして使用されないように変更します。
【修正前】
pi@raspberrypi:~ $ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=0af269bc-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
/boot/cmdline.txtを以下のとおり編集します。
Linuxシリアルコンソールに関する項目(console=serial0,115200)を削除し、その他はそのまま残します。
pi@raspberrypi:~ $ sudo vi /boot/cmdline.txt
console=serial0,115200 ← この項目を削除する。
【修正後】
pi@raspberrypi:~ $ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=0af269bc-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
2.シリアル通信にUART0を使用するように変更します。
以下のような方法があります。
  1. Bluetoothを無効化する方法
    Bluetoothを使用しない場合は、Bluetoothを無効化します。これにより、UART0がGPIOヘッダーの8番ピン(TXD)、10番ピン(RXD)に割り当てられ、シリアル通信で使用することがきます。
    /boot/config.txtファイルを以下のとおり編集します。
    pi@raspberrypi:~ $ sudo vi /boot/config.txt
    
    ・・・
    dtoverlay=pi3-disable-bt ← この行を追記する。
    ・・・
    
    プライマリUART(/dev/serial0)としてUART0(/dev/ttyAMA0)が割り当てられ、セカンダリUART(/dev/searal1)として、miniUART(/dev/ttyS0)が割り当てらます。
    pi@raspberrypi:~ $ ls -l /dev
    ・・・
    lrwxrwxrwx 1 root root           7 Mar 14 10:17 serial0 -> ttyAMA0
    ・・・
    lrwxrwxrwx 1 root root           5 Mar 14 10:17 serial1 -> ttyS0
    ・・・
    crw--w---- 1 root tty     204,  64 Mar 14 10:17 ttyAMA0
    ・・・
    crw-rw---- 1 root dialout   4,  64 Mar 14 10:17 ttyS0
    ・・・
    
    次に、UARTで通信を行うBluetoothモデムを初期化するサービスを無効化します。
    pi@raspberrypi:~ $ sudo systemctl disable hciuart
    Removed /etc/systemd/system/multi-user.target.wants/hciuart.service.
    最後に、再起動を行います。
  2. Bluetoothとの通信にminiUARTを使用する方法
  3. シリアル通信を行うとともに、Bluetoothを使用する場合は、Bluetootモジュールとの通信にminiUARTを使用するように変更します。これにより、UART0をシリアル通信で使用することができます。
    /boot/config.txtファイルを以下のとおり編集します。
    pi@raspberrypi:~ $ sudo vi /boot/config.txt
    
    ・・・
    dtoverlay=pi3-miniuart-bt ← この行を追記する。
    ・・・
    
    プライマリUART(/dev/serial0)としてUART0(/dev/ttyAMA0)が割り当てられ、セカンダリUART(/dev/searal1)として、miniUART(/dev/ttyS0)が割り当てらます。
    pi@raspberrypi:~ $ ls -l /dev
    ・・・
    lrwxrwxrwx 1 root root           7 Mar 14 10:17 serial0 -> ttyAMA0
    ・・・
    lrwxrwxrwx 1 root root           5 Mar 14 10:17 serial1 -> ttyS0
    ・・・
    crw--w---- 1 root tty     204,  64 Mar 14 10:17 ttyAMA0
    ・・・
    crw-rw---- 1 root dialout   4,  64 Mar 14 10:17 ttyS0
    ・・・
    
    次に、GPUのコアクロックを固定し、シリアル通信のボーレートが変化しないようにします。
    /boot/config.txtファイルを以下のとおり編集します。
    pi@raspberrypi:~ $ sudo vi /boot/config.txt
    ・・・
    core_freq=250 ← この行を追加する。
    
3.以上で、GPIOを使用してシリアル通信を行うことができます。

CU でターミナル

にラズベリーパイと USB シリアルケーブルとを接続します。USB シリアルケーブルの黒(GND)をラズパイの6番ピン、白(UART TXD(14))を8番ピン、緑(UART RXD(15))を10番ピンにそれぞれ接続します。赤は結線の必要がないので宙ぶらりんのままです:
IMG_2932


次に Ubuntu 側の準備です。実は特別にデバイスドライバを準備することもなく、そのまま認識されます。が、ただ認識しただけでは通信はできないため、そのための準備が必要です。

まず、今回のシリアル通信には cu コマンドを使います。なので、まずは cu をインストールします:
$ sudo apt-get install cu

次にシリアルポートの確認と設定を行います。Ubuntu の USB ポートに USB シリアルケーブルを接続し、次のコマンドを入力して、ちゃんと認識できているかどうかを確認します:
$ ls -l /dev/serial/by-id/

USB シリアルケーブルが正しく認識できていると /dev/ttyUSB0 といった感じで最後に 0(ゼロ)が付いたデバイスとして認識されます。今回は /dev/ttyUSB0 として認識されていると仮定して以下の説明を続けます:
20180814a


/dev/ttyUSB0 の権限を変更します:
$ sudo chmod 666 /dev/ttyUSB0

ここまでの手順で準備が完了しました。最後に cu コマンドで目的のデバイスに接続します。その際にボーレートを 115200 bps に指定して接続します:
$ sudo cu -s 115200 -l /dev/ttyUSB0

成功するとこんな感じでラズパイのログインプロンプトが現れ、ログインできます:
20180814


モニタがないとか、無線LAN がないとか、無線 LAN の環境が普段と違う時(の無線 LAN の設定を変えたい時)でもラズパイを使えて、とても便利な接続方法です。アナログ最強!


Zynq7010でUbuntu

Zynq7010でUbuntu18動いたが・・・

HDMI出力 アドレスレジスタ指定おかしく、表示なし。

リモートディスクトップ1回だけ接続できたと思ったら・・・。永遠に、すでに動いています!と怒られて、接続できず。
→解決
1)IP DHCP確認せよ!!接続ごとにアドレスインクリメントしていないか??
*Gatewayの設定もchk!

2)カスケード大丈夫か? Gatewayわたれるように設定または、同じ網に接続せよ

で、動いていた・・・。


つぎは、PS-PL
8086ばりのページマッピング的なI/Fにするか、DDRを横取りして、PLへ。ドッチが簡単か?
Xilibus Driverが簡単と物の本に。
I2CでもSPIでも、、ウエハ内の接続だから、超高速UARTでUSB3なんかより高速にできそうな気がする。妄想中。。。

2020年4月24日金曜日

参考
basemap は終了なのか。。。

How To Install "python-mpltoolkits.basemap" Package on Ubuntu

Quick Install Instructions of python-mpltoolkits.basemap on Ubuntu Server. It’s Super Easy! simply click on Copy button to copy the command and paste into your command line terminal using built-in APT package manager.

See below for quick step by step instructions of SSH commands, Copy/Paste to avoid miss-spelling or accidently installing a different package.


Quick Install Steps:
Step 1
sudo apt-get update -y
Step 2
sudo apt-get install -y python-mpltoolkits.basemap
Step 3
Check the system logs to confirm that there are no related errors. You can use ZoomAdmin to check the logs, server management, website hosting and more.
See ZA Features Page for demo videos and 30 Days Free trial info.
Execute the commands above step by step. You can simply hit the copy button to copy the command and paste into the command line interface.
Note: -y flag means to assume yes and silently install, without asking you questions in most cases.

matplotlib toolkit to plot on map projections
The matplotlib basemap toolkit is a library for plotting 2D data on maps in Python. It is similar in functionality to the matlab mapping toolbox, the IDL mapping facilities, GrADS, or the Generic Mapping Tools. PyNGL and CDAT are other libraries that provide similar capabilities in Python. matplotlib toolkit to plot on map projections
The matplotlib basemap toolkit is a library for plotting 2D data on maps in Python. It is similar in functionality to the matlab mapping toolbox, the IDL mapping facilities, GrADS, or the Generic Mapping Tools. PyNGL and CDAT are other libraries that provide similar capabilities in Python.

Detailed Instructions:
Step 1
Run update command to update package repositories and get latest package information.
sudo apt-get update -y
Step 2
Run the install command with -y flag to quickly install the packages and dependencies.
sudo apt-get install -y python-mpltoolkits.basemap
Step 3
Check the system logs to confirm that there are no related errors. You can use ZoomAdmin to check the logs, server management, website hosting and more.
See ZA Features Page for demo videos and 30 Days Free trial info.


もそも、なぜBasemap?

まずはこういうのを日本地図で実現したい….(参考URL:https://qiita.com/sakaia/items/36c92d14942c3458bb56)
Basemapをインストールしようとした目的は、Pythonで分析したデータを地図上に描画したいと考えたためです。
もちろん、基礎をやるだけで目一杯なので、授業ではやっていません。
しかし、総務省統計局などから出ているオープンデータなどでは、都道府県ごとに集計されたデータなども数多くありますので、これをなんとか地図上に表現して、いろいろな角度から視覚化してみたいと考えました。
また、一度ビジュアライズの方法が確立できれば、いろいろ使い回しができそうだという単純な理由もありますw
というわけで、調べてみたところ、2018年8月現在では、OpenStreetMap, Google Colabなどを使う方法などもありましたが、中でもPythonライブラリのmatplotlib「Basemap」を使うのが一般的のようでしたのでBasemapを使える環境を構築することにしました。
以下は、途中紆余曲折もあったなかで調べながらエラーを対処し、今回最終的に成功した方法のご紹介です。

環境情報

マシン:MacBook Pro (13-inch 2016, Four Thunderbolt 3 ports)
OS: macOS Sierra (バージョン10.12.6)
Python 3.6.0 (Jupyter Notebook)
【参考: Pythonのバージョン確認方法】#下記をターミナルで実行するとバージョンがわかります
$ python3 --version
Python 3.6.0
Basemap動作に必要なライブラリ:
matplotlib, numpy, geos, proj, 必須ではないがオプションとしてpillow
※Pythonの基礎習得が終わった頃には、matplotlib, numpyは普通にインストールされていることと思いますので、足らないライブラリのみを追加でインストールしてください。
私の場合は geos, projとオプションのpillowをpipでインストールしました。なお、Basemapはpipではインストールできません。
【参考:pipでのインストール方法】
#下記をターミナルで実行することによりライブラリが個別にインストールできます
$ pip install geos
$ pip install proj
$ pip install pillow
ライブラリのインストールは他にもいろいろな方法があります。HomebrewやAnacondaを利用してPython環境を構築している場合などそれぞれに適した方法でインストールしてください。

Basemapインストール

さて、いよいよBasemapをインストールします。
途中でエラーになって苦労したので、もし実際にインストールされる際は、このエントリの最後まで読んでからの方が無難かもしれません。
【手順1】basemap-1.0.7.tar.gzをダウンロード
※検索や公式サイトからダウンロードサイトが見つかります。
https://sourceforge.net/projects/matplotlib/files/matplotlib-toolkits/
オリジナルソースは下記にあります。
【手順2】basemap-1.0.7.tar.gzの解凍
手順1でダウンロードしたファイルを解凍すると,「basemap_1.0.7」というディレクトリが作成されますので、パスの通った場所に解凍してください。
【手順3】.bash_profile に以下を設定
ターミナルで以下を実行します。(pathは環境によって異なる可能性あり)
export GEOS_DIR=/usr/local/Cellar/geos/3.6.2/ 
source ~/.bash_profile
【手順4】Basemapのインストール
cdコマンドで「basemap_1.0.7」ディレクトリまで戻り、下記セットアップコマンドを実行します。
python3 setup.py install
【手順5】Basemapのテストランを実行
Jupyter Notebookを起動し下記を実行することにより、インストール状況を確認します。
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

map = Basemap()
map.drawcoastlines()

fnameF='fig_basemap.png'
plt.savefig(fnameF, bbox_inches="tight", pad_inches=0.2)
plt.show()
これで下の地図が出れば成功です。
別の地図も試してみました。(参考サイト4)

【オマケ情報】エラーが起きたら…

上記の【手順4】でエラーが発生し、時間の都合上ここで一旦日をおくことになりました。
エラー内容としては、
「fatal error: ‘geos_c.h’ file not found」というもので、
stackoverflowやteratailなども調べましたが、容易に解決することなく、何時間もかけていろいろ試したところ、結局、最終的にmatplotlib Basemapの本家英語の公式サイトのインストール方法(https://matplotlib.org/basemap/users/installing.html#installation)でエラー回避し、Basemapが正常にインストールできました。
日本語のページは本当にありがたいですが、やはり基本に立ち戻るのは重要ですね…。
つまづいたら(日本語でなくても)公式サイトに戻って確認してみることをお勧めします。

■参考サイト

  1. まず最初に参考にしたサイト
    Python matplotlib Basemapのインストール
    https://qiita.com/damyarou/items/14a2ce435b308c38ac67
    Basemapインストールに関するサイトはいくつかありましたが、更新日付の比較的新しい(2017年09月29日)こちらのサイトを参考にさせていただき、途中まではうまくいきました。
    全く同じ方法は使わなかったので、実際に発生したエラーは異なります。
  2. エラーが発生して参照したサイト(英語)
    Installing basemap on Mac / Python
    https://stackoverflow.com/questions/42299352/installing-basemap-on-mac-python
    エラー内容は異なりましたが手順的な参考になるかと思い、参照しました。
  3. Basemap公式サイト(英語)
    https://matplotlib.org/basemap/users/index.html
    「Installation」を参考にしました。この方法でエラーなくセットアップできました。
  4. テストランのために参照したサイト
    matplotlib.basemapで簡単にマップを描画する
    https://qiita.com/msrks/items/ed18a2653bc177a24cca
    参考サイト1でも確認しましたが、別の方法でもできるか確認するために参照しました。

2020年2月26日水曜日




CentOS 7(7.6)でNIC を変更するには、Xilinxのweb 情報が良い
 em1を eth0に変更  Vivado ライセンスがうまくいくようになる