private static FlagCoding createCloudFlagCoding(Product outputProduct) {
MetadataAttribute cloudAttr;
final FlagCoding flagCoding = new FlagCoding(CLOUD_FLAG_BAND);
flagCoding.setDescription("Cloud Flag Coding");
cloudAttr = new MetadataAttribute("cloudy", ProductData.TYPE_UINT8);
cloudAttr.getData().setElemInt(FLAG_CLOUDY);
cloudAttr.setDescription("is with more than 80% cloudy");
flagCoding.addAttribute(cloudAttr);
outputProduct.addMask(cloudAttr.getName(),
flagCoding.getName() + "." + cloudAttr.getName(), cloudAttr.getDescription(),
createBitmaskColor(1, 3), 0.5);
cloudAttr = new MetadataAttribute("cloudfree", ProductData.TYPE_UINT8);
cloudAttr.getData().setElemInt(FLAG_CLOUDFREE);
cloudAttr.setDescription("is with less than 20% cloudy");
flagCoding.addAttribute(cloudAttr);
outputProduct.addMask(cloudAttr.getName(),
flagCoding.getName() + "." + cloudAttr.getName(), cloudAttr.getDescription(),
createBitmaskColor(2, 3), 0.5);
cloudAttr = new MetadataAttribute("cloud_uncertain", ProductData.TYPE_UINT8);
cloudAttr.getData().setElemInt(FLAG_UNCERTAIN);
cloudAttr.setDescription("is with between 20% and 80% cloudy");
flagCoding.addAttribute(cloudAttr);
outputProduct.addMask(cloudAttr.getName(),
flagCoding.getName() + "." + cloudAttr.getName(), cloudAttr.getDescription(),
createBitmaskColor(3, 3), 0.5);
return flagCoding;
}