function [blocked] = blocked_path(x, y, Station)
z = double(Station.terrain(y,x))+3;
height = Station.cellSite.height+double(Station.terrain(Station.cellSite.BSy,Station.cellSite.BSx));
BSx = double(Station.cellSite.BSx);
BSy = double(Station.cellSite.BSy);
delta_x = double(x-BSx);
delta_y = double(y-BSy);
delta_z = double(z-height);
hor_distance = ((delta_x)^2+(delta_y)^2)^(0.5);
x_incr = delta_x/hor_distance;
y_incr = delta_y/hor_distance;
z_incr = delta_z/hor_distance;
x_curr = BSx;
y_curr = BSy;
blocked_height = height;
while ((int16(x_curr) ~= x) || (int16(y_curr) ~= y))
    x_curr = x_curr + x_incr;
    y_curr = y_curr + y_incr;
    blocked_height = blocked_height + z_incr;
   % [x_incr y_incr z_incr x_curr y_curr blocked_height]
   % [int16(x_curr) int16(y_curr)]
    height_curr = double(Station.terrain(int16(y_curr),int16(x_curr)));
    if(height_curr >= blocked_height)
        blocked = 1;
        return;
    end
end
blocked = 0;