function result_status = getrawbands(band,JSONString,JSONCurDate,prox_host)

pkg load image
JSONDate = JSONString;
B4URL = JSONCurDate.Band4URI;
SensingDate = JSONCurDate.sensing_date;
bandtag =strcat(band,".jp2");
B3URL = strrep(B4URL,"B04.jp2",bandtag);

%prox_https=strcat("https://",prox_host)

%putenv('https_proxy', prox_https)

B3FileName = strcat("Tile",bandtag)
%pause(5);
try
urlwrite(B3URL,B3FileName);
catch
UID = JSONDate.UID;
result_status = strcat(UID,"failed0")
return
end

%pause(5);
%urlwrite(B3URL,B3FileName);

B3 = imread(B3FileName);
%fff = "file_read"
sizeB4 = size(B3);
format long;
TileMaxLat =JSONCurDate.north_lat
TileMinLat =JSONCurDate.south_lat
TileMaxLong = JSONCurDate.east_lon
TileMinLong =JSONCurDate.west_lon

          
FieldMaxLat = JSONDate.FieldMaxLat
FieldMinLat = JSONDate.FieldMinLat
FieldMaxLong =JSONDate.FieldMaxLong
FieldMinLong =JSONDate.FieldMinLong

UID = JSONDate.UID;

LatsPerPixel = (TileMaxLat - TileMinLat)/sizeB4(1)
LongsPerPixel = (TileMaxLong - TileMinLong)/sizeB4(1)


    PixelsPerLat = abs(sizeB4(1)/(TileMaxLat - TileMinLat));
PixelsPerLong = abs(sizeB4(2)/(TileMaxLong - TileMinLong));

StartPixelLat = PixelsPerLat*(1-abs(FieldMaxLat-TileMinLat));
StartPixelLat = round(abs(StartPixelLat));



EndPixelLat = PixelsPerLat*(1-abs(TileMinLat- FieldMinLat));
EndPixelLat =  round(abs(EndPixelLat));

if StartPixelLat > EndPixelLat
        temp = EndPixelLat;
        EndPixelLat = StartPixelLat;
        StartPixelLat = temp;
end

if StartPixelLat > 100
        StartPixelLat = StartPixelLat - 100;
else
        StartPixelLat = 0;
end

if EndPixelLat <sizeB4(1)-100
        EndPixelLat = EndPixelLat + 100;
else
        EndPixelLat = sizeB4(1);
end

StartPixelLong = PixelsPerLong*(abs(TileMinLong - FieldMinLong));
StartPixelLong = round(abs(StartPixelLong));


EndPixelLong = PixelsPerLong*abs(TileMinLong - FieldMaxLong);
EndPixelLong = round(abs(EndPixelLong));

if StartPixelLong > EndPixelLong
        temp = EndPixelLong;
        EndPixelLong = StartPixelLong;
        StartPixelLong = temp;
end
if StartPixelLong > 100
        StartPixelLong = StartPixelLong - 100;
else
        StartPixelLong = 0;
end
if EndPixelLong < sizeB4(1) - 100
        EndPixelLong = EndPixelLong+100;
else
        EndPixelLong = sizeB4(1);
end


LatLength = EndPixelLat - StartPixelLat
LongLength = EndPixelLong - StartPixelLong

if StartPixelLat > sizeB4(1) | EndPixelLat > sizeB4(1) | StartPixelLong > sizeB4(1) | EndPixelLong > sizeB4(1)
        result_status2 = 'failed due to unbound start end'
        result_status = strcat(UID,"failed0")
else
%urlwrite(B3URL,B3FileName);

%B3 = imread(B3FileName);
	try
        clip = [StartPixelLat EndPixelLat StartPixelLong EndPixelLong];
        
        B3 = B3(clip(1):clip(2),clip(3):clip(4));
	B3 = single(B3);
	catch
	 result_status2 = 'failed due to logical indice error'
        result_status = strcat(UID,"failed0")
	return
	end
if abs(max(max(B3)))<1e-2
        result_status = strcat(UID,"failed1")
                result_status2 = 'Too much black in image'
        
else
	B3 = B3/(max(max(B3)));        
	btag =strcat("_",band);
	btag = strcat(band,".png");
        BFilename = strcat(UID,btag);
	BFilename = strcat(SensingDate,BFilename);
imwrite(B3,BFilename);

result_status  = strcat(UID,"successful");
end

end

end


