static function fromResponse(array $arr)
 {
     $polygon = Polygon::fromResponse($arr["polygon"]);
     $bbox = Bbox::fromResponse($arr["bbox"]);
     $sourceType = null;
     if (array_key_exists("url", $arr)) {
         $sourceType = "URL";
         $source = $arr["url"];
     } else {
         if (array_key_exists("base64", $arr)) {
             $sourceType = "BASE64";
             $source = $arr["base64"];
         } else {
             //throw new \Exception ("Invalid image response");
             $source = "";
             $sourceType = "BASE64";
         }
     }
     return new Image($source, $sourceType, $polygon, $bbox, $arr["width"], $arr["height"]);
 }