SOLAR CALCULATOR

Embodiments of the present disclosure are directed to a solar calculator which can calculate a layout for a set of solar panels to be installed on a roof of a building. Generally speaking, the solar calculator can receive as input a roof type for the building, system requirements, site information, specifications for mounting hardware to be used, specifications for the solar panels to be used, wind data for the location of the building, etc. From this data, the solar calculator can then calculate the number of solar panels needed, a layout for the panels on the roof, the hardware required to mount the panels, locations for the hardware to be installed, and/or other information. A graphical and/or textual report can then be generated that describes the layout of the solar panels and hardware, a bill of materials for the installation, and other information.

FIELD OF THE DISCLOSURE

Embodiments of the present disclosure relate generally to methods and systems for installing solar panels on the roof of a building and more particularly to calculating a layout for a set of solar panels to be installed on a roof of a building.

BACKGROUND

Installing solar panels onto a roof of a building includes many considerations. For example, arrangement and location of the panels on the roof require considerations of the size and shape of the roof, the roof type, the roof material used, the environmental conditions at the location, etc. Additionally, size, shape, weight, structure, and other physical attributes of the panels vary between different panels and manufacturers. Furthermore, the mountain hardware used varies in physical arrangement and attributes. All of these factors, together with local building codes and requirements must be taken into consideration. Typically, this is a manual process of looking up specifications and codes which can be time consuming and prone to errors. Hence, there is a need for improved methods and systems for calculating a layout for a set of solar panels to be installed on a roof of a building.

BRIEF SUMMARY

Embodiments of the disclosure provide systems and methods for calculating a layout for a set of solar panels to be installed on a roof of a building. According to one embodiment, a method for calculating a layout for a set of solar panels to be installed on a roof of a building can comprise receiving, by a computing system, input parameters defining requirements for the solar panels. The input parameters can comprise, for example, one or more of project information, roof information for the roof of the building, site information for the building, or system requirements for the solar panels. An aerial image of the roof of the building can be obtained and an available area for the solar panels can be determined based on the aerial image. Structural information for the installation of the solar panels can also be obtained from one or more databases and or from a user. The structural information for the installation of the solar panels can comprise one or more of specifications for hardware to mount the solar panels, specifications for the solar panels, or wind data for the building.

A layout for the solar panels, required hardware for mounting the solar panels on the roof of the building, and locations for the required hardware can be calculated based on the received input parameters, the determined available area for the solar panels, and the obtained structural information for the installation of the solar panels. A report providing the calculated layout and mounting hardware requirements can be generated.

Calculating a layout for the solar panels can comprise aligning a mounting location of each solar panel with a seam of the roof of the building. Calculating required hardware for mounting the solar panels on the roof of the building and locations for the required hardware can be further based on a building code for a geographic region of the building. For example, the layout for the solar panels can comprise a gap between two or more adjacent solar panels and, in such cases, calculating the layout for the solar panels can comprise adjusting the gap between the two or more adjacent solar panels to align a mounting location of each solar panel with a seam of the roof of the building. For example, the gap between the two or more adjacent solar panels can comprise a predetermined distance allowing for thermal expansion of the two or more adjacent solar panels.

In some cases, after calculating the layout for the solar panels, required hardware for mounting the solar panels on the roof of the building, and the locations for the required hardware, an update to the calculated layout for the solar panels can be received. In such cases, a determination can be made as to whether the update to the calculated layout for the solar panels matches a determined layout for the solar panels. In response to determining the update to the calculated layout for the solar panels matches the determined layout for the solar panels, the update to the calculated layout for the solar panels can be provided in the generated report. In response to determining the update to the calculated layout for the solar panels does not match the determined layout for the solar panels, the update to the calculated layout for the solar panels can be adjusted and the adjusted update to the calculated layout for the solar panels can be provided in the generated report.

According to another embodiment, a system can comprise a processor and a memory coupled with and readable by the processor. The memory can store therein a set of instructions which, when executed by the processor, causes the processor to calculate a layout for a set of solar panels to be installed on a roof of a building by receiving input parameters defining requirements for the solar panels, obtaining an aerial image of the roof of the building, determining an available area for the solar panels based on the aerial image, and obtaining structural information for the installation of the solar panels. The input parameters can comprise one or more of project information, roof information for the roof of the building, site information for the building, or system requirements for the solar panels. The structural information for the installation of the solar panels can comprise one or more of specifications for hardware to mount the solar panels, specifications for the solar panels, or wind data for the building.

The instructions can further cause the processor to calculate a layout for the solar panels, required hardware for mounting the solar panels on the roof of the building, and locations for the required hardware based on the received input parameters, the determined available area for the solar panels, and the obtained structural information for the installation of the solar panels and generate a report providing the calculated layout and mounting hardware requirements. Calculating a layout for the solar panels can comprise aligning a mounting location of each solar panel with a seam of the roof of the building. Calculating required hardware for mounting the solar panels on the roof of the building and locations for the required hardware can be further based on a building code for a geographic region of the building. For example, the layout for the solar panels can comprise a gap between two or more adjacent solar panels and, in such cases, calculating the layout for the solar panels can comprise adjusting the gap between the two or more adjacent solar panels to align a mounting location of each solar panel with a seam of the roof of the building. For example, the gap between the two or more adjacent solar panels can comprise a predetermined distance allowing for thermal expansion of the two or more adjacent solar panels.

In some cases, after calculating the layout for the solar panels, required hardware for mounting the solar panels on the roof of the building, and the locations for the required hardware, the instructions can cause the processor to receive an update to the calculated layout for the solar panels. In such cases, the instructions can cause the processor to a determination can be made as to whether the update to the calculated layout for the solar panels matches a determined layout for the solar panels. In response to determining the update to the calculated layout for the solar panels matches the determined layout for the solar panels, the instructions can cause the processor to provide the update to the calculated layout for the solar panels in the generated report. In response to determining the update to the calculated layout for the solar panels does not match the determined layout for the solar panels, the instructions can cause the processor to adjust the update to the calculated layout for the solar panels and provide the adjusted update to the calculated layout for the solar panels in the generated report.

According to yet another embodiment, a non-transitory, computer-readable medium can comprise a set of instructions stored therein which, when executed by a processor, causes the processor to calculate a layout for a set of solar panels to be installed on a roof of a building by receiving input parameters defining requirements for the solar panels, obtaining an aerial image of the roof of the building, determining an available area for the solar panels based on the aerial image, and obtaining structural information for the installation of the solar panels. The input parameters can comprise one or more of project information, roof information for the roof of the building, site information for the building, or system requirements for the solar panels. The structural information for the installation of the solar panels can comprise one or more of specifications for hardware to mount the solar panels, specifications for the solar panels, or wind data for the building.

The instructions can further cause the processor to calculate a layout for the solar panels, required hardware for mounting the solar panels on the roof of the building, and locations for the required hardware based on the received input parameters, the determined available area for the solar panels, and the obtained structural information for the installation of the solar panels and generate a report providing the calculated layout and mounting hardware requirements. Calculating a layout for the solar panels can comprise aligning a mounting location of each solar panel with a seam of the roof of the building. Calculating required hardware for mounting the solar panels on the roof of the building and locations for the required hardware can be further based on a building code for a geographic region of the building. For example, the layout for the solar panels can comprise a gap between two or more adjacent solar panels and, in such cases, calculating the layout for the solar panels can comprise adjusting the gap between the two or more adjacent solar panels to align a mounting location of each solar panel with a seam of the roof of the building. For example, the gap between the two or more adjacent solar panels can comprise a predetermined distance allowing for thermal expansion of the two or more adjacent solar panels.

In some cases, after calculating the layout for the solar panels, required hardware for mounting the solar panels on the roof of the building, and the locations for the required hardware, the instructions can cause the processor to receive an update to the calculated layout for the solar panels. In such cases, the instructions can cause the processor to a determination can be made as to whether the update to the calculated layout for the solar panels matches a determined layout for the solar panels. In response to determining the update to the calculated layout for the solar panels matches the determined layout for the solar panels, the instructions can cause the processor to provide the update to the calculated layout for the solar panels in the generated report. In response to determining the update to the calculated layout for the solar panels does not match the determined layout for the solar panels, the instructions can cause the processor to adjust the update to the calculated layout for the solar panels and provide the adjusted update to the calculated layout for the solar panels in the generated report.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of various embodiments disclosed herein. It will be apparent, however, to one skilled in the art that various embodiments of the present disclosure may be practiced without some of these specific details. The ensuing description provides exemplary embodiments only and is not intended to limit the scope or applicability of the disclosure. Furthermore, to avoid unnecessarily obscuring the present disclosure, the preceding description omits a number of known structures and devices. This omission is not to be construed as a limitation of the scopes of the claims. Rather, the ensuing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing an exemplary embodiment. It should however be appreciated that the present disclosure may be practiced in a variety of ways beyond the specific detail set forth herein.

While the exemplary aspects, embodiments, and/or configurations illustrated herein show the various components of the system collocated, certain components of the system can be located remotely, at distant portions of a distributed network, such as a Local-Area Network (LAN) and/or Wide-Area Network (WAN) such as the Internet, or within a dedicated system. Thus, it should be appreciated, that the components of the system can be combined in to one or more devices or collocated on a particular node of a distributed network, such as an analog and/or digital telecommunications network, a packet-switch network, or a circuit-switched network. It will be appreciated from the following description, and for reasons of computational efficiency, that the components of the system can be arranged at any location within a distributed network of components without affecting the operation of the system.

The term “computer-readable medium” as used herein refers to any tangible storage and/or transmission medium that participate in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, Non-Volatile Random-Access Memory (NVRAM), or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a Compact Disk Read-Only Memory (CD-ROM), any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a Random-Access Memory (RAM), a Programmable Read-Only Memory (PROM), and Erasable Programmable Read-Only Memory (EPROM), a Flash-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. A digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the disclosure is considered to include a tangible storage medium or distribution medium and prior art-recognized equivalents and successor media, in which the software implementations of the present disclosure are stored.

Various additional details of embodiments of the present disclosure will be described below with reference to the figures. While the flowcharts will be discussed and illustrated in relation to a particular sequence of events, it should be appreciated that changes, additions, and omissions to this sequence can occur without materially affecting the operation of the disclosed embodiments, configuration, and aspects.

Embodiments of the present disclosure are directed to a solar calculator which can calculate a layout for a set of solar panels to be installed on a roof of a building. Generally speaking, the solar calculator as described herein can receive as input a roof type for the building, system requirements, site information, and other parameters. The solar calculator can also receive from a user and/or look up in one or more databases additional information including, but not limited to, specifications for mounting hardware to be used, specifications for the solar panels to be used, wind data for the location of the building, etc. From this data, the solar calculator can then calculate the number of solar panels needed, a layout for the panels on the roof, the hardware required to mount the panels, locations for the hardware to be installed, and/or other information. In doing so, the solar calculator can position the solar panels and the mounting hardware on the roof so that the panels and mounting hardware align with seams on the roof so that the hardware can be clamped to the seams of the roof without a need to drill into the roof. According to another embodiment, such as in the case of an exposed fastener roof, the solar calculator can position the panels and hardware to align with the ribs or corrugations of the roof for mounting thereon. A graphical and/or textual report can then be generated and presented on a display device and/or printed. The report can present and describe the layout of the solar panels and hardware, a bill of materials for the installation, and other information.

FIG. 1is a diagram illustrating an exemplary building outline of a subject building for various embodiments of the present disclosure. More specifically, this example illustrates an aerial image of a building100upon which solar panels are to be placed. Such an image can be obtained, for example, by a drone, aircraft, satellite or other platform. According to one embodiment, the solar calculator can obtain such an image from an online service providing such images such as Goggle Maps or Google Earth, for example.

Also as illustrated here, the roof105of the building100can comprise a set of parallel ribs110extending between the peak115of the roof105and the opposite edge120of the roof105. These ribs110may be seams between two metal roof panels. According to one embodiment, these seams can be used to mount the solar panels without drilling holes into the roof. More specifically, fasteners comprising clamps adapted to engage and grip the seams can be installed onto the seams at various locations and solar panels can be mounted onto the fasteners. According to another embodiment, such as in the case of an exposed fastener roof, the solar calculator can position the panels and hardware to align with the ribs110or corrugations of the roof105for mounting thereon. As will be described, the solar calculator can determine the number and location of these fasteners.

Once the image of the roof105of the building100has been obtained, the solar calculator can identify the edges or outline125of the roof105. This outline125can comprise the area available for placement of the solar panels. Accordingly, the solar calculator can calculate the total available area, i.e., within the outline125of the roof105, which, along with other information, can be used to determine the layout for the solar panels. This additional information can include, but is not limited to, roof panel size, i.e., spacing between the seams, type of fasteners to be used to mount the solar panels, requirements for spacing between the solar panels, etc. Such information can be obtained, for example, from a user of the solar calculator and/or from one or more databases maintaining manufacturers information for the type of roof panels installed on the building and/or the type of solar panels which will be used. Based on such information, the solar calculator can position the solar panels and the mounting hardware on the roof105so that the panels and mounting hardware align with seams on the roof so that the hardware can be clamped to the seams of the roof without a need to drill into the roof. According to another embodiment, such as in the case of an exposed fastener roof, the solar calculator can position the panels and hardware to align with the ribs110or corrugations of the roof105for mounting thereon.

FIG. 2is a diagram illustrating exemplary wind zones for an exemplary subject building for various embodiments of the present disclosure. According to one embodiment, the solar calculator can also consider dynamic forces such as wind loads on the installed solar panels when determining the number and locations of the fasteners. The overall area of the roof105can be divided into a number of zones205and210having different levels of wind exposure. For example, the corners of the roof can be considered one zone205having the highest level of exposure since wind from different directions can affect the panels in these areas. Another zone210, i.e., the edges of the roof between the corner zones205, can be considered zones with the next highest loads since these areas are directly exposed to wind but from fewer directions. The middle of the roof between the edge zones210can be considered yet another zone215which is relatively protected and with little or no loading from wind. In some cases, another zone (not shown here) can be considered to be where two or more other zones205,210, and/or215meet or cross over since wind loads in these areas may occur from multiple directions and may therefore be increased. Each of these different zones205,210, and/or215can be handled individually by the solar calculator in determining mounting requirements and layout.

Accordingly, the solar calculator can be adapted to collect wind data for the location of the building as well as other parameters for the location including, but not limited to, wind exposure level, slope of roof, height of the building, risk category, e.g., is the building classified as a critical structure, regulations regarding wind uplift force that structures must be able to withstand, etc. Again, such information can be obtained from a user or from one or more publicly available and/or proprietary databases. The solar calculator can also look up specifications for hardware selected for mounting the solar panels. Once such information has been obtained, the solar calculator can calculate uplift force for each of the various zones of the roof and determine a number of clamps needed per solar panel as well as a spacing between the clamps.

The solar calculator can be implemented as software executing on one or more computing devices. For example, the solar calculator can comprise an application executing on a stand-alone computing device such as a personal computer or a laptop computer. In other cases, the solar calculator may be executed on a server and provided online as software-as-a-service. The one or more databases of various information such as described above can also be maintained locally by a system executing the solar calculator and/or remotely on one or more servers or other systems. Any such variations in implementation are considered to be within the scope of the present disclosure.

FIG. 3is a block diagram illustrating elements of an exemplary computing environment in which embodiments of the present disclosure may be implemented. More specifically, this example illustrates a computing environment300that may function as the servers, user computers, or other systems provided and described herein. The environment300includes one or more user computers, or computing devices, such as a computing device304, a communication device308, and/or more312. The computing devices304,308,312may include general purpose personal computers (including, merely by way of example, personal computers, and/or laptop computers running various versions of Microsoft Corp.'s Windows® and/or Apple Corp.'s Macintosh® operating systems) and/or workstation computers running any of a variety of commercially-available UNIX® or UNIX-like operating systems. These computing devices304,308,312may also have any of a variety of applications, including for example, database client and/or server applications, and web browser applications. Alternatively, the computing devices304,308,312may be any other electronic device, such as a thin-client computer, Internet-enabled mobile telephone, and/or personal digital assistant, capable of communicating via a network310and/or displaying and navigating web pages or other types of electronic documents. Although the exemplary computer environment300is shown with two computing devices, any number of user computers or computing devices may be supported.

The system may also include one or more servers314,316. In this example, server314is shown as a web server and server316is shown as an application server. The web server314, which may be used to process requests for web pages or other electronic documents from computing devices304,308,312. The web server314can be running an operating system including any of those discussed above, as well as any commercially-available server operating systems. The web server314can also run a variety of server applications, including SIP servers, HyperText Transfer Protocol (secure) (HTTP(s)) servers, FTP servers, CGI servers, database servers, Java servers, and the like. In some instances, the web server314may publish operations available operations as one or more web services.

The environment300may also include one or more file and or/application servers316, which can, in addition to an operating system, include one or more applications accessible by a client running on one or more of the computing devices304,308,312. The server(s)316and/or314may be one or more general purpose computers capable of executing programs or scripts in response to the computing devices304,308,312. As one example, the server316,314may execute one or more web applications. The web application may be implemented as one or more scripts or programs written in any programming language, such as Java™, C, C#®, or C++, and/or any scripting language, such as Perl, Python, or Tool Command Language (TCL), as well as combinations of any programming/scripting languages. The application server(s)316may also include database servers, including without limitation those commercially available from Oracle®, Microsoft®, Sybase®, IBM® and the like, which can process requests from database clients running on a computing device304,308,312.

The web pages created by the server314and/or316may be forwarded to a computing device304,308,312via a web (file) server314,316. Similarly, the web server314may be able to receive web page requests, web services invocations, and/or input data from a computing device304,308,312(e.g., a user computer, etc.) and can forward the web page requests and/or input data to the web (application) server316. In further embodiments, the server316may function as a file server. Although for ease of description,FIG. 3illustrates a separate web server314and file/application server316, those skilled in the art will recognize that the functions described with respect to servers314,316may be performed by a single server and/or a plurality of specialized servers, depending on implementation-specific needs and parameters. The computer systems304,308,312, web (file) server314and/or web (application) server316may function as the system, devices, or components described herein.

The environment300may also include a database318. The database318may reside in a variety of locations. By way of example, database318may reside on a storage medium local to (and/or resident in) one or more of the computers304,308,312,314,316. Alternatively, it may be remote from any or all of the computers304,308,312,314,316, and in communication (e.g., via the network310) with one or more of these. The database318may reside in a Storage-Area Network (SAN) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers304,308,312,314,316may be stored locally on the respective computer and/or remotely, as appropriate. The database318may be a relational database, such as Oracle 20i®, that is adapted to store, update, and retrieve data in response to Structured Query Language (SQL) formatted commands.

FIG. 4is a block diagram illustrating elements of an exemplary computing device in which embodiments of the present disclosure may be implemented. More specifically, this example illustrates one embodiment of a computer system400upon which the servers, user computers, computing devices, or other systems or components described above may be deployed or executed. The computer system400is shown comprising hardware elements that may be electrically coupled via a bus404. The hardware elements may include one or more Central Processing Units (CPUs)408; one or more input devices412(e.g., a mouse, a keyboard, etc.); and one or more output devices416(e.g., a display device, a printer, etc.). The computer system400may also include one or more storage devices420. By way of example, storage device(s)420may be disk drives, optical storage devices, solid-state storage devices such as a Random-Access Memory (RAM) and/or a Read-Only Memory (ROM), which can be programmable, flash-updateable and/or the like.

The computer system400may additionally include a computer-readable storage media reader424; a communications system428(e.g., a modem, a network card (wireless or wired), an infra-red communication device, etc.); and working memory436, which may include RAM and ROM devices as described above. The computer system400may also include a processing acceleration unit432, which can include a Digital Signal Processor (DSP), a special-purpose processor, and/or the like.

The computer-readable storage media reader424can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s)420) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. The communications system428may permit data to be exchanged with a network and/or any other computer described above with respect to the computer environments described herein. Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including ROM, RAM, magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine-readable mediums for storing information.

The computer system400may also comprise software elements, shown as being currently located within a working memory436, including an operating system440and/or other code444. It should be appreciated that alternate embodiments of a computer system400may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed.

Regardless of whether the solar calculator is executed by a stand-alone computing device, is provided by a server, e.g., as a web service, or some combination thereof, the solar calculator can provide a number of user interfaces through which a user can interact with the solar calculator. For example, one user interface may be provided through which the user can enter basic information about a project to be used by the solar calculator. Additionally, or alternatively, a user interface may be provided by the solar calculator through which the user can enter more specific information about the building's roof. In some cases, one or more interfaces may be provided through which the solar calculator may present a report or other output of results. For example, the solar calculator may output an engineering layout which shows the arrangement of solar panels on the roof and mounting points for the roof seams and each solar panel.

FIG. 5is a screenshot of an exemplary site information input screen according to one embodiment of the present disclosure. As illustrated in this example, the interface can include an aerial image of the building and possibly a surrounding area. Additionally, or alternatively, the interface can include a number of elements such as text boxes, combo boxes, etc. through which the user can enter information including, but not limited to, the project address, a project name, maximum wind speed and exposure information, seismic and/or soil data, and possibly other information.

More specifically, and as illustrated in this example, the interface500can include text505presenting an address for a project and text510presenting a name for the project. The interface500can further comprise a combo-box515through which a user can select an engineering standard to be applied, a textbox520through which the user can enter a maximum wind speed the roof is expected to withstand, a combo-box525through which the user can select an exposure category for the roof, and/or a textbox through which the user can enter seismic data for the geographic area of the building. Additionally, or alternatively, the interface500can include a combo-box535through which the user can select a risk category for the building, a textbox540through which the user can enter a maximum snow load the building is expected to encounter, a combo-box545through which the user can select an exposure factor for the roof of the building, and a combo-box550through which the user can select a soil site class for the building. Finally, the interface500can include a button555or other control for submitting or confirming the selections.

FIG. 6is a screenshot of an exemplary roof type input screen according to one embodiment of the present disclosure. As illustrated in this example, the interface can include a number of elements such as text boxes, combo boxes, etc. through which the user can enter various information related to the roof of the building onto which the solar panels will be installed. This information can include, but is not limited to, a roof type, a roof manufacturer, a product used on the roof, roof seam spacing, a type of fastener (or “clamp”) to be used to mount the solar panels, a roof material used, various parameters related to the load of the solar panels, etc.

More specifically, and as illustrated in this example, the interface600can include a combo-box605through which the user can select a roof type for the building, a combo-box610through which the user can select a roof manufacturer for the building, a combo-box615through which the user can select a product or panel used on the roof of the building, a combo-box620through which the user can select a roof seam spacing for the roof, a combo-box625through which the user can select a type of clamp to be used to mount the solar panels to the roof, and a combo-box630through which the user can select a roof material installed on the building. Additionally, or alternatively, the interface may include one or more textboxes640,645, and650through which the user may enter a loading factor in one or more axis relative to the roof surface. The interface600can additionally, or alternatively, include a number of textboxes or fields presenting specifications for the installation. For example, the interface can include a text field655presenting a parallel load value, a text field660presenting a normal load value, a text field665presenting a seam height for the roof, and text field670presenting a torque value for the clamp screw. In some cases, the interface may also include an image675of the clamp selected. Finally, the interface600can include a button680or other control for submitting or confirming the selections.

It should be understood that the exemplary user interfaces500and600described above are offered by way of example only and are not intended to limit the scope of the present disclosure. Rather, the actual interfaces presented by embodiments of the present disclosure can vary greatly depending upon the exact implementation. For example, different interfaces may include more, fewer, and/or different elements in different formats and arrangements. Any such variations are considered to be within the scope of the present disclosure.

As described above, the solar calculator can use such information as described above to calculate a layout for the solar panel installation that can include not only the location and spacing of the panels but also the number of fasteners used and the spacing and/or location of those fasteners. Such results can be presented, for example, in the form of one or more reports. The reports can include, but are not limited to, one or more graphical representations of the arrangement of the solar panels on the roof of the building, a project summary, an overview of the solar panel system used, a summary of design criteria used, details of the roof itself, and/or a bill of materials for the mounting hardware and type of fastener used. Such reports can be provided in the form of a printed paper report, as an electronic file, or in the form of a user interface such as a web page.

FIGS. 7A-7Cillustrate examples of reports which can be generated by embodiments of the present disclosure. More specifically, and as illustrated inFIG. 7A, the report can include an image705of the building, a project summary section710providing a project name, an address or location for the project, a system overview section715providing details of system size, solar panel manufacturer, mounting product name, solar panel model number, annual output for the array, and number of panels, a design criteria section720providing wind exposure, seismic, wind speed, soil site class, ground snow load, ASCE 7 version, topographical factors, and risk category data, a roof details section725providing various details about the roof of the building, and a bill of materials section730providing a list of mounting hardware. As shown inFIG. 7B, the report can additionally, or alternatively, include an image735of the building showing the location and arrangement of the solar panel array740on the roof105of the building100. Additionally, or alternatively, as shown inFIG. 7C, the report can include a representation of the solar array740showing each solar panel745and can further include an array specification section750providing various specification details for the array and a bill of materials section755for the array.

It should be understood that the exemplary report described above is offered by way of example only and are not intended to limit the scope of the present disclosure. Rather, the actual report generated by embodiments of the present disclosure can vary greatly depending upon the exact implementation. For example, different reports may include more, fewer, and/or different elements in different formats and arrangements. Any such variations are considered to be within the scope of the present disclosure.

FIG. 8is a flowchart illustrating an exemplary process for calculating a solar panel installation layout according to one embodiment of the present disclosure. As illustrated in this example, calculating a layout for a set of solar panels to be installed on a roof of a building can comprise receiving805input parameters defining requirements for the solar panels. The input parameters can comprise, for example, one or more of project information, roof information for the roof of the building, a three-dimensional model or rendering of the roof of the building, site information for the building, and/or system requirements for the solar panels. These parameters can be received805via a user interface such as described above, for example.

An aerial image of the roof of the building can be obtained810and an available area for the solar panels can be determined815based on the aerial image. Such an image can be obtained810, for example, by a drone, aircraft, satellite or other platform. According to one embodiment, the image can be obtained810from an online service providing such images such as Goggle Maps or Google Earth, for example. Determining815the available area for the solar panels can comprise, for example, using available machine vision software to identify edges of the roof from the aerial image as well as obstacles or obstructions on the roof such as chimneys, Heating Ventilation And Cooling (HVAC) units, etc. In other cases, the image can be presented on a graphical user interface and the available area can be determined based on user input through the interface, e.g., by the user drawing or tracing an outline of the area.

Structural information for the installation of the solar panels can also be obtained820. The structural information for the installation of the solar panels can comprise one or more of specifications for hardware to mount the solar panels, specifications for the solar panels, a three-dimensional model or rendering of the solar panels, and/or wind data for the building. Such information can be obtained820from a user, e.g., through an interface such as described above, or from one or more publicly available and/or proprietary databases.

A layout for the solar panels, required hardware for mounting the solar panels on the roof of the building, and locations for the required hardware can be calculated825based on the received input parameters, the determined available area for the solar panels, and the obtained structural information for the installation of the solar panels. Generally speaking, calculating825the layout of the solar panels can comprise positioning the solar panels and the mounting hardware on the roof so that the panels and mounting hardware align with seams, ribs, or corrugations on the roof so that the hardware can be clamped to the seams of the roof without a need to drill into the roof. Additional details of an exemplary process for calculating825a layout for the solar panels will be described below.

A report providing the calculated layout and mounting hardware requirements can be generated830. The report can comprise a graphical and/or textual representation of the results presented on a display device and/or printed. The report can present and describe the layout of the solar panels and hardware, a bill of materials for the installation, and other information.

FIG. 9is a flowchart illustrating additional details of an exemplary process for calculating a solar panel installation layout according to one embodiment of the present disclosure. As illustrated in this example, calculating a layout for the solar panels can comprise aligning905a mounting location of each solar panel with a seam of the roof of the building. Aligning905the mounting location of each solar panel with seams of the roof of the building can be accomplished, for example, by the solar calculator application manipulating a three-dimensional model or rendering of the solar panels and roof. In some cases, the layout for the solar panels can comprise a gap between two or more adjacent solar panels. For example, the gap between the two or more adjacent solar panels can comprise a predetermined distance allowing for thermal expansion of the two or more adjacent solar panels. In such cases, aligning905the mounting location of each solar panel with seams of the roof of the building can comprise adjusting the gap between the two or more adjacent solar panels to align a mounting location of each solar panel with a seam of the roof of the building.

Required hardware for mounting the solar panels on the roof of the building and locations for the required hardware can be calculated910. Calculating910the required hardware can be based on a building code for a geographic region of the building, loads and forces the panels may be subject to, e.g., wind loads, snow loads, etc., and specifications for the hardware. For example, building codes and/or requirements such as the American Society of Civil Engineers (ASCE) standards or an equivalent for the geographic location of the building can be referenced. Such a standard can provide tables defining the requirements for the geographic location and a tabular calculation can be performed on this table to identify the hardware requirements and the hardware can then be selected according to the hardware specifications. Locations for the hardware can be determined, for example, based on a two-dimensional drawing, a three-dimensional model or image of the panel, etc.

In some cases, after calculating the layout for the solar panels, required hardware for mounting the solar panels on the roof of the building, and the locations for the required hardware, an update to the calculated layout for the solar panels may be received. For example, a user may make an adjustment, i.e., move some of the panels, in a rendering of the layout presented in a graphical user interface. In such cases, a determination915can be made as to whether such an update has been received. In response to determining915there has not been such an update, the calculated layout for the solar panels can be provided935in the generated report.

In response to determining915there has been such an update, the updated layout can be checked920by generating a determined layout similar to the updated layout, i.e., by again aligning905the panels and calculating910hardware requirements for the updated layout. A determination925can then be made as to whether the update to the calculated layout for the solar panels is acceptable, i.e., whether the update to the calculated layout for the solar panels matches the determined layout for the solar panels. In response to determining925the update to the calculated layout for the solar panels matches the determined layout for the solar panels, the update to the calculated layout for the solar panels can be provided935in the generated report. In response to determining935the update to the calculated layout for the solar panels does not match the determined layout for the solar panels, the update to the calculated layout for the solar panels can be adjusted930, e.g., to match the determined layout, and the adjusted update to the calculated layout for the solar panels can be provided935in the generated report.