Hi Cleo,

Just been dealing with this type of issue.

It’s likely that the byte datatype is overflowing.

Try something like:

--calc "(A.astype(int)-B.astype(int))/(A.astype(int)+B.astype(int))"

Actually you might only need to cast one of the bands from byte to int, so the 
syntax could be:

--calc "(A.astype(int)-B A.astype(int)+B)"

Cheers
Jeremy

From: [email protected] 
[mailto:[email protected]] On Behalf Of Cleo Drakos
Sent: Wednesday, 30 July 2014 2:06 p.m.
To: Vincent Schut
Cc: gdal-dev
Subject: Re: [gdal-dev] Does gdal_calc.py not calculate arithmetic with in the 
same file?

Even if I converted the input file into Float 32 at first, the resulted image 
is still totally black.

cleo

On Tue, Jul 29, 2014 at 11:20 PM, Vincent Schut 
<[email protected]<mailto:[email protected]>> wrote:
On 07/29/2014 04:04 PM, Cleo Drakos wrote:

Thanks for your response.
I tried the followings:

gcalc = 'C:\\Users\\cleo\\Documents\\gdalpys\\gdal_calc.py'
##I produced second file (b)as the copy of first(a)
a = 'D:\\a.tif'
b = 'D:\\b.tif'
outfile = 'D:\\result.tif'
expr = '(A-B)/(A+B)'
subprocess.call([sys.executable,gcalc,'-A',a,'--A_band','1','-B',b,'--B_band','0','--outfile',outfile,\
    '--calc',expr,'--type','Float32','--format','ENVI'],shell=True)
a,b,outfile = None, None,None

Unfortunately, resulted file is completely black.

I hope someone can help me.

I don't use gdal_calc myself, but I suppose the problem is the byte datatype. I 
would try to convert the input data to float32 first (use gdal_translate -ot 
Float32) and try again.

Best,
Vincent.




On Tue, Jul 29, 2014 at 10:37 PM, Etienne Tourigny 
<[email protected]<mailto:[email protected]>> wrote:
I am not sure, but you can do the following to make sure:

cp infile infile2
gdal_calc.py -A infile --A_band 1 -B infile2 --B_band 0 --outfile outfile 
--calc "(A-B)/(A+B)"

Also, perhaps the extra comma in your command might be to blame "-B infile,"

Etienne

On Tue, Jul 29, 2014 at 3:46 AM, Cleo Drakos 
<[email protected]<mailto:[email protected]>> wrote:
Hi GDAL Developers,

I have one GeoTIFF file with 2 bands. The data type is Byte. I want to 
calculate (Band2-Band1)/(Band2+Band1).

But the following command provided a dark image:

gdal_calc.py -A infile --A_band 1 -B infile, --B_band 0 --outfile outfile 
--calc "(A-B)/(A+B)"

Does gdal_calc.py not calculate arithmetic with in the same file?

Thanks for your time.

cleo

_______________________________________________
gdal-dev mailing list
[email protected]<mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/gdal-dev


_______________________________________________

gdal-dev mailing list

[email protected]<mailto:[email protected]>

http://lists.osgeo.org/mailman/listinfo/gdal-dev


_______________________________________________
gdal-dev mailing list
[email protected]<mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/gdal-dev


________________________________
This message contains information, which may be in confidence and may be 
subject to legal privilege. If you are not the intended recipient, you must not 
peruse, use, disseminate, distribute or copy this message. If you have received 
this message in error, please notify us immediately (Phone 0800 665 463 or 
[email protected]) and destroy the original message. LINZ accepts no 
responsibility for changes to this email, or for any attachments, after its 
transmission from LINZ. Thank You.
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to