Title of Invention: METHODS AND SYSTEMS FOR DESIGNING PHOTOVOLTAIC SYSTEMS Abstract: A method for designing a photovoltaic (PV) system is implemented by a design automation computer system. The method includes receiving a set of site data, receiving a system type selection, receiving a plurality of system component selections, receiving a plurality of PV layout preferences, determining a PV module layout by iteratively applying a first layout algorithm to the set of site data and the plurality of PV layout preferences, the PV module layout defining a placement of a plurality of PV modules of a PV system, determining a structural layout, an electrical design, and an electrical layout based on the PV module layout, determining a bill of materials based on the PV module layout, the structural layout, and the electrical layout, and designing the PV system using the structural layout, the electrical design, the electrical layout, the PV module layout, and the bill of materials. Detailed Description: FIELD The field of the disclosure relates generally to the design of photovoltaic systems. More particularly, this disclosure relates to methods and systems to facilitate the automated design of photovoltaic systems. BACKGROUND Designing and optimizing photovoltaic (PV) systems may be a complex and time-consuming process. Effective design incorporates a variety of data including location specific data, system type data, PV module data, design data, and layout data. Collecting such data may be a complex task. Further, a variety of calculations and modeling tools must be used to effectively design and optimize such systems. Systems and methods for simplifying such design and automation may be desirable. This Background section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art. BRIEF SUMMARY In one aspect, a method for designing a photovoltaic (PV) system is provided. The method is implemented by a design automation computer system in communication with a memory. The method includes receiving a set of site data, wherein the site data includes a set of location identifiers. The method also includes receiving a system type selection, receiving a plurality of system component selections, and receiving a plurality of PV layout preferences. The method further includes determining, at the design automation computer system, a PV module layout by iteratively applying a first layout algorithm to the set of site data and the plurality of PV layout preferences, the PV module layout defining a placement of a plurality of PV modules of a PV system. The method additionally includes determining a structural layout, an electrical design, and an electrical layout based on the PV module layout, determining a bill of materials based on the PV module layout, the structural layout, and the electrical layout, and defining a PV system model using the structural layout, the electrical design, the electrical layout, the PV module layout, and the bill of materials. In another aspect, a design automation computer system for designing a photovoltaic (PV) system is provided. The design automation computer system includes a processor and a memory coupled to the processor. The design automation computer system is configured to receive a set of site data, wherein the site data includes a set of location identifiers, receive a system type selection, receive a plurality of system component selections, receive a plurality of PV layout preferences, determine a PV module layout by iteratively applying a first layout algorithm to the set of site data and the plurality of PV layout preferences, the PV module layout defining a placement of a plurality of PV modules of a PV system, determine a structural layout, an electrical design, and an electrical layout based on the PV module layout, determine a bill of materials based on the PV module layout, the structural layout, and the electrical layout, and define a PV system model using the structural layout, the electrical design, the electrical layout, the PV module layout, and the bill of materials. Another aspect of the present disclosure is a computer-readable storage media for designing a photovoltaic (PV) system, the computer-readable storage media having non-transitory, computer-executable instructions embodied thereon. When executed by a design automation computer system comprising a processor and a memory coupled to the processor, the computer-executable instructions cause the design automation computer system to receive a set of site data, wherein the site data includes a set of location identifiers, receive a system type selection, receive a plurality of system component selections, receive a plurality of PV layout preferences, determine a PV module layout by iteratively applying a first layout algorithm to the set of site data and the plurality of PV layout preferences, the PV module layout defining a placement of a plurality of PV modules of a PV system, determine a structural layout, an electrical design, and an electrical layout based on the PV module layout, determine a bill of materials based on the PV module layout, the structural layout, and the electrical layout, and define a PV system model using the structural layout, the electrical design, the electrical layout, the PV module layout, and the bill of materials. A further aspect of the present disclosure is a computer-implemented method for constructing a photovoltaic (PV) system. The method is implemented by a design automation computer system including a processor and a memory coupled to the processor. The method includes receiving a set of site data, wherein the site data includes a set of location identifiers, receiving a system type selection, receiving a plurality of system component selections, receiving a plurality of PV layout preferences, determining, at the design automation computer system, a PV module layout by iteratively applying a first layout algorithm to the set of site data and the plurality of PV layout preferences, the PV module layout defining a placement of a plurality of PV modules of a PV system, determining a structural layout, an electrical design, and an electrical layout based on the PV module layout, determining a bill of materials based on the PV module layout, the structural layout, and the electrical layout, creating a plurality of PV system options using the structural layout, the electrical design, the electrical layout, the PV module layout, and the bill of materials, providing the plurality of PV system options to a user device, receiving a PV system selection corresponding to one of the plurality of PV system options, and constructing the PV system based on the PV system selection. An additional aspect of the present disclosure is a computer-implemented method for determining boundary offsets in a photovoltaic (PV) system based on shadow simulations. The method is implemented by a design automation computer system in communication with a memory. The method includes identifying a set of obstructions wherein the set of obstructions includes a set of obstruction elevations and a set of obstruction offsets, simulating a set of shadow effects using a first coarse shadow algorithm based on the set of obstructions, refining the set of shadow effects using a second fine shadow algorithm based on the set of obstructions and the set of shadow effects, and defining a plurality of boundary of boundary offsets based on the refined set of shadow effects. A further aspect of the present disclosure is a design automation computer system for determining boundary offsets in a photovoltaic (PV) system based on shadow simulations. The design automation computer system includes a processor and a memory coupled to the processor. The design automation computer system is configured to identify a set of obstructions wherein the set of obstructions includes a set of obstruction elevations and a set of obstruction offsets, simulate a set of shadow effects using a first coarse shadow algorithm based on the set of obstructions, refine the set of shadow effects using a second fine shadow algorithm based on the set of obstructions and the set of shadow effects, and define a plurality of boundary of boundary offsets based on the refined set of shadow effects. Yet another aspect of the present disclosure is a computer-readable storage media for determining boundary offsets in a photovoltaic (PV) system based on shadow simulations. The computer-readable storage media has non-transitory, computer-executable instructions embodied thereon. When executed by a design automation computer system comprising a processor and a memory coupled to the processor, the computer-executable instructions cause the design automation computer system to identify a set of obstructions wherein the set of obstructions includes a set of obstruction elevations and a set of obstruction offsets, simulate a set of shadow effects using a first coarse shadow algorithm based on the set of obstructions, refine the set of shadow effects using a second fine shadow algorithm based on the set of obstructions and the set of shadow effects, and define a plurality of boundary of boundary offsets based on the refined set of shadow effects. A further aspect of the present disclosure is a computer-implemented method for determining a system layout of a photovoltaic (PV) system. The method is implemented by a design automation computer system in communication with a memory. The method includes receiving a first selection of a system table, receiving a layout mode designation, identifying a system orientation, identifying a system spacing, receiving a layout detail designation, and applying a layout algorithm based on the first selection of a system table, the layout mode designation, the layout mode designation, the system orientation, the system spacing and the layout detail designation. A further aspect of the present disclosure is a design automation computer system for determining a system layout of a photovoltaic (PV) system. The design automation computer system includes a processor and a memory coupled to the processor. The design automation computer system is configured to receive a first selection of a system table, receive a layout mode designation, identify a system orientation, identify a system spacing, receive a layout detail designation, and apply a layout algorithm based on the first selection of a system table, the layout mode designation, the layout mode designation, the system orientation, the system spacing and the layout detail designation. Yet another aspect of the present disclosure is a computer-readable storage media for determining a system layout of a photovoltaic (PV) system. The computer-readable storage media has non-transitory, computer-executable instructions embodied thereon. When executed by a design automation computer system comprising a processor and a memory coupled to the processor, the computer-executable instructions cause the design automation computer system to receive a first selection of a system table, receive a layout mode designation, identify a system orientation, identify a system spacing, receive a layout detail designation, and apply a layout algorithm based on the first selection of a system table, the layout mode designation, the layout mode designation, the system orientation, the system spacing and the layout detail designation. Various refinements exist of the features noted in relation to the above-mentioned aspects. Further features may also be incorporated in the above-mentioned aspects as well. These refinements and additional features may exist individually or in any combination. For instance, various features discussed below in relation to any of the illustrated embodiments may be incorporated into any of the above-described aspects, alone or in any combination. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a perspective view of an example photovoltaic (PV) module; FIG. 2 is a cross-sectional view of the PV module shown in FIG. 1 taken along the line A-A; FIG. 3 is a block diagram of an example computing device; FIG. 4 is a block diagram of an example PV system; FIG. 5 is a flow diagram of an example method of designing a photovoltaic (PV) system implemented by the design automation computer system of FIG. 3; and FIGS. 6-19 are detailed flow diagrams illustrating steps performed by the design automation computer system of FIG. 3 to design a PV system. Like reference symbols in the various drawings indicate like elements. DETAILED DESCRIPTION Computer systems, such as design automation computer systems, may include a processor and a memory. However, any processor in a computer device referred to herein may also refer to one or more processors wherein the processor may be in one computing device or a plurality of computing devices acting in parallel. Additionally, any memory in a computer device referred to may also refer to one or more memories, wherein the memories may be in one computing device or a plurality of computing devices acting in parallel. As used herein, a processor may include any programmable system including systems using micro-controllers, reduced instruction set circuits (RISC), application specific integrated circuits (ASICs), logic circuits, and any other circuit or processor capable of executing the functions described herein. The above examples are example only, and are thus not intended to limit in any way the definition and/or meaning of the term “processor.” The term “database” may refer to either a body of data, a relational database management system (RDBMS), or to both. A database may include any collection of data including hierarchical databases, relational databases, flat file databases, object-relational databases, object oriented databases, and any other structured collection of records or data that is stored in a computer system. The above are only examples, and thus are not intended to limit in any way the definition and/or meaning of the term database. Examples of RDBMS's include, but are not limited to including, Oracle® Database, MySQL, IBM® DB2, Microsoft® SQL Server, Sybase®, and PostgreSQL. However, any database may be used that enables the systems and methods described herein. (Oracle is a registered trademark of Oracle Corporation, Redwood Shores, Calif.; IBM is a registered trademark of International Business Machines Corporation, Armonk, N.Y.; Microsoft is a registered trademark of Microsoft Corporation, Redmond, Wash.; and Sybase is a registered trademark of Sybase, Dublin, Calif.) In one embodiment, a computer program is provided, and the program is embodied on a computer readable medium. In an example embodiment, the system is executed on a single computer system, without requiring a connection to a server computer. In a further embodiment, the system is run in a Windows® environment (Windows is a registered trademark of Microsoft Corporation, Redmond, Wash.). In yet another embodiment, the system is run on a mainframe environment and a UNIX® server environment (UNIX is a registered trademark of X/Open Company Limited located in Reading, Berkshire, United Kingdom). The application is flexible and designed to run in various different environments without compromising any major functionality. In some embodiments, the system includes multiple components distributed among a plurality of computing devices. One or more components may be in the form of computer-executable instructions embodied in a computer-readable medium. As used herein, an element or step recited in the singular and proceeded with the word “a” or “an” should be understood as not excluding plural elements or steps, unless such exclusion is explicitly recited. Furthermore, references to “example embodiment” or “one embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. As used herein, the terms “software” and “firmware” are interchangeable, and include any computer program stored in memory for execution by a processor, including RAM memory, ROM memory, EPROM memory, EEPROM memory, and non-volatile RAM (NVRAM) memory. The above memory types are example only, and are thus not limiting as to the types of memory usable for storage of a computer program. As used herein, “geographic site” refers to the location in which a designed PV system may be located. As discussed herein, the entirety of the geographic site may not be used because of, for example, obstructions, boundary offsets, shadow setbacks, and partitioning of the geographic site into sub-sites. The embodiments described generally relate to automated design of photovoltaic (“PV”) systems. More particularly, the embodiments described relate to methods and systems for facilitating automated analysis and simulations to design PV systems. The methods described herein are implemented by a design automation computer system. The methods described herein include (i) receiving a set of site data, wherein the site data includes a set of location identifiers, (ii) receiving a system type selection, (iii) receiving a plurality of system component selections, (iv) receiving a plurality of PV layout preferences, (v) determining, at the design automation computer system, a PV module layout by iteratively applying a first layout algorithm to the set of site data and the plurality of PV layout preferences, the PV module layout defining a placement of a plurality of PV modules of a PV system, (vi) determining a structural layout, an electrical design, and an electrical layout based on the PV module layout, (vii) determining a bill of materials based on the PV module layout, the structural layout, and the electrical layout, and (viii) designing the PV system using the structural layout, the electrical design, the electrical layout, the PV module layout, and the bill of materials. As used herein, the structural layout, the electrical design, the electrical layout, the PV module layout, and the bill of materials may all be referred to as creating a general system layout or a “PV system model.” The PV system model substantially defines a representation of the designed PV system. Designing photovoltaic (PV) systems is a complex process. A variety of disparate data sets must be brought together and analyzed. Further, a variety of distinct decisions must be made in PV system design including, for example, geographic site selection, system component selection, and layout preference selection. Each decision may cascade and affect the available options for other decisions. Ultimately, designers of PV systems additionally consider the logistical and economic prospects of designed systems. Due to such voluminous data and numerous choices, effectively identifying preferable PV system designs is a significant challenge. Accordingly, the design automation computer system described herein is configured to facilitate the design of PV systems. In the example embodiment, the design automation computer system is in communication with external systems as described below. Such external systems allow the design automation computer system to access external databases and leverage programs and algorithms of such external systems. The design automation computer system may communicate with such external systems via any networking method. Further, as described herein, the design automation computer system may be in communication with other devices including user devices. In an example embodiment, users designing PV systems access the design automation computer system via such user devices. The user devices access the design automation computer system over a network and may function in a client-server relationship wherein the user device is a client and the design automation computer system is a server. In further examples, users may directly access the design automation computer system via any suitable interface. In additional examples, the design automation computer system may substantially represent a cloud-based resource available to a plurality of user devices. In the example embodiment, users access the design automation computer system using a graphical user interface (“GUI”). Because PV system design involves simulation of the conditions of the PV system (e.g., illustrating solar activity and shadows), the GUI may be useful for illustrating such simulations. More specifically, as described herein, the systems described may operate in conjunction with modeling software and three-dimensional modeling software. In one example, the design automation computer system may integrate with such modeling software. The design automation computer system may also export and import design files from and to such modeling software. Such design files may be imported or exported in any suitable format including a CAD format. In some examples, the design automation computer system is configured to define three-dimensional attributes and positions of all site features (e.g., site boundaries, obstructions, rows, and aisles) including heights of such features. Further, the design automation computer system may be able to simulate shadow effects for features of the site and accordingly develop a “shadow profile” to define the usable area of the site. Additionally, the design automation computer system may generate the PV model layout in three-dimensions. Further, the design automation computer system may run additional shadow simulations upon completion of layout to determine how height and tilt of PV modules in the layout are shaded at a given date and time (and a given sun position). Moreover, the design automation computer system is configured to allow a user to place components in the model including electrical and structural equipment. Accordingly, the shade effects of such equipment may be considered and evaluated. The design automation computer system is also configured to create plan set drawings (including layouts and detailed views) from a variety of perspectives by rotating the perspective of the user in the three-dimensional environment. Also, the design automation computer system may facilitate the creation of line-of-sight studies to use with planning or zoning committees. The design automation computer system may also facilitate creating reflectivity studies to demonstrate the periods of time that the PV system will reflect light onto a region or regions. The design automation computer system further may facilitate creating three-dimensional rendered designs for customers to evaluate the design and aesthetics of the PV system. In some examples, the defined designs of PV systems described herein may be represented in a specialized format known as a “netlist” format. The netlist format may be used to transmit information regarding the designed PV system or to quickly query the PV system regarding attributes and structure of the PV system. Such efficient transmission and querying may be useful for system maintenance and alerts. For example, field technicians may utilize the netlist format to quickly find a piece of equipment described in the PV system design (and the netlist representation thereof). In the example embodiment, the netlist format includes two component sections. First, the netlist format includes a definitional section defining components included within a system and their respective properties. Second, the netlist format includes a hierarchical representation of the components from the point of interconnection down to each individual module. In the example embodiment, such hierarchical representation is provided in the netlist as a parent/child hierarchy wherein each component is a child of the next level of component above it. The top level parent is the PV system itself. The design automation computer system may also utilize a command line interface (“CLI”) to allow any command to be presented in a textual format (in addition to graphical commands that are usable by the GUI). In the design automation computer system, the CLI may also be used to run “batch” files that list multiple commands in succession. Accordingly, the commands of such batch files may be executed in succession. A user may therefore build a file of commands (e.g., table creation commands and layout commands) and use the file to generate multiple permutations of PV system designs, run simulations of energy production for each design, and identify the optimal design based on the permutations. At initial setup, the design automation computer system receives a first set of site data. The set of site data represents a depiction of a geographic site considered as a location for the PV system. The set of site data may include drawings or renderings of the geographic site. In one example, the set of site data includes satellite images and terrain data. In a second example, the set of site data includes computer-aided design (“CAD”) drawings indicating the features of the geographic site. In a third example, the set of site data may represent location identifiers including, for example, geographic coordinates such as latitude and longitude coordinates. In such examples, the design automation computer system may retrieve further data such as satellite images and terrain data by accessing an external system containing geospatial data. The design automation computer system may also receive additional site features that are not included in the set of site data. For example, the geographic site may include a tree that is not visible or indicated in the set of site data. As the tree may be an obstruction relevant to the design of the PV system, the user may identify the obstruction and provide it to the design automation computer system. The design automation computer system also receives a set of location identifiers. The set of location identifiers (e.g., latitude and longitude coordinates) substantially identify the physical location associated with the set of site data. In at least some examples, the set of location identifiers are provided explicitly from a user device. In other examples, the set of location identifiers is derived from the set of site data using any suitable method including, for example, image analysis and metadata analysis. The design automation computer system also identifies a north angle for the set of site data. As used herein, the north angle is the angle between true north and the y-axis in a three-dimensional coordinate system that is used by the design automation computer system to create the site model. In some examples, the north angle may be automatically determined based on the set of location identifiers. In other examples, the north angle may be provided explicitly from a user device. The design automation computer system determines a set of location design characteristics (“local design data”) based on the set of site data. The local design data may be retrieved from a local database, an external system, or a plurality of external systems. Local design data may include, for example and without limitation, seismic load data, wind load data, snow load data, solar data, wetland area identification data, floodplain area identification data, soil data, and elevation data. Some examples of external systems that may be used to retrieve local design data include engineering society databases, government databases, and academic databases. In at least one example, the design automation computer system utilizes application program interfaces (“APIs”) to access local design data from such external resources. In a further example, the design automation computer system aggregates local design data from a plurality of sources and stores such aggregated local design data at an associated local design database. Local design data may be beneficial in the design of PV systems, as described herein, to identify local variables and risks associated with the location of the set of site data. For example, a first location may be associated with high winds. When designing a parking canopy system in the first location, such high winds may shear PV modules from the canopy. Accordingly, structural components may be utilized to mitigate the risk of high winds. In a second example, a second location may be associated with regular flooding. When designing a ground mount system in the second location, structural components may be utilized to mitigate the risk of flooding. The design automation computer system also receives a system type selection. More specifically, a user accessing the design automation computer system selects a type of PV system. In the example embodiment, the system type selection may be ground mount, rooftop, and/or parking canopy. In other examples, other system types may be selected and configured in manners consistent with those described herein. In at least some examples, the design automation computer system also receives layout region identifications and designations. More specifically, a user may identify a portion of the geographic site associated with the set of site data for use with the designed PV system. In one example, the user may graphically identify a subsection of the geographic site that may be used. In further examples, the user may provide a name for the subsection. The user may design multiple PV systems in the same geographic site. Therefore, identifiers may be useful to distinguish each subsection associated with a distinct PV system. The design automation computer system may also receive a set of boundary offsets associated with the set of site data. The set of boundary offsets identify areas which cannot be utilized in the layout of the PV system. Such boundary offsets may be chosen for logistical purposes (e.g., to allow maintenance crews to access the PV system easily) or any other reason. In one example, a rooftop system is selected and the boundary offset allows a walking path around the PV system for maintenance access. The set of boundary offsets may be identified graphically. The design automation computer system additionally may receive a set of obstruction definitions associated with the set of site data. The set of obstruction definitions define any obstructions that are located at the geographic site. Examples of obstruction definitions may include obstruction locations, obstruction heights, and obstruction offsets. Obstruction locations and obstruction heights may be provided explicitly. Alternately, obstruction locations and obstruction heights may be determined by processing the set of site data using, for example, image analysis. In at least some examples, the design automation computer system may identify obstructions and obstruction heights without user input. Obstruction offsets reflect offsets associated with the obstruction. In at least some examples, obstruction offsets are determined because of maintenance requirements. In the example embodiment, obstruction offsets are provided by a user at a user device. Further, in the example embodiment, the design automation computer system avoids placing PV modules within obstruction offsets as such placement is inefficient. Using the set of obstruction definitions, the design automation computer system determines a set of shadow setbacks. More specifically, the design automation computer system identifies the set of obstructions based on the set of obstruction definitions and projects shadow effects on the geographic site for a plurality of time periods. The design automation computer system identifies simulation time periods and identifies a projected sun location for each time period. Using the projected sun location, the design automation computer system projects the shadow effects of the sun and the set of obstructions on the geographic site. In at least some examples, the user provides the time periods (e.g., dates and times) for simulating such shadow effects. In further examples, multiple PV module heights may be simulated to show varying shadow effects based on the height of the PV modules. In such examples, the user may provide potential PV module heights. Shadow Algorithms In the example embodiment, the design automation computer system uses shadow algorithms to render shadow effects. The shadow algorithms are critical to determine solar PV generation as the yield of the PV system is affected if shadow falls on a functional solar panel. In order to ensure that the designer is able to maximize placement of solar modules with minimal shadow implications, several options are provided to the user of the design automation computer system, described below. In a first example, shadow effects may be determined based on solstice. During winter and summer solstice the sun is at the lowest and highest point, respectively. In such an example, the shadow effects at winter and summer solstices are simulated for each of the days. In a second example, the design automation computer system allows users to additionally specify additional days for simulating shadow effects. In some cases, users may simulate shadow effects during the spring and autumn equinox. In other examples, the design automation computer system allows a user to simulate shadow effects for every day of the year. In some cases, such simulations may be performed using an automated scripting solution. In a fourth example, the design automation computer system may simulate shadow effects for a particular time range within days. Typically, the effective yield from the sun for PV systems is between 9:00 AM and 3:00 PM. Before sunrise and after sunset, no solar generation occurs. In other words, the output of the PV system is significantly dependent on the time of day—further, in many examples obstructions may only create shadow effects at particular periods of the day. For example, if a particular obstruction casts a shadow after 2:30 PM, the design automation computer system may simulate shadow effects before this period to calculate yields and after this period to simulate shadow effects. In a fifth example, the design automation computer system may make time zone adjustments for shadow effect simulations. As described above, in many PV systems, effective solar generation is between 9:00 AM and 3:00 PM. However, within a particular time zone, sun position may vary substantially for a particular time. For example, if a site is in a longitude of 75 degrees west, the sun position at 9:00 AM may be different from a site at 80 degrees west within the same time zone even though the clock time is the same. The design automation computer system may adjust for such intra-time zone variance by calculating the effective clock time for a site at a specific longitude. Thus, the effective clock time at the longitude of 75 degrees west will vary from the effective clock time of at 80 degrees west. In a sixth example, the design automation computer system may simulate shadow effects based on table height settings. The vertical placement of PV modules may affect the shadow effects. For example, if PV modules are placed at a height of two feet above the ground, all obstructions having a height below two feet do not cause shadow effects on the PV modules. Accordingly, the design automation computer system may factor in the height of the tables to determine whether certain obstructions may be excluded from causing shadow effects. Further, the design automation computer system may simulate shadow effects at various table heights to maximize effective placement of PV modules. For example, by simulating table heights at a variety of heights, the design automation computer system may determine that increasing the table height by a given amount (e.g., six inches) inches increases the effective placement area by ten percent and the overall yield by five percent. Accordingly, the design automation computer system may determine the preferable height of PV modules. In a seventh example, the design automation computer system allows a user to simulate shadow effects at specific intervals between a start and an end time. In an example embodiment, the default interval is once every hour. Alternately, the design automation computer system may simulate shadow effects at a smaller interval (e.g., every 30 minutes). More frequent simulations may allow for a more accurate simulation, generally. In the example embodiment, two shadow algorithms are used to render shadow effects. In a first example, a coarse algorithm is used. The coarse algorithm identifies obstructions based on the set of obstruction definitions and projects the shadow caused by each obstruction based on the projected sun position vector for each period in the simulated time period. The coarse shadow algorithm uses the sun position to project shadows caused by obstructions onto a ground face. For every interval from start time to end time of specific days of the year (as defined by the user) and during periods of the day (as defined by the user) at defined intervals, the sun position is determined. For a specific sun position, a line drawn from the sun direction to each of the obstructions is used to determine shadow effects. The design automation computer system uses visible corners of each obstruction above the table height and determines the projection of each obstruction onto the ground based on the sun position. The design automation computer system repeats the coarse algorithm for visible corners of each obstruction for every time interval within the start and end times for each of the days specified. The design automation computer system further connects the points rendered on the ground with the base of the obstruction to determine multiple shadow regions. The shadow regions will often overlap between time intervals. The design automation computer system uses a union algorithm to join overlapping regions into a single region. The design automation computer system repeats the union algorithm until multiple contiguous regions of shadow are obtained. In some cases, obstructions may have a large number of corners. In such examples, it may be difficult to perform a corner projection of each of the corners due to significant computational times. In such cases, the design automation computer system may determine an effective approximation to take the bounding box of such complex objects and use the bounding box corners for shadow rendering. In such shadow effect simulations, various independent areas may be called regions. For example in a site with multiple buildings, each building rooftop may be treated as a region. Accordingly, the design automation computer system may substantially determine shadow effects (and all other aspects of PV design) with at a regional level. In some examples, multiple regions may be identified within a site. In such a multi-region scenario, when simulating shadow effects for one region, other regions and associated obstructions may also render shadow effects onto the simulated region. Accordingly, shadow effects may be simulated across regions. The design automation computer system may simulate shadow effects (i.e., apply shadow algorithms) on flat regions and on sloping, curved, or non-level regions including sloping roofs. In many examples, obstructions on sloping roofs such as vents or chimneys may cause shadow effects. The design automation computer system may determine shadow effects of such obstructions on such non-level surfaces. Once the shadow effects and shadow areas are determined by the coarse algorithm, an additional process may be run to determine valid shadow areas. Specifically, the design automation computer system identifies shadow areas outside the selected region and removes such outside areas. Accordingly, only the shadow areas are rendered. The design automation computer system renders the shadow areas in a shadow layer. The shadow layer grouping is used to allow a user to show or hide the layer based on a single input (e.g., a selection or a mouse click). The shadow areas are also visually rendered at a slightly higher height than the ground region for display purposes. In other words, the shadow areas are rendered so that shadow regions may be distinguished from ground regions. In an example embodiment, the shadow areas are rendered at a scale depiction of one-quarter inch height above the ground region. Further, the design automation computer system may designate shadow areas by applying a different color to shadow areas to differentiate them from other site areas and geometry. In the second example, a fine algorithm is applied to refine the output of the coarse algorithm. The fine algorithm may provide a more accurate shadow area representation and may also determine the approximation of complex objects as explained above. The fine algorithm performs sun position ray tests at short distance increments (e.g., less than 6 inches) in order to create higher resolution shadow effects. The fine algorithm therefore produces a more precise shadow effects through this detailed simulation. In the fine algorithm, the design automation computer system utilizes a different approach for determining shadow effects as compared to the coarse algorithm. Specifically, the design automation computer system uses the shadow areas as determined in coarse algorithm and does a reverse shadow analysis. Each shadow area is broken into smaller squares and a beam of light is simulated from the center of the each square towards the direction of the sun at the same interval periods as used in the coarse algorithm. Accordingly, between the start and end times (at the specified interval for each of the days to be tested), the design automation computer system simulates sending a ray towards the sun position. The design automation computer system determines whether the ray intersects with an obstruction. If the ray intersects with an obstruction, the smaller square is verified as a shadow square (i.e., a square that is verified to have a shadow effect). This process may be repeated for all smaller squares for each shadow areas for specified days and times. The size of the smaller square may be determined by the size of the site and the amount of time it takes to compute the shadow. In many examples, a very large site may use larger squares while smaller sites may use smaller squares. In some examples, the maximum length of the side of each square is set to twelve inches to maintain accuracy. In some examples, the minimum length of the side of each square is limited one inch to maintain the efficiency of calculation. In most embodiments, the coarse and fine algorithms are configured to be executed in a limited period of time on a user computing device such as a desktop or a laptop. However, in other examples, processing capabilities and time may not be as crucial and the square size may be decreased below one inch per side. Similarly, more frequent simulations may be used. In some examples, such simulations may be performed on a remote server accessible by a user computing device. Once the shadow squares are determined, a union algorithm similar to that described above may be executed to combine all shadow regions into contiguous areas and all non-shadow regions into contiguous areas. Non-shadow contiguous areas may be deleted and the design automation computer system renders only shadow areas. Similar to the coarse algorithm, the fine algorithm groups all shadow areas into a shadow layer for visibility, selection, and grouping. Further, also like the coarse algorithm, the fine algorithm may render shadow effects for non-level surfaces. Additionally, also like the coarse algorithm, shadow areas may be rendered at a default height of one-quarter inch above the ground region in the fine algorithm. Additionally, the fine algorithm may distinguish shadow areas with distinct colors in a manner similar to the coarse algorithm. In some examples, the shadow algorithm may allow users to place all solar panels in the entire usable area including possible shadow areas. In such examples, a process similar to the fine algorithm may be used to determine shadow effects on the solar panels placed in potential shadow areas. Solar panels may be partitioned into smaller squares and a simulated ray may be sent towards the sun position for each of the days between the start and end times for the specific days. The design automation computer system may then determine a number of points in shadow and a number of points outside shadow and further determine a ratio is of the points. The determined ratio may be used to determine the gradient color of the solar module. In some examples, the solar module may be rendered in red if it is fully under shadow for all the days and time intervals. Conversely, the solar module may be rendered in green if it is not in a shadow area at any point in the period. Thus, the solar module may be rendered in a varying color (on a gradient from red to green) if the modules are partially shaded at particular points. As a result, the design automation computer system may render the solar modules to easily indicate highly shaded or fully shaded modules. Accordingly, a user may remove highly shaded or fully shaded solar modules from the design. In some examples, a numeric value associated with the gradient value may also be displayed. Further, the design automation computer system may provide a filter function to allow for removal of all solar modules with gradient values outside the boundary of the filter. Shadow effects represent areas where PV systems will not yield optimal energy production (because of the temporary or total reduction in solar irradiance at the location). Accordingly, it may be undesirable to place PV modules where obstructions cause shadow effects. The design automation computer system therefore integrates the set of shadow effect areas into an integrated shadow setback area. The integrated shadow setback area is used as negative space to define where the PV modules should not be placed. The design automation computer system also receives a plurality of system component selections. System component selections represent the selections of equipment that will be used by the PV system for energy production and transfer. Accordingly, in most examples, system components include PV modules, PV inverters, PV combiners, conductors, and conduits. In the example embodiment, the design automation computer system identifies potential system component selections from a component library. As used herein, the “component library” refers to a data store that catalogues components used in PV system design. The component library includes definitions and identifiers for system components, structural components, and electrical components. Further, the component library identifies which components may be used with other components. (In at least some examples, some system components may only be used with a subset of other available system components.) The component library may be stored in any suitable form. In the example embodiment, the component library is stored in a database associated with the design automation computer system. In at least some examples, the component library also includes schematic information, safety information, pricing information, and maintenance information associated with components. In further examples, the component library may include estimated labor costs associated with components to identify the cost of, for example, installation and maintenance. The design automation computer system provides a retrieved plurality of first system component options to a user device based on the component library. In other words, the design automation computer system presents system component options to the user based on the component library. Upon a component selection by the user, the design automation computer system receives a first system component selection corresponding to one of the plurality of first system component options from the user device. In the example embodiment, the first system component options represent a set of PV module options. In other examples, other components may first be presented to the user. Upon receiving a first system component selection, the design automation computer system may constrain the available system component options based on the first system component selection. As described above, at least some components are associated with a subset of other components and therefore force a filtering of subsequent system component options. The design automation computer system accordingly retrieves a plurality of second system component options associated with the first system component selection from the component library. In other words, the design automation computer system provides a second set of component options from the component library based on the selection of the first set of component options as the first selection acts as a filter on the component library selections. For example, the first system component options may include a list of conductor types including “aluminum conductors.” Upon selection of “aluminum conductors”, the design automation computer system may provide a second set of component options from the component library representing all aluminum conductors noted in the component library. The design automation computer system presents the plurality of second system component options to the user device and receives a second system component selection corresponding to one of the plurality of second system component options from the user device. In the example embodiment, the second system component options represent a set of PV inverter options. In other examples, other components may secondly be presented to the user. In a similar fashion, the design automation computer system may present a plurality of system component options to the user device until all system component options are identified for the purposes of PV system design. In other examples, only a subset of system components is selected and the design automation computer system automatically identifies suitable system components for the remainder of the PV system design. In an example embodiment, a user selects a PV module, a PV inverter, and a PV combiner and the design automation computer system automatically selects a conductor and a conduit. The design automation computer system also defines a PV module layout. A PV module layout represents a physical layout of PV modules within the geographic site. In at least some examples, PV module layouts follow a hierarchical convention wherein a group of PV modules may be identified as a single unit known as a “table”. A table typically has fixed dimensions in terms of PV modules. A table may further be grouped into a “block”. Similarly, a block typically has fixed dimensions in terms of PV tables. To define the PV module layout, the design automation computer system may receive a table identifier from the user device to distinguish tables. The design automation computer system further identifies a PV module type for the table, previously selected by the user. The design automation computer system calculates a recommended “string size” for the PV system. A string size represents the amount of PV modules that may be wired in succession. The string size may be determined based on electrical and temperature considerations. The string size may also be used by the design automation computer system to determine the number of modules to be used in a table. As string sizes increase, potential open-circuit voltage outputs for the string similarly increase. The design automation computer system calculates the recommended string size by identifying and processing a plurality of variables. The design automation computer system identifies a proximate weather data source (e.g., an ASHRAE station) and receives meteorological data for the geographic site based from the proximate weather station. In the example embodiment, the received meteorological data includes record high and record low temperatures for
{'application_number': '<application-reference appl-type="utility">\n<document-id>\n<country>US</country>\n<doc-number>14543546</doc-number>\n<date>20141117</date>\n</document-id>\n</application-reference>', 'publication_number': '<publication-reference>\n<document-id>\n<country>US</country>\n<doc-number>20160140258</doc-number>\n<kind>A1</kind>\n<date>20160519</date>\n</document-id>\n</publication-reference>', 'source_file': './application/2016/ipa160519.xml', 'source_data': 'USPTO-Application'}