Hi!!!


Im writing an algorithm in Python to extract Z coordinate of an DEM for a pair 
of X,Y coordinates. Im using GDAL. The algorithm works correctly by extracting 
the Z coordinate from the DEM.

Z = 1872 limiar = 0.00001
COORD_X = []
COORD_Y = []
for i in range(size):
print()
print()
print()
X = Xcp + (Z - Zcp) * (((m11 * xf[i]) + (m21 * yf[i]) - (m31 * focal)) / ((m13 
* xf[i]) + (m23 * yf[i]) - (m33 * focal)))

Y = Ycp + (Z - Zcp) * (((m12 * xf[i]) + (m22 * yf[i]) - (m32 * focal)) / ((m13 
* xf[i]) + (m23 * yf[i]) - (m33 * focal)))

rasterx = int((X - gt[0]) / gt[1])
rastery = int((Y - gt[3]) / gt[5])
Z_dem = float(layer.GetRasterBand(1).ReadAsArray(rasterx, rastery, 1, 1))
a = abs(Z_dem - Z)

Until this part of the algorithm everything works properly. In sequence I need 
to enter a condition to compare the result of the variable "a" with variable 
"limiar" and when I enter the conditional in the algorithm and try to execute, 
the python returns an error in line referring to "Z_dem".

    if (a < limiar):
    COORD_X.append(X)
    COORD_Y.append(Y)
    else:
    Z = Z_dem

Error on Python:

File "C:/Users/cesar/OneDrive/Projeto_RGB/Monorestituicao_v01.py", line 106, in 
Z_dem = float(layer.GetRasterBand(1).ReadAsArray(rasterx, rastery, 1, 1)) 
TypeError: float() argument must be a string or a number, not 'NoneType'


I don't understand this error because the value on "Z_dem" is a float and not 
"NoneType".


Can someone assist please?

Kind Regards.

César de Paula





















Enviado do Outlook<http://aka.ms/weboutlook>
_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to