I was trying to convert an array to an integer, and it should have been easy. But I have come up with this error:
traceback (last most recent call): file "C: \ user \ jo \ desktop \ box" (running) .p " Line 32, & lt; Module & gt; Pixel = [Map] for array in array (int, x) ValueError: Invalid binding for int () with base 10: '-' The problem is that I am reading a file, it is an ascii grid, which assigns the -9999 number to the no_data value (this is because the focus in editing Very easy to do.) I can use a regex to convert these values to other people, but I do not want to, so I am thinking that this is just a difference in my code or if I do not Thinking someone can tell a solution?
Code:
im = open ('input.txt', 'r') imgx = 1452 imgy = 1 9 16 array = [] for IM with open ("qqqf.txt", "r"): array.print (line) print array pixels = [map for x in the array (e) T, X)] Input file:
-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 - 9999 - 9999 - 9999 - 9999 - 9999 1 1 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999 - 9999
you were confused with the map and the list's understanding
pixels = [array in array for max (int, x) x] Here you take every element of the array , name it X and then every element in the function int to x . But x is a string, and its element is a letter, so you apply int to '-' , then 9 ', then ' 9 ' and therefore a ...
What you just wanted to do was
Pixels = Map (int, array) Also, if every row of your file has many numbers, you
array.append (line ) For
array.append (line.split ()) Or with one of you End will look like array [ '- 99 9 -999-99 9' -999 -999-99 9]
Comments
Post a Comment