私はこの質問をQGISユーザーフォーラムに投稿しましたが、技術的すぎるかもしれないので、チャンスをつかんでここでも試してみます。
私の計画は、ベクターレイヤー内の選択されたポイントに対応する時系列データを読み取ってプロットするQGISプラグインを用意することです(ポイントは異なる測定ステーションを表し、それらのそれぞれから時系列をすばやく表示する必要があります。同じプロット)。したがって、PythonでSpatialiteテーブルから時系列データを読み取り、Matplotlib.plotでプロットする必要があります。
from pyspatialite import dbapi2 as sqlite
import numpy as np
import matplotlib.pyplot as plt
import datetime
MyPath = r"C:\DATA\DBTEST\MyTestDb.sqlite"
conn = sqlite.connect(MyPath,detect_types=sqlite.PARSE_DECLTYPES|sqlite.PARSE_COLNAMES)
curs = conn.cursor()
sql = r"""SELECT Date as 'date [datetime]', Level_masl FROM MyTable"""
rs = curs.execute(sql)
recs = rs.fetchall()
My_format = [('date_time', datetime.datetime), ('values', float)]
table = np.array(recs, dtype=My_format)
table2=table.view(np.recarray)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(table2.date_time, table2.values, 'o-')
....
しかし、matplotlibが「date_time」を受け入れないため、正しいデータ型を取得できないようです。印刷テーブル2を以下に示します。小さなuは、それがUnicodeであり、日時ではないことを示していると思いますか?
表2を印刷
recarray([(u'2011-04-20 09:42:00'、703.46000000000004)、(u'2011-04-20 09:43:00'、705.35000000000002)、... dtype = [('date_time'、 '| O4')、('値'、 '
私はプログラマーではなく、PythonとSpatialiteの完全な初心者なので、どんな助けでも大歓迎です!
/ JK