简体   繁体   中英

QhullError: QH6154 Qhull precision error: Initial simplex is flat (facet 1 is coplanar with the interior point)

I have a 2d matrix of values [725x725elements] (numpy 2d array). 8 elements are values, others are NaN. So I want to interpolate to NaN.

    arraynotnan=list(map(tuple,np.where(~np.isnan(arraysnow))))
    print(arraynotnan)
    arrayvalues=arraysnow[np.where(~np.isnan(arraysnow))]
    print(arrayvalues)
    x=arraynotnan[0]
    y=arraynotnan[1]
    print(x)
    print(y)
    
    a=np.arange(np.min(x),np.max(x)+1,10)
    b=np.arange(np.min(y),np.max(y)+1,10)
    print(a)
    print(b)
    X,Y=np.meshgrid(a,b)
    
    ff=itr.griddata((x,y),arrayvalues,(X,Y),method='cubic')

Then I get this result and error:

.725 725
[(100, 175, 250, 325, 400, 475, 550, 625), (100, 175, 250, 325, 400, 475, 550, 625)]
[15.61 14.25 13.15 12.17  6.8   1.43  3.65  8.72]
(100, 175, 250, 325, 400, 475, 550, 625)
(100, 175, 250, 325, 400, 475, 550, 625)
[100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270
280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450
460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 610 620]
[100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270
 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450
460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 610 620]

---------------------------------------------------------------------------
QhullError                                Traceback (most recent call last)
<ipython-input-30-cf743564ac6e> in <module>
 39 myModel=Model()
 40 dynModel = DynamicFramework(myModel, lastTimeStep=25, firstTimestep=1)
---> 41 dynModel.run()

/opt/conda/lib/python3.7/site-packages/pcraster/framework/dynamicFramework.py in run(self)
 63       self._runInitial()
 64 
---> 65     self._runDynamic()
 66 
 67     # Only execute this section while running filter frameworks.

/opt/conda/lib/python3.7/site-packages/pcraster/framework/frameworkBase.py in _runDynamic(self)
369         self._incrementIndentLevel()
370         self._traceIn("dynamic")
--> 371         self._userModel().dynamic()
372         self._traceOut("dynamic")
373         self._decrementIndentLevel()

<ipython-input-30-cf743564ac6e> in dynamic(self)
 28         print(X)
 29 
---> 30         ff=itr.griddata((x,y),arrayvalues,(X,Y),method='cubic')
 31 
 32         fig,ax=plt.subplots()

/opt/conda/lib/python3.7/site-packages/scipy/interpolate/ndgriddata.py in griddata(points, values, 
xi, 
method, fill_value, rescale)
221     elif method == 'cubic' and ndim == 2:
222         ip = CloughTocher2DInterpolator(points, values, fill_value=fill_value,
--> 223                                         rescale=rescale)
224         return ip(xi)
225     else:

interpnd.pyx in scipy.interpolate.interpnd.CloughTocher2DInterpolator.__init__()

qhull.pyx in scipy.spatial.qhull.Delaunay.__init__()

qhull.pyx in scipy.spatial.qhull._Qhull.__init__()

QhullError: QH6154 Qhull precision error: Initial simplex is flat (facet 1 is coplanar with the 
interior point)

While executing:  | qhull d Qc Qz Q12 Qbb Qt
Options selected for Qhull 2019.1.r 2019/06/21:
run-id 442526900  delaunay  Qcoplanar-keep  Qz-infinity-point  Q12-allow-wide
Qbbound-last  Qtriangulate  _pre-merge  _zero-centrum  Qinterior-keep  Pgood
_ max-width 5.2e+02  Error-roundoff 8.7e-13  _one-merge 6.1e-12
Visible-distance 1.7e-12  U-max-coplanar 1.7e-12  Width-outside 3.5e-12
_wide-facet 1e-11  _maxoutside 6.9e-12

The input to qhull appears to be less than 3 dimensional, or a
computation has overflowed.

Qhull could not construct a clearly convex simplex from points:
- p1(v4): 1.8e+02 1.8e+02    31
- p8(v3): 3.6e+02 3.6e+02 6.2e+02
- p7(v2): 6.2e+02 6.2e+02 5.7e+02
- p0(v1): 1e+02 1e+02     0

The center point is coplanar with a facet, or a vertex is coplanar
with a neighboring facet.  The maximum round off error for
computing distances is 8.7e-13.  The center point, facets and distances
to the center point are as follows:

center point    315.6    315.6    305.6

facet p8 p7 p0 distance=    0
facet p1 p7 p0 distance=    0
facet p1 p8 p0 distance=    0
facet p1 p8 p7 distance=    0

These points either have a maximum or minimum x-coordinate, or
they maximize the determinant for k coordinates.  Trial points
are first selected from points that maximize a coordinate.

The min and max coordinates for each dimension are:
 0:       100       625  difference=  525
 1:       100       625  difference=  525
 2:         0       625  difference=  625

If the input should be full dimensional, you have several options that
may determine an initial simplex:
 - use 'QJ'  to joggle the input and make it full dimensional
- use 'QbB' to scale the points to the unit cube
 - use 'QR0' to randomly rotate the input for different maximum points
- use 'Qs'  to search all points for the initial simplex
- use 'En'  to specify a maximum roundoff error less than 8.7e-13.
- trace execution with 'T3' to see the determinant for each point.

 If the input is lower dimensional:
- use 'QJ' to joggle the input and make it full dimensional
- use 'Qbk:0Bk:0' to delete coordinate k from the input.  You should
  pick the coordinate with the least range.  The hull will have the
  correct topology.
- determine the flat containing the points, rotate the points
  into a coordinate plane, and delete the other coordinates.
- add one or more points to make the input full dimensional.

Here is said that if x=y they are identical and this is the reason. But why can't I interpolate to points on a square where x=y and how to make my coordinates meet the requirements of griddata function? Please, could you give a direction to think further or maybe the solution of this problem.

My fault. I had an erronic way to generate points, that were located in a row on a 2d surface. now with full group of rectangular grid of points everything works.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM