kite icon indicating copy to clipboard operation
kite copied to clipboard

importing unwrapped displacement with spool

Open mahinjafari opened this issue 7 years ago • 1 comments

Hi I want to use kite and importing grd file and sent to spool, but the following error occurs:

In [5]: import gdal                                                             
In [6]: ds = gdal.Open('dataset',gdal.GA_ReadOnly)                              
ERROR 4: dataset: No such file or directory
In [7]: ds = gdal.Open('dataset.grd',gdal.GA_ReadOnly)                          
In [8]: ds_geo = ds.GetGeoTransform()                                           
In [9]: phs_band = ds.GetRasterBand(1)                                          
In [10]: los = phs_band.ReadAsArray(0, 0, ds.RasterXSize, ds.RasterYSize)       
In [11]: sc = Scene()                                                           
In [12]: sc.displacement = los                                                  
In [13]: sc.frame.llLat = ds_geo[3] + ds_geo[5] * ds.RasterYSize                
In [14]: sc.frame.llLon = ds_geo[0]                                             
In [15]: sc.frame.dN = -ds_geo[5]                                               
In [16]: sc.frame.dE = ds_geo[1]                                                
In [17]: sc.frame.spacing = 'degree'                                            
In [18]: sc.spool()                                                             
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/spool.py in buildViews(self)
    148             return
    149         for v in self.views:
--> 150             self.addView(v)
    151         self.model.sigProcessingStarted.connect(
    152             self.processingStarted,

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/spool.py in addView(self, view)
    155     def addView(self, view):
    156         self.sigLoadingModule.emit(view.title)
--> 157         view = view(self)
    158         QtCore.QCoreApplication.processEvents()
    159         self.tabs.addTab(view, view.title)

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/tab_scene.py in __init__(self, spool)
     21         model = spool.model
     22 
---> 23         scene_plot = KiteScenePlot(model)
     24         self.main_widget = scene_plot
     25         self.tools = {

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/tab_scene.py in __init__(self, model)
     79         self._component = 'displacement'
     80 
---> 81         KitePlot.__init__(self, model=model, los_arrow=True)
     82 
     83         model.sigFrameChanged.connect(self.onFrameChange)

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/base.py in __init__(self, model, los_arrow)
    173 
    174         if los_arrow:
--> 175             self.addLOSArrow()
    176 
    177         # self.addIsocurve()

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/base.py in addLOSArrow(self)
    179 
    180     def addLOSArrow(self):
--> 181         self.los_arrow = LOSArrow(self.model)
    182         self.los_arrow.setParentItem(self.graphicsItem())
    183         self.los_arrow.anchor(

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/base.py in __init__(self, model)
     70         #     "Helvetica", weight=QtGui.QFont.DemiBold))
     71 
---> 72         self.orientArrow()
     73         self.model.sigSceneChanged.connect(self.orientArrow)
     74         self.setFlag(self.ItemIgnoresTransformations)

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/base.py in orientArrow(self)
     76     @QtCore.pyqtSlot()
     77     def orientArrow(self):
---> 78         phi = num.nanmedian(self.model.scene.phi)
     79         theta = num.nanmedian(self.model.scene.theta)
     80 

/usr/local/lib/python3.5/dist-packages/numpy/lib/nanfunctions.py in nanmedian(a, axis, out, overwrite_input, keepdims)
   1020 
   1021     r, k = function_base._ureduce(a, func=_nanmedian, axis=axis, out=out,
-> 1022                                   overwrite_input=overwrite_input)
   1023     if keepdims and keepdims is not np._NoValue:
   1024         return r.reshape(k)

/usr/local/lib/python3.5/dist-packages/numpy/lib/function_base.py in _ureduce(a, func, **kwargs)
   3248         keepdim = (1,) * a.ndim
   3249 
-> 3250     r = func(a, **kwargs)
   3251     return r, keepdim
   3252 

/usr/local/lib/python3.5/dist-packages/numpy/lib/nanfunctions.py in _nanmedian(a, axis, out, overwrite_input)
    896         part = a.ravel()
    897         if out is None:
--> 898             return _nanmedian1d(part, overwrite_input)
    899         else:
    900             out[...] = _nanmedian1d(part, overwrite_input)

/usr/local/lib/python3.5/dist-packages/numpy/lib/nanfunctions.py in _nanmedian1d(arr1d, overwrite_input)
    879     """
    880     arr1d, overwrite_input = _remove_nan_1d(arr1d,
--> 881         overwrite_input=overwrite_input)
    882     if arr1d.size == 0:
    883         return np.nan

/usr/local/lib/python3.5/dist-packages/numpy/lib/nanfunctions.py in _remove_nan_1d(arr1d, overwrite_input)
    130     """
    131 
--> 132     c = np.isnan(arr1d)
    133     s = np.nonzero(c)[0]
    134     if s.size == arr1d.size:

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-18-e85825dda3ba> in <module>
----> 1 sc.spool()

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/scene.py in spool(self)
    684 
    685         from kite.spool import spool
--> 686         spool(scene=self)
    687 
    688     def _testImport(self):

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/spool.py in spool(*args, **kwargs)
    245 
    246 def spool(*args, **kwargs):
--> 247     spool_app = Spool(*args, **kwargs)
    248     spool_app.exec_()
    249     spool_app.quit()

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/spool.py in __init__(self, scene, import_file, load_file)
     38 
     39         if scene is not None:
---> 40             self.addScene(scene)
     41         elif import_file is not None:
     42             self.importScene(import_file)

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/spool.py in addScene(self, scene)
     53 
     54     def addScene(self, scene):
---> 55         self.spool_win.addScene(scene)
     56 
     57     def importScene(self, filename):

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/spool.py in addScene(self, scene)
    140     def addScene(self, scene):
    141         self.model.setScene(scene)
--> 142         self.buildViews()
    143 
    144     def buildViews(self):

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/spool.py in buildViews(self)
    148             return
    149         for v in self.views:
--> 150             self.addView(v)
    151         self.model.sigProcessingStarted.connect(
    152             self.processingStarted,

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/spool.py in addView(self, view)
    155     def addView(self, view):
    156         self.sigLoadingModule.emit(view.title)
--> 157         view = view(self)
    158         QtCore.QCoreApplication.processEvents()
    159         self.tabs.addTab(view, view.title)

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/tab_scene.py in __init__(self, spool)
     21         model = spool.model
     22 
---> 23         scene_plot = KiteScenePlot(model)
     24         self.main_widget = scene_plot
     25         self.tools = {

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/tab_scene.py in __init__(self, model)
     79         self._component = 'displacement'
     80 
---> 81         KitePlot.__init__(self, model=model, los_arrow=True)
     82 
     83         model.sigFrameChanged.connect(self.onFrameChange)

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/base.py in __init__(self, model, los_arrow)
    173 
    174         if los_arrow:
--> 175             self.addLOSArrow()
    176 
    177         # self.addIsocurve()

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/base.py in addLOSArrow(self)
    179 
    180     def addLOSArrow(self):
--> 181         self.los_arrow = LOSArrow(self.model)
    182         self.los_arrow.setParentItem(self.graphicsItem())
    183         self.los_arrow.anchor(

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/base.py in __init__(self, model)
     70         #     "Helvetica", weight=QtGui.QFont.DemiBold))
     71 
---> 72         self.orientArrow()
     73         self.model.sigSceneChanged.connect(self.orientArrow)
     74         self.setFlag(self.ItemIgnoresTransformations)

/usr/local/lib/python3.5/dist-packages/kite-2018.2.26-py3.5-linux-x86_64.egg/kite/spool/base.py in orientArrow(self)
     76     @QtCore.pyqtSlot()
     77     def orientArrow(self):
---> 78         phi = num.nanmedian(self.model.scene.phi)
     79         theta = num.nanmedian(self.model.scene.theta)
     80 

/usr/local/lib/python3.5/dist-packages/numpy/lib/nanfunctions.py in nanmedian(a, axis, out, overwrite_input, keepdims)
   1020 
   1021     r, k = function_base._ureduce(a, func=_nanmedian, axis=axis, out=out,
-> 1022                                   overwrite_input=overwrite_input)
   1023     if keepdims and keepdims is not np._NoValue:
   1024         return r.reshape(k)

/usr/local/lib/python3.5/dist-packages/numpy/lib/function_base.py in _ureduce(a, func, **kwargs)
   3248         keepdim = (1,) * a.ndim
   3249 
-> 3250     r = func(a, **kwargs)
   3251     return r, keepdim
   3252 

/usr/local/lib/python3.5/dist-packages/numpy/lib/nanfunctions.py in _nanmedian(a, axis, out, overwrite_input)
    896         part = a.ravel()
    897         if out is None:
--> 898             return _nanmedian1d(part, overwrite_input)
    899         else:
    900             out[...] = _nanmedian1d(part, overwrite_input)

/usr/local/lib/python3.5/dist-packages/numpy/lib/nanfunctions.py in _nanmedian1d(arr1d, overwrite_input)
    879     """
    880     arr1d, overwrite_input = _remove_nan_1d(arr1d,
--> 881         overwrite_input=overwrite_input)
    882     if arr1d.size == 0:
    883         return np.nan

/usr/local/lib/python3.5/dist-packages/numpy/lib/nanfunctions.py in _remove_nan_1d(arr1d, overwrite_input)
    130     """
    131 
--> 132     c = np.isnan(arr1d)
    133     s = np.nonzero(c)[0]
    134     if s.size == arr1d.size:

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

mahinjafari avatar Nov 26 '18 12:11 mahinjafari

Hi there,

looks like sc.phi and sc.theta are not set for the scene.

miili avatar May 08 '19 12:05 miili