Я разместил этот вопрос на форуме пользователей 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, а не datetime?
печать таблицы2
recarray ([(u'2011-04-20 09:42:00 ', 703.46000000000004),
(u'2011-04-20 09:43:00 ', 705.35000000000002),
...
dtype = [('date_time', '| O4'), ('values', '
Я не программист и абсолютно полный новичок в Python и Spatialite, поэтому любая помощь будет очень цениться!
/ JK