Wie führe ich eine affine Koordinatentransformation mit Python durch? Teil 2

Ich habe das gleiche Problem wie hier beschrieben:Wie führe ich eine affine Koordinatentransformation mit Python durch?

Ich habe versucht, die beschriebene Methode zu verwenden, aber aus irgendeinem Grund erhalte ich Fehlermeldungen. Änderungen, die ich am Code vorgenommen habe, betrafen das Ersetzen von primären und sekundären Systempunkten. Ich habe unter Verwendung verschiedener Origos sekundäre Koordinatenpunkte erstellt. In realen Fällen, für die ich mich mit diesem Thema befasse, treten Fehler beim Messen der Koordinaten auf.

primary_system1 = (40.0, 1160.0, 0.0)
primary_system2 = (40.0, 40.0, 0.0)
primary_system3 = (260.0, 40.0, 0.0)
primary_system4 = (260.0, 1160.0, 0.0)

secondary_system1 = (610.0, 560.0, 0.0) 
secondary_system2 = (610.0,-560.0, 0.0) 
secondary_system3 = (390.0, -560.0, 0.0)
secondary_system4 = (390.0, 560.0, 0.0)

Fehler, den ich bekomme, wenn die Ausführung folgt.

*Traceback (most recent call last):
  File "affine_try.py", line 57, in <module>
    secondary_system3, secondary_system4 )
  File "affine_try.py", line 22, in solve_affine
    A2 = y * x.I
  File "/usr/lib/python2.7/dist-packages/numpy/matrixlib/defmatrix.py", line 850, in getI
    return asmatrix(func(self))
  File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 445, in inv
    return wrap(solve(a, identity(a.shape[0], dtype=a.dtype)))
  File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 328, in solve
    raise LinAlgError, 'Singular matrix'
numpy.linalg.linalg.LinAlgError: Singular matrix*

Was könnte das Problem sein?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage