kite
Advanced tools
@@ -16,11 +16,9 @@ repos: | ||
| args: [--write-changes, "-L ure,nd,ue,parms,Ue,lamda"] | ||
| - repo: https://github.com/pycqa/isort | ||
| rev: 5.11.4 | ||
| hooks: | ||
| - id: isort | ||
| name: isort (python) | ||
| args: [--profile, black] | ||
| - repo: https://github.com/psf/black | ||
| rev: 22.12.0 | ||
| rev: 23.1.0 | ||
| hooks: | ||
| - id: black | ||
| - repo: https://github.com/charliermarsh/ruff-pre-commit | ||
| rev: 'v0.0.241' | ||
| hooks: | ||
| - id: ruff |
| Metadata-Version: 2.1 | ||
| Name: kite | ||
| Version: 1.5.5 | ||
| Version: 1.5.6 | ||
| Summary: InSAR unwrapped surface displacement processing for earthquake modelling. | ||
@@ -5,0 +5,0 @@ Author-email: Marius Paul Isken <mi@gfz-potsdam.de>, Henriette Sudhaus <hsudhaus@ifg.uni-kiel.de> |
@@ -19,4 +19,8 @@ #!/usr/bin/python | ||
| from kite import covariance_ext | ||
| from kite.util import property_cached # noqa | ||
| from kite.util import Subject, derampMatrix, squareMatrix, trimMatrix | ||
| from kite.util import ( | ||
| Subject, | ||
| derampMatrix, | ||
| property_cached, # noqa | ||
| trimMatrix, | ||
| ) | ||
@@ -1110,3 +1114,2 @@ __all__ = ["Covariance", "CovarianceConfig"] | ||
| def variance(self): | ||
| if self.config.variance is None and self.config.sampling_method == "spatial": | ||
@@ -1144,3 +1147,3 @@ structure_spatial, dist = self.structure_spatial | ||
| ) | ||
| header += ", ".join([l.id for l in self.quadtree.leaves]) | ||
| header += ", ".join([lv.id for lv in self.quadtree.leaves]) | ||
| np.savetxt(filename, self.weight_matrix, header=header) | ||
@@ -1147,0 +1150,0 @@ |
+0
-1
@@ -8,3 +8,2 @@ import numpy as np | ||
| class DerampConfig(PluginConfig): | ||
| demean = Bool.T(optional=True, default=True) | ||
@@ -11,0 +10,0 @@ |
+0
-1
@@ -7,3 +7,2 @@ from hashlib import sha1 | ||
| class PluginConfig(Object): | ||
| applied = Bool.T(default=False) | ||
@@ -10,0 +9,0 @@ |
+3
-6
@@ -5,3 +5,2 @@ import logging | ||
| import pyqtgraph.parametertree.parameterTypes as pTypes | ||
| from PyQt5 import QtCore, QtGui, QtWidgets, uic | ||
@@ -287,3 +286,2 @@ from pyqtgraph.parametertree.parameterTypes import WidgetParameterItem | ||
| class SceneLog(QtWidgets.QDialog): | ||
| levels = { | ||
@@ -299,3 +297,2 @@ 50: "Critical", | ||
| class LogEntryDelegate(QtWidgets.QStyledItemDelegate): | ||
| levels = { | ||
@@ -794,3 +791,3 @@ 50: QtWidgets.QStyle.SP_MessageBoxCritical, | ||
| """private method for handling moving splitter handles""" | ||
| hw = self._splitter.handleWidth() | ||
| self._splitter.handleWidth() | ||
@@ -814,3 +811,3 @@ def _lockWidth(widget): | ||
| offset = -20 | ||
| w = xpos + offset | ||
| xpos + offset | ||
| self._setStart(v) | ||
@@ -824,3 +821,3 @@ | ||
| offset = -40 | ||
| w = self.width() - xpos + offset | ||
| self.width() - xpos + offset | ||
| self._setEnd(v) | ||
@@ -827,0 +824,0 @@ |
@@ -5,3 +5,3 @@ from datetime import datetime | ||
| from .scene import BaseScene, Scene | ||
| from .scene import Scene | ||
@@ -8,0 +8,0 @@ |
+1
-2
@@ -208,3 +208,3 @@ #!/usr/bin/env python3 | ||
| if self.isDegree(): | ||
| return self.dE | ||
| return self.dN | ||
@@ -771,3 +771,2 @@ lat, lon = ne_to_latlon(self.llLat, self.llLon, self.dN * self.rows, 0.0) | ||
| if self.has_processing_changed() or self._proc_displacement is None: | ||
| self._proc_displacement = self._displacement.copy() | ||
@@ -774,0 +773,0 @@ for plugin, state in self.processing_states.items(): |
@@ -1,4 +0,15 @@ | ||
| from .compound_sources import * # noqa | ||
| from .okada import * # noqa | ||
| from .pyrocko_gf import * # noqa | ||
| from .compound_sources import ( | ||
| CompoundModelProcessor, | ||
| EllipsoidSource, | ||
| PointCompoundSource, | ||
| ) | ||
| from .okada import DislocProcessor, OkadaSource | ||
| from .pyrocko_gf import ( | ||
| PyrockoDoubleCouple, | ||
| PyrockoMomentTensor, | ||
| PyrockoProcessor, | ||
| PyrockoRectangularSource, | ||
| PyrockoRingfaultSource, | ||
| PyrockoVLVDSource, | ||
| ) | ||
@@ -8,5 +19,14 @@ __sources__ = [ | ||
| PyrockoMomentTensor, | ||
| PyrockoRectangularSource, # noqa | ||
| PyrockoRectangularSource, | ||
| PyrockoRingfaultSource, | ||
| PyrockoDoubleCouple, | ||
| PyrockoVLVDSource, | ||
| EllipsoidSource, | ||
| PointCompoundSource, | ||
| ] # noqa | ||
| ] | ||
| __processors__ = [ | ||
| CompoundModelProcessor, | ||
| PyrockoProcessor, | ||
| DislocProcessor, | ||
| ] |
@@ -13,3 +13,2 @@ import numpy as np | ||
| class SandboxSource(Object): | ||
| lat = Float.T(default=0.0, help="Latitude in [deg]") | ||
@@ -43,3 +42,2 @@ lon = Float.T(default=0.0, help="Longitude in [deg]") | ||
| class SandboxSourceRectangular(SandboxSource): | ||
| width = Float.T( | ||
@@ -46,0 +44,0 @@ help="Width, downdip in [m]", |
@@ -14,3 +14,2 @@ import numpy as np | ||
| class EllipsoidSource(SandboxSource): | ||
| __implements__ = "CompoundModel" | ||
@@ -78,3 +77,2 @@ | ||
| class PointCompoundSource(SandboxSource): | ||
| __implements__ = "CompoundModel" | ||
@@ -126,3 +124,2 @@ | ||
| class CompoundModelProcessor(SourceProcessor): | ||
| __implements__ = "CompoundModel" | ||
@@ -129,0 +126,0 @@ |
@@ -108,3 +108,2 @@ import numpy as np | ||
| class OkadaPath(SandboxSource): | ||
| __implements__ = "disloc" | ||
@@ -111,0 +110,0 @@ |
@@ -234,3 +234,2 @@ import numpy as np | ||
| class PyrockoProcessor(SourceProcessor): | ||
| __implements__ = "pyrocko" | ||
@@ -237,0 +236,0 @@ |
@@ -116,3 +116,3 @@ from os import path | ||
| rect_label = self.label.boundingRect() | ||
| rect_arr = self.arrow.boundingRect() | ||
| self.arrow.boundingRect() | ||
@@ -211,4 +211,2 @@ self.label.setPos(-rect_label.width() / 2.0, rect_label.height() * 1.33) | ||
| contrast = 1.0 | ||
| elevation_angle = 45.0 | ||
| azimuth = 45.0 | ||
@@ -215,0 +213,0 @@ size_ramp = 10 |
| import numpy as np | ||
| import pyqtgraph as pg | ||
| import pyqtgraph.parametertree.parameterTypes as pTypes | ||
| from PyQt5 import QtCore, QtGui, QtWidgets | ||
| from PyQt5 import QtCore, QtWidgets | ||
| from pyqtgraph import dockarea | ||
@@ -73,3 +73,2 @@ | ||
| class KiteAPSPlot(KitePlot): | ||
| region_changed = QtCore.pyqtSignal() | ||
@@ -125,3 +124,2 @@ | ||
| class KiteAPSCorrelation(KiteSubplot): | ||
| MAXPOINTS = 10000 | ||
@@ -128,0 +126,0 @@ |
@@ -6,3 +6,3 @@ from collections import OrderedDict | ||
| import pyqtgraph.parametertree.parameterTypes as pTypes | ||
| from PyQt5 import QtCore, QtGui, QtWidgets | ||
| from PyQt5 import QtCore, QtWidgets | ||
| from pyqtgraph import dockarea | ||
@@ -245,6 +245,6 @@ | ||
| class KiteCovariogram(KiteSubplot): | ||
| legend_template = { | ||
| "exponential": "Model: {0:.2g} e^(-d/{1:.1f}) | RMS: {rms:.4e}", | ||
| "exponential_cosine": "Model: {0:.2g} e^(-d/{1:.1f}) - cos((d-({2:.1f}))/{3:.1f}) " | ||
| "exponential_cosine": "Model: {0:.2g}" | ||
| " e^(-d/{1:.1f}) - cos((d-({2:.1f}))/{3:.1f})" | ||
| "| RMS: {rms:.4e}", | ||
@@ -722,3 +722,2 @@ } | ||
| class CovarianceCalcResultDialog(QtWidgets.QMessageBox): | ||
| text_tmpl = ( | ||
@@ -738,3 +737,2 @@ '<span style="font-family: monospace;">' "Covariance.covariance_matrix</span>" | ||
| def show(self, elapsed_time, *args, **kwargs): | ||
| if self.model.covariance.isMatrixPosDefinite(full=True): | ||
@@ -741,0 +739,0 @@ self.setIcon(QtWidgets.QMessageBox.Information) |
| import math | ||
| import time | ||
| from collections import OrderedDict | ||
@@ -7,3 +6,3 @@ | ||
| import pyqtgraph.parametertree.parameterTypes as pTypes | ||
| from PyQt5 import QtCore, QtGui, QtWidgets | ||
| from PyQt5 import QtCore, QtWidgets | ||
@@ -52,3 +51,2 @@ from kite.qt_utils import SliderWidgetParameterItem | ||
| class QQuadLeaf(QtCore.QRectF): | ||
| leaf_outline = pg.mkPen((255, 255, 255), width=1) | ||
@@ -80,3 +78,2 @@ leaf_fill = pg.mkBrush(0, 0, 0, 0) | ||
| def __init__(self, model): | ||
| self.components_available = { | ||
@@ -83,0 +80,0 @@ "mean": [ |
@@ -6,3 +6,3 @@ import logging | ||
| from PyQt5 import QtCore, QtGui, QtWidgets | ||
| from pyrocko.guts import Bool, Float, Int, List, Object, String, Tuple, load | ||
| from pyrocko.guts import Bool, Float, Int, Object, String, Tuple, load | ||
@@ -91,3 +91,2 @@ from kite.qt_utils import loadUi | ||
| class ConfigDialog(QtWidgets.QDialog): | ||
| attributes = [ | ||
@@ -110,3 +109,3 @@ "show_cursor", | ||
| self.completer = QtWidgets.QCompleter() | ||
| self.completer_model = QtWidgets.QFileSystemModel(self.completer) | ||
| self.completer_model = QtGui.QFileSystemModel(self.completer) | ||
| self.completer.setModel(self.completer_model) | ||
@@ -113,0 +112,0 @@ self.completer.setMaxVisibleItems(8) |
@@ -13,3 +13,2 @@ import numpy as np | ||
| class SandboxSceneLayout(pg.GraphicsLayoutWidget): | ||
| PLOT_VIEWS = ["north", "east", "down", "los"] | ||
@@ -52,3 +51,3 @@ | ||
| for ip, plt in enumerate(visible_plots): | ||
| row = ip / 2 | ||
| row = ip // 2 | ||
| col = ip % 2 + 1 | ||
@@ -220,3 +219,2 @@ | ||
| def mouseMoved(self, event): | ||
| if self.vb.sceneBoundingRect().contains(event[0]): | ||
@@ -383,3 +381,2 @@ map_pos = self.vb.mapSceneToView(event[0]) | ||
| class Vector(QtWidgets.QGraphicsItem): | ||
| arrow_color = QtGui.QColor(*getConfig().vector_color) | ||
@@ -386,0 +383,0 @@ arrow_brush = QtGui.QBrush(arrow_color, QtCore.Qt.SolidPattern) |
@@ -22,3 +22,2 @@ import logging | ||
| class SandboxModel(QtCore.QObject): | ||
| sigModelUpdated = QtCore.pyqtSignal() | ||
@@ -116,3 +115,2 @@ sigModelChanged = QtCore.pyqtSignal() | ||
| class SourceModel(QtCore.QAbstractTableModel): | ||
| selectionModelChanged = QtCore.pyqtSignal() | ||
@@ -119,0 +117,0 @@ |
@@ -136,3 +136,3 @@ from PyQt5 import QtCore, QtGui, QtWidgets | ||
| return QtCore.QSize(doc.idealWidth(), doc.size().height()) | ||
| return QtCore.QSize(int(doc.idealWidth()), int(doc.size().height())) | ||
@@ -139,0 +139,0 @@ class SourceContextMenu(QtWidgets.QMenu): |
@@ -14,3 +14,2 @@ import numpy as np | ||
| class RectangularSourceROI(pg.ROI): | ||
| newSourceParameters = QtCore.pyqtSignal(object) | ||
@@ -52,3 +51,2 @@ | ||
| def setSourceParametersFromROI(self): | ||
| strike = float((-self.angle()) % 360) | ||
@@ -101,3 +99,2 @@ width = float(self.size().x()) | ||
| class PointSourceROI(pg.EllipseROI): | ||
| newSourceParameters = QtCore.pyqtSignal(object) | ||
@@ -178,3 +175,2 @@ | ||
| class SourceDelegate(QtCore.QObject): | ||
| __represents__ = "SourceToImplement" | ||
@@ -283,3 +279,3 @@ | ||
| for param, value in self.delegate.getSourceParameters().items(): | ||
| self.__getattribute__(param).setValue(value) | ||
| self.__getattribute__(param).setValue(int(value)) | ||
@@ -286,0 +282,0 @@ @QtCore.pyqtSlot() |
@@ -12,3 +12,2 @@ import numpy as np | ||
| class EllipsoidSourceDelegate(SourceDelegate): | ||
| __represents__ = "EllipsoidSource" | ||
@@ -88,3 +87,2 @@ | ||
| class PointCompoundSourceDelegate(SourceDelegate): | ||
| __represents__ = "PointCompoundSource" | ||
@@ -91,0 +89,0 @@ |
@@ -12,3 +12,2 @@ import numpy as np | ||
| class OkadaSourceDelegate(SourceDelegate): | ||
| __represents__ = "OkadaSource" | ||
@@ -15,0 +14,0 @@ |
| import os | ||
| import numpy as np | ||
| from PyQt5 import QtCore, QtGui | ||
| from PyQt5 import QtCore, QtGui, QtWidgets | ||
@@ -25,3 +25,3 @@ from kite.sources import ( | ||
| self.completer = QtGui.QCompleter() | ||
| self.completer = QtWidgets.QCompleter() | ||
| self.completer_model = QtGui.QFileSystemModel(self.completer) | ||
@@ -52,3 +52,2 @@ self.completer.setModel(self.completer_model) | ||
| class PyrockoRectangularSourceDelegate(SourceDelegate): | ||
| __represents__ = "PyrockoRectangularSource" | ||
@@ -125,3 +124,2 @@ | ||
| class PyrockoMomentTensorDelegate(SourceDelegate): | ||
| __represents__ = "PyrockoMomentTensor" | ||
@@ -147,3 +145,2 @@ | ||
| class MomentTensorDialog(PyrockoSourceDialog): | ||
| scaling_params = ["mnn", "mee", "mdd", "mne", "mnd", "med"] | ||
@@ -217,3 +214,2 @@ | ||
| class PyrockoDoubleCoupleDelegate(SourceDelegate): | ||
| __represents__ = "PyrockoDoubleCouple" | ||
@@ -455,3 +451,2 @@ | ||
| class PyrockoVLVDSourceDelegate(SourceDelegate): | ||
| __represents__ = "PyrockoVLVDSource" | ||
@@ -475,3 +470,2 @@ | ||
| class VLVDSourceDialog(PyrockoSourceDialog): | ||
| scaling_params = ["clvd_moment"] | ||
@@ -478,0 +472,0 @@ |
@@ -1,3 +0,1 @@ | ||
| import sys | ||
| from PyQt5 import QtCore, QtGui, QtWidgets | ||
@@ -4,0 +2,0 @@ |
@@ -70,3 +70,3 @@ import numpy as np | ||
| self.sandbox = sandbox | ||
| model = self.sandbox.model | ||
| self.sandbox.model | ||
| self.applyButton.released.connect(self.updateValues) | ||
@@ -79,5 +79,5 @@ self.okButton.released.connect(self.updateValues) | ||
| def setValues(self): | ||
| model = self.sandbox.model | ||
| phi = np.deg2rad(self.spinlos_phi.value()) | ||
| theta = np.deg2rad(self.spinlos_theta.value()) | ||
| self.sandbox.model | ||
| np.deg2rad(self.spinlos_phi.value()) | ||
| np.deg2rad(self.spinlos_theta.value()) | ||
@@ -84,0 +84,0 @@ @QtCore.pyqtSlot() |
@@ -220,4 +220,4 @@ #!/bin/python | ||
| def unsubscribeAll(self): | ||
| for l in self._listeners: | ||
| self.unsubscribe(l) | ||
| for listener in self._listeners: | ||
| self.unsubscribe(listener) | ||
@@ -227,5 +227,5 @@ def notify(self, *args, **kwargs): | ||
| return | ||
| for l in self._listeners: | ||
| if callable(l): | ||
| self._call(l, *args, **kwargs) | ||
| for listener in self._listeners: | ||
| if callable(listener): | ||
| self._call(listener, *args, **kwargs) | ||
@@ -232,0 +232,0 @@ @staticmethod |
@@ -6,3 +6,2 @@ import logging | ||
| import numpy as np | ||
| import pyrocko.orthodrome as od | ||
| import shapefile | ||
@@ -9,0 +8,0 @@ import utm |
+1
-1
| Metadata-Version: 2.1 | ||
| Name: kite | ||
| Version: 1.5.5 | ||
| Version: 1.5.6 | ||
| Summary: InSAR unwrapped surface displacement processing for earthquake modelling. | ||
@@ -5,0 +5,0 @@ Author-email: Marius Paul Isken <mi@gfz-potsdam.de>, Henriette Sudhaus <hsudhaus@ifg.uni-kiel.de> |
+40
-33
| [build-system] | ||
| requires = ["wheel", "setuptools >= 61.0.0", "oldest-supported-numpy", "setuptools_scm[toml]>=6.2"] | ||
| requires = [ | ||
| "wheel", | ||
| "setuptools >= 61.0.0", | ||
| "oldest-supported-numpy", | ||
| "setuptools_scm[toml]>=6.2", | ||
| ] | ||
| build-backend = "setuptools.build_meta" | ||
@@ -8,3 +13,3 @@ | ||
| requires-python = ">=3.7" | ||
| license = {text = "GPLv3"} | ||
| license = { text = "GPLv3" } | ||
| dynamic = ["version"] | ||
@@ -14,29 +19,27 @@ description = "InSAR unwrapped surface displacement processing for earthquake modelling." | ||
| authors = [ | ||
| {name = "Marius Paul Isken", email = "mi@gfz-potsdam.de"}, | ||
| {name = "Henriette Sudhaus", email = "hsudhaus@ifg.uni-kiel.de"} | ||
| { name = "Marius Paul Isken", email = "mi@gfz-potsdam.de" }, | ||
| { name = "Henriette Sudhaus", email = "hsudhaus@ifg.uni-kiel.de" }, | ||
| ] | ||
| maintainers = [ | ||
| {name = "Marius Paul Isken", email = "mi@gfz-potsdam.de"} | ||
| ] | ||
| maintainers = [{ name = "Marius Paul Isken", email = "mi@gfz-potsdam.de" }] | ||
| keywords = ["InSAR", "satellite", "radar", "earthquake", "optimization"] | ||
| classifiers = [ | ||
| "Intended Audience :: Science/Research", | ||
| "Topic :: Scientific/Engineering", | ||
| "Topic :: Scientific/Engineering :: Atmospheric Science", | ||
| "Topic :: Scientific/Engineering :: Image Recognition", | ||
| "Topic :: Scientific/Engineering :: Physics", | ||
| "Topic :: Scientific/Engineering :: Visualization", | ||
| "Programming Language :: Python :: 3.7", | ||
| "Programming Language :: C", | ||
| "Operating System :: POSIX", | ||
| "Operating System :: MacOS" | ||
| "Intended Audience :: Science/Research", | ||
| "Topic :: Scientific/Engineering", | ||
| "Topic :: Scientific/Engineering :: Atmospheric Science", | ||
| "Topic :: Scientific/Engineering :: Image Recognition", | ||
| "Topic :: Scientific/Engineering :: Physics", | ||
| "Topic :: Scientific/Engineering :: Visualization", | ||
| "Programming Language :: Python :: 3.7", | ||
| "Programming Language :: C", | ||
| "Operating System :: POSIX", | ||
| "Operating System :: MacOS", | ||
| ] | ||
| dependencies = [ | ||
| "numpy>=1.17.3", | ||
| "scipy>=1.8.0", | ||
| "PyQt5>=5.15.7", | ||
| "pyqtgraph==0.12.4", | ||
| "pyrocko>=2022.06.10", | ||
| "utm>=0.7.0", | ||
| "geojson>=2.5.0" | ||
| "numpy>=1.17.3", | ||
| "scipy>=1.8.0", | ||
| "PyQt5>=5.15.7", | ||
| "pyqtgraph==0.12.4", | ||
| "pyrocko>=2022.06.10", | ||
| "utm>=0.7.0", | ||
| "geojson>=2.5.0", | ||
| ] | ||
@@ -63,11 +66,11 @@ | ||
| [tool.setuptools] | ||
| packages=[ | ||
| "kite", | ||
| "kite.util", | ||
| "kite.sources", | ||
| "kite.spool", | ||
| "kite.spool.res", | ||
| "kite.talpa", | ||
| "kite.talpa.res", | ||
| "kite.talpa.sources" | ||
| packages = [ | ||
| "kite", | ||
| "kite.util", | ||
| "kite.sources", | ||
| "kite.spool", | ||
| "kite.spool.res", | ||
| "kite.talpa", | ||
| "kite.talpa.res", | ||
| "kite.talpa.sources", | ||
| ] | ||
@@ -80,1 +83,5 @@ | ||
| [tool.setuptools_scm] | ||
| [tool.ruff] | ||
| select = ["E", "F", "I"] | ||
| exclude = ["docs/**.py"] |
+0
-1
@@ -96,3 +96,2 @@ #!/usr/bin/env python3 | ||
| if _have_openmp(): | ||
| omp_arg = ["-fopenmp"] | ||
@@ -99,0 +98,0 @@ omp_lib = ["-lgomp"] |
@@ -13,2 +13,2 @@ import numpy as np | ||
| coeffs = sc.deramp.get_ramp_coefficients(sc.displacement) | ||
| sc.deramp.get_ramp_coefficients(sc.displacement) |
| import logging | ||
| import time | ||
| import numpy as np | ||
| from kite.quadtree import QuadNode | ||
| from kite.scene import TestScene | ||
| from kite.scene_stack import SceneStack, TSScene | ||
| from kite.spool import spool | ||
@@ -11,0 +8,0 @@ logging.basicConfig(level=logging.DEBUG) |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
3341423
013778
0.12%