Newer
Older
# -*- coding: utf-8 -*-
"""
/***************************************************************************

Benjamin Jakimow
committed
EO Time Series Viewer
-------------------
begin : 2017-08-04
git sha : $Format:%H$
copyright : (C) 2017 by HU-Berlin
email : benjamin.jakimow@geo.hu-berlin.de
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
"""
# noinspection PyPep8Naming
# import QPS modules
from qps.crosshair.crosshair import CrosshairStyle, CrosshairWidget, CrosshairMapCanvasItem, CrosshairDialog, getCrosshairStyle
from qps.plotstyling.plotstyling import PlotStyle, PlotStyleDialog, PlotStyleButton, PlotStyleWidget
from qps.classification.classificationscheme import ClassificationScheme, ClassInfo, ClassificationSchemeComboBox, ClassificationSchemeWidget, ClassificationSchemeDialog, hasClassification
from qps.models import Option, OptionListModel, TreeNode, TreeModel, TreeView
from qps.speclib.spectrallibraries import SpectralLibrary, SpectralProfile
from qps.maptools import *

Benjamin Jakimow
committed
__version__ = '0.7' #sub-subversion number is added automatically

Benjamin Jakimow
committed
DESCRIPTION = 'Visualization of multi-sensor Earth observation time series data.'
HOMEPAGE = 'https://bitbucket.org/jakimowb/eo-time-series-viewer'
DOCUMENTATION = 'http://eo-time-series-viewer.readthedocs.io/en/latest/'
REPOSITORY = 'https://bitbucket.org/jakimowb/eo-time-series-viewer'
HOMEPAGE = 'https://bitbucket.org/jakimowb/eo-time-series-viewer'
ISSUE_TRACKER = 'https://bitbucket.org/jakimowb/eo-time-series-viewer/issues'
CREATE_ISSUE = 'https://bitbucket.org/jakimowb/eo-time-series-viewer/issues/new'
ABOUT = os.path.join(os.path.dirname(__file__), 'ABOUT.txt')
if os.path.isfile(ABOUT):
f = open(ABOUT, 'r', encoding='utf-8')
ABOUT = f.read()
f.close()
del f
else:
ABOUT = "The EO Time Series Viewer"

benjamin.jakimow@geo.hu-berlin.de
committed
DEBUG = True

benjamin.jakimow@geo.hu-berlin.de
committed
DEPENDENCIES = ['pyqtgraph']
from qgis.core import QgsApplication, Qgis
from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtGui import QIcon

benjamin.jakimow@geo.hu-berlin.de
committed
jp = os.path.join
dn = os.path.dirname
mkdir = lambda p: os.makedirs(p, exist_ok=True)

benjamin.jakimow@geo.hu-berlin.de
committed
DIR = os.path.dirname(__file__)
DIR_REPO = os.path.dirname(DIR)
DIR_SITE_PACKAGES = jp(DIR_REPO, 'site-packages')
DIR_UI = jp(DIR, *['ui'])
DIR_DOCS = jp(DIR, 'docs')
DIR_EXAMPLES = jp(DIR_REPO, 'example')
PATH_EXAMPLE_TIMESERIES = jp(DIR_EXAMPLES,'ExampleTimeSeries.csv')
PATH_LICENSE = jp(DIR_REPO, 'LICENSE.txt')
PATH_CHANGELOG = jp(DIR_REPO, 'CHANGES.txt')

Benjamin Jakimow
committed
PATH_ABOUT = jp(DIR_REPO, 'ABOUT.html')

benjamin.jakimow@geo.hu-berlin.de
committed

benjamin.jakimow@geo.hu-berlin.de
committed
OPENGL_AVAILABLE = False
try:
import OpenGL
OPENGL_AVAILABLE = True
except:
pass
except Exception as ex:
#site.addpackage(DIR_SITE_PACKAGES, 'qps', None)
sys.path.append(DIR_SITE_PACKAGES)
import qps
def messageLog(msg, level=None):
"""
:param msg: log message string
:param level: QgsMessageLog::MessageLevel with MessageLevel =[INFO | ALL | WARNING | CRITICAL | NONE]
"""
QgsApplication.instance().messageLog().logMessage(msg, 'EO TSV', level)

benjamin.jakimow@geo.hu-berlin.de
committed
try:
import timeseriesviewer.ui.resources
timeseriesviewer.ui.resources.qInitResources()
except:
print('Unable to initialize EO Time Series Viewer ressources', file=sys.stderr)
def initEditorWidgets():
"""
Initialises QgsEditorWidgets
"""
import qps
qps.registerEditorWidgets()
#see https://github.com/pyqtgraph/pyqtgraph/issues/774
WORKAROUND_PYTGRAPH_ISSUE_774 = True
if WORKAROUND_PYTGRAPH_ISSUE_774:
from pyqtgraph.graphicsItems.GraphicsObject import GraphicsObject
from qgis.PyQt.QtCore import QVariant
untouched = GraphicsObject.itemChange
def newFunc(cls, change, value):
if value != QVariant(None):
return untouched(cls, change, value)
else:
return untouched(cls, change, None)
GraphicsObject.itemChange = newFunc
def icon()->QIcon:
"""
Returns the EO Time Series Viewer icon
:return: QIcon
"""
path = os.path.join(os.path.dirname(__file__), 'icon.png')
return QIcon(path)
def getFileAndAttributes(file):
"""
splits a GDAL valid file path into
:param file:
:return:
"""
dn = os.path.dirname(file)
bn = os.path.basename(file)
bnSplit = bn.split(':')
return os.path.join(dn,bnSplit[0]), ':'.join(bnSplit[1:])