From aba8654755412dc97a727e4699660a1e27058008 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Thu, 9 May 2024 11:57:28 -0400 Subject: [PATCH 1/2] Fix a bug with geotiff writing when yaxis is flipped --- .../java/ucar/nc2/geotiff/GeotiffWriter.java | 2 +- .../test/data/ucar/nc2/geotiff/categorical.nc | Bin 0 -> 70265 bytes .../ucar/nc2/geotiff/TestGeoTiffWriter.java | 5 +++++ 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 cdm/misc/src/test/data/ucar/nc2/geotiff/categorical.nc diff --git a/cdm/misc/src/main/java/ucar/nc2/geotiff/GeotiffWriter.java b/cdm/misc/src/main/java/ucar/nc2/geotiff/GeotiffWriter.java index f0d9e4e1c8..4c59a1d5eb 100644 --- a/cdm/misc/src/main/java/ucar/nc2/geotiff/GeotiffWriter.java +++ b/cdm/misc/src/main/java/ucar/nc2/geotiff/GeotiffWriter.java @@ -558,7 +558,7 @@ public void writeGrid(GeoReferencedArray array, boolean greyScale) throws IOExce Array data = array.getData().reduce(); if (yaxis.getCoordMidpoint(0) < yaxis.getCoordMidpoint(1)) { data = data.flip(0); - yStart = yaxis.getCoordEdgeLast(); + yStart = yaxis.getCoordEdgeLast() * scaler; } /* diff --git a/cdm/misc/src/test/data/ucar/nc2/geotiff/categorical.nc b/cdm/misc/src/test/data/ucar/nc2/geotiff/categorical.nc new file mode 100644 index 0000000000000000000000000000000000000000..e388dc1a0aa831141ed6ecd0ca01be5d9fba5df2 GIT binary patch literal 70265 zcmeHQeQ;FQb-%0S8-W1_2(Afh+00{`T z*x}=k+O;Vu$r$I;Lpn~KadFbLwA0u#jA9_cPRKaS#MH6JwP!j`Qnx{!+73AF(BFCY zo&C@U+zZdCq37C1=iRrzciz3{{?2{(y?fu|&zl>YrcAnFQrUzFiqi!z?VJ&CcSXD( zrr-99L+hIx+sevMl~uU=g5$lP_>iG`QkimX%)C*J0W?^qh9Wp$zJN>x)i^bQpt)48 z$5Gc~*Az$@WZlkCZzk#Vgp!F|V%jw9Q7eP=S1DZ>rS#rRrQW+rD>ZI5Z3MK>5o8NbWwA(bHO; z+f{zEQe$ChlJ-eYCfyxRCwjGC=(OY)s!e%R!Et%#ZBM6i{jT$7d7y2X?b-fNe=6PS zgrZ9$kwuXx{>P7x&fPwZ>OPK;aMD;(NWso*{{x;U<|p>F)0rq$tcy=`IWR>90;rv? zK$13)SO-5rb(tQTmv_$W32OE(AjVFjUxEv%^hyovVq#2IFX&xromYf@PfwUZ$Y5Z= z)k^&(d+8zC|9_eO6?l{O%Kz!2BDKx0JpR#m>+E&_B4 z==9g&CDUEhL_$&529(!{7Epio?4R~FwZoR;S}^BXd*)E2R<%P>*QtLQ@XGT?9)R_$ zI|skCs$*>vO7|oo>y+!cwciO%Q!f#ArLNw4kIlP9eU^5h*CXKZUmg6kdWE*`P--I7 z$sM=1sfn}$#iRP2oc(@A?Zt+=QFlo3$M-y@o}wLY DCzT(Sj9UU^4x+$d8Q{Pv( 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 getTestParameters() { result.add(new Object[] {TestDir.cdmUnitTestDir + "ft/coverage/testCFwriter.nc", FeatureType.GRID, "Temperature", greyscale == 1}); + + // This file is unique in that it is lambert conformal with yaxis flipped. + result.add(new Object[] {"src/test/data/ucar/nc2/geotiff/categorical.nc", FeatureType.GRID, "drought", + greyscale == 1}); + } return result; From 4129657ecb095f2120d6428b141f9024ca3bad08 Mon Sep 17 00:00:00 2001 From: Benjamin Root Date: Thu, 9 May 2024 12:07:52 -0400 Subject: [PATCH 2/2] Style fixes --- .../src/test/java/ucar/nc2/geotiff/TestGeoTiffWriter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cdm/misc/src/test/java/ucar/nc2/geotiff/TestGeoTiffWriter.java b/cdm/misc/src/test/java/ucar/nc2/geotiff/TestGeoTiffWriter.java index 9e2b2b9220..8372ed37a6 100644 --- a/cdm/misc/src/test/java/ucar/nc2/geotiff/TestGeoTiffWriter.java +++ b/cdm/misc/src/test/java/ucar/nc2/geotiff/TestGeoTiffWriter.java @@ -66,8 +66,8 @@ public static List getTestParameters() { greyscale == 1}); // This file is unique in that it is lambert conformal with yaxis flipped. - result.add(new Object[] {"src/test/data/ucar/nc2/geotiff/categorical.nc", FeatureType.GRID, "drought", - greyscale == 1}); + result.add( + new Object[] {"src/test/data/ucar/nc2/geotiff/categorical.nc", FeatureType.GRID, "drought", greyscale == 1}); }