A system, comprising: one or more computer processors (23, 24, 27); and one or more non-transitory computer readable medium (25, 26, 29) storing computer executable code, characterized in that the computer-executable code causes the one or more computer processors (23, 24, 27) to: receive a flight path for an unmanned aircraft in relation to a roof of a structure, the roof havinga plurality of sections, the flight path having waypoints for capturing one or more images of the roof based on a three-dimensional model of the roof including a pitch and direction of slope for each section of the roof, wherein two or more waypoints are within a predetermined range of image-capture distances from the roof, wherein the flight path is determined based at least in part on the pitch of the roof and on maintaining a consistent image-capture distance between the roof of the structure and the unmanned aircraft at the two or more waypoints; receive a first sensor reading from one or more sensors on the unmanned aircraft indicative of a first distance between the unmanned aircraft and the roof of the structure; determine a current image-capture distance from the roof along a line of sight to a camera on the unmanned aircraft, based on the first distance and the pitch of the roof; adjust location of the unmanned aircraft based on the current image-capture distance and the pitch of the roof to maintain the camera within the predetermined range of image-capture distances at the waypoints of the flight path; and capture images of the roof of the structure with the camera on the unmanned aircraft at the waypoints of the flight path. one or more computer processors (23, 24, 27); and one or more non-transitory computer readable medium (25, 26, 29) storing computer executable code, characterized in that the computer-executable code causes the one or more computer processors (23, 24, 27) to: receive a flight path for an unmanned aircraft in relation to a roof of a structure, the roof havinga plurality of sections, the flight path having waypoints for capturing one or more images of the roof based on a three-dimensional model of the roof including a pitch and direction of slope for each section of the roof, wherein two or more waypoints are within a predetermined range of image-capture distances from the roof, wherein the flight path is determined based at least in part on the pitch of the roof and on maintaining a consistent image-capture distance between the roof of the structure and the unmanned aircraft at the two or more waypoints; receive a first sensor reading from one or more sensors on the unmanned aircraft indicative of a first distance between the unmanned aircraft and the roof of the structure; determine a current image-capture distance from the roof along a line of sight to a camera on the unmanned aircraft, based on the first distance and the pitch of the roof; adjust location of the unmanned aircraft based on the current image-capture distance and the pitch of the roof to maintain the camera within the predetermined range of image-capture distances at the waypoints of the flight path; and capture images of the roof of the structure with the camera on the unmanned aircraft at the waypoints of the flight path. receive a flight path for an unmanned aircraft in relation to a roof of a structure, the roof havinga plurality of sections, the flight path having waypoints for capturing one or more images of the roof based on a three-dimensional model of the roof including a pitch and direction of slope for each section of the roof, wherein two or more waypoints are within a predetermined range of image-capture distances from the roof, wherein the flight path is determined based at least in part on the pitch of the roof and on maintaining a consistent image-capture distance between the roof of the structure and the unmanned aircraft at the two or more waypoints; receive a first sensor reading from one or more sensors on the unmanned aircraft indicative of a first distance between the unmanned aircraft and the roof of the structure; determine a current image-capture distance from the roof along a line of sight to a camera on the unmanned aircraft, based on the first distance and the pitch of the roof; adjust location of the unmanned aircraft based on the current image-capture distance and the pitch of the roof to maintain the camera within the predetermined range of image-capture distances at the waypoints of the flight path; and capture images of the roof of the structure with the camera on the unmanned aircraft at the waypoints of the flight path.