GM-SEUS Solar Panel Rows

From OpenStreetMap Wiki
Jump to navigation Jump to search

NOTE: The manually digitized solar panel-rows described in this document are no longer under consideration for import into OpenStreetMap. During community discussion on the Import Forum, several methodology conflicts were identified. Specifically:

  • Our use of NAIP imagery led to misalignment with OSM basemap imagery (likely an orthorectification issue).
  • OSM’s upload limitations and requirements created barriers to handling the large number of features.
  • The digitization resulted in non-squared panel-row edges, influenced by NAIP imagery timing and look angle.

Because our research requires NAIP and the methods described here, these issues are not easily resolved for OSM integration. That said, we believe the discussion on this Wiki and in the Import Forum remains valuable, and we are supportive of broader, collaborative efforts to map the energy landscape like those of the community commentors on our import post and MapYourGrid. For information on our research mapping or potential collaborations, contact [email protected].

Overview of Ground-Mounted Solar Energy in the United States (GM-SEUS)

The Ground-Mounted Solar Energy in the United States (GM-SEUS) dataset is a harmonized, open access, and regularly updated geospatial and temporal repository of solar energy arrays and panel-rows (see Figure 1). GM-SEUS contains spatiotemporal information and value-added attributes for commercial- (<1 MWDC) and utility-scale (≥1 MWDC) solar photovoltaic (PV) and concentrating solar power (CSP) installations in the United States (US) and is explained in Stid et al., 2025. GM-SEUS was built using existing datasets (including OpenStreetMap solar farm and panel data), machine learning, and object-based image analysis to enhance existing sources. This dataset, wiki, and project support expanding GM-SEUS with with a version update (version 1.1) to have greater panel-row coverage. The data contributed to GM-SEUS from OpenStreetMap is invaluable, and we thus also provide this dataset to support OpenStreetMap's mission to make the best map data set of the world.

MSU Hydrogeology Lab Wiki Pages:

Other Important Links:

This import and related project are products of the Michigan State University Hydrogeology Lab.


Figure 1: GM-SEUS solar array distribution. GM-SEUS arrays are zonally grouped by number of solar installations within Uber H3 hexagons (resolution 5). H3 hexagons at this resolution in the region are 260 +/- 37 km2.

Goal and Contribution

As part of the GM-SEUS updates, we make an effort to manually digitize solar panel-rows (Figure 3) to fill gaps in and enhance coverage of solar array sub-array design metadata in the United States. The primary goal of this OSM import is to enhance OpenStreetMap’s solar energy coverage by adding a large dataset of hand-digitized solar panel-rows, supporting both OpenStreetMap and GM-SEUS.

The entire hand delineated dataset contains 24,182 hand-delineated solar panel-rows (5.29 km²) composing 1,485 arrays previously without panel-row data, spanning the Contiguous United States (CONUS) and digitized by Charlie Bonten. Of these, 23,870 panel-rows did not conflate with existing OpenStreetMap contributions, and composed 1,450 arrays. As of August 29th, 2025, this upload represents a 2.1% increase in panel-row count and a 23.1% increase in the number of arrays with panel-row data in OpenStreetMap. These panel-rows are the intended contribution to OpenStreetMap. We omit the solar farm/array boundaries, since these were generated by an automated process.

OSM Import Note

Within the Zenodo data repository for GMSEUSv1_1_newlydigitizedPanels, there are multiple files (please read the contained README.txt for file description). Files with the .osm extension are prepared for viewing in OpenStreetMap editors (e.g., JOSM). However, the ONLY file intended to be added to the OpenStreeMap repository is GMSEUSv1_1_digUnique.osm, with other .osm files intended for context and to be shared in the Wiki map.

Schedule

  • Import canceled due to methodology conflicts.

Import Data

Background

  • ODbL Compliance Verified: YES

OSM Data Files

Import Type

  • Single time, not recurring
  • The method that will be used for entering the imported data into the OSM database will be with the JOSM software using OpenWebStart javaws to run the josm.jnlp.

Data Preparation

Tagging Plans

  • Digitized solar panel-row GeoJSON and osm files located in our Zenodo repository contain the recommended solar generator attributes. These attributes are given by the list below:
    • generator:method=photovoltaic
    • generator:output:electricity=yes
    • generator:solar:tracking=no or yes
    • generator:source=solar
    • generator:type=solar_photovoltaic_panel
    • location=surface
    • power=generator
    • direction=cardinal orientation of panel-row face (short edge) in degrees from North

Changeset Tags

  • changesets will be tagged with source=GMSEUSv1_1_newlyDigPanels

Data Transformation

  • See workflow

Data Transformation Results

Data Merge Workflow

Team Approach

Workflow

  • The workflow for the digitization process of each panel-row can be found in the document titled "DigitizationWorkflow_v1_1.pdf" located within the digitized panel-rows Zenodo repository. Here, we provide a simplified or generalized overview of the digitization process.
    1. GM-SEUS v1.0 contains panel-rows from OpenStreetMap and from aerial imagery classification. However, it does not contain panel-row data for ~5000 of the 15,000 solar arrays within the database. To optimize the time value of added panel-rows, we ordered arrays by array area (see script_digitizeSolarPanelRows.js) and began digitizing panel-rows from smallest to largest array without panel-row data.
    2. We digitized these panel-rows using Google Earth Engine code editor and National Agriculture Imagery Program (NAIP) imagery where available and satellite imagery where NAIP was not available. We recorded this process and all other relevant notes and metadata in the "PanelRowDigitizationMetadata_v1_1.csv", contained within the digitized panel-rows Zenodo repository.
  • The workflow for the process of uploading the digitized panel-rows to the OSM database is as follows:
    1. Solar panel-rows were digitized in Google Earth Engine (GEE) using "script_digitizeSolarPanelRows.js. Upon completion of panel-row digitization (arbitrary, time allocation based decision while ensuring completion of initiated array digitization), all panel-row shapes were merged and expoerted a SHP in a personal google drive
    2. GM-SEUS includes a pull of existing OpenStreetMap panel-row data. However, the most recent version of GM-SEUS was processed on December 11th, 2024. This import's digitization was completed between May 5th and August 8th, 2025. Therefore, GM-SEUS OpenStreetMap panel-row data was out of date, and an update panel-row pull was performed between August 19th and 23rd, 2025 to check for conflation.
      1. The script titled "script0_getOSMdata.ipynb" located in our github repository was used to pull all the current OSM panel-rows.
      2. We then used a script titled, "script_prepareNewDigPanels.ipynb" to overlay panel-rows and check for conflation and add all necessary attributes to the panel-rows.
        1. Conflation: We used a function "gmseusUtils.py" called createArrayFromPanels. This function takes all solar panel-rows in a given dataset, buffers them, merges the overlapped shape, and then erodes the resulting shape resulting what we define as an array shape (Figure 3). With array shapes from OpenStreetMap and our newly digitized panel-rows, we performed a spatial join to identify overlapping array panel-row data (conflating).
        2. Direction Tag: The "direction=" tag, referenced in the solar tagging approach, was defined as the azimuth of the panel-row, where the azimuth is the cardinal direction of the short edge (face) of the panel-row in degrees from north (see Figure 3). This was assessed using the assignMountType function within "gmseusUtils.py", and has been used in our previous and current work.
        3. Tracking Tag: the "generator:solar:tracking", was defined using the azimuth (defined above) and the long edge to short edge ratio of the panel-row (Figure 3), with more rectangular panel-rows being classified as fixed-axis (tracking=no) if their azimuth was primarily in the south direction, and tracking if otherwise (including square-like panel-rows which were dual-axis, or rectangular panel-rows in the east/west azimuthal direction). This was also assessed using the assignMountType function within "gmseusUtils.py", and has been used in our previous and current work.
      3. Out of 1,485 arrays that were digitized, 35 of them consisting of 312 panels conflated with the newly pulled OSM data. Thought the digitized panel-rows Zenodo repository contains all files, the 35 conflated arrays were removed and saved as "GMSEUSv1_1_digUnique.osm". This is the file that will be imported to the OSM database.
    3. The CRS for all datasets was set to EPSG:4326 using the geopandas package in "script_prepareNewDigPanels.ipynb".
    4. The software application that will be used to import "GMSEUSv1_1_digUnique.osm" into the OSM database will be Java OpenStreetMap Editor (JOSM)
      1. For reference these steps were done on a Mackbook Pro.
      2. The software for JOSM is a file titled "josm.jnlp". That file was opened using another software called OpenWebStart Javaws.
      3. Once Inside the JOSM software the "GMSEUSv1_1_digUnique.osm" file was opened by clicking "open" and then selecting the file.
    5. Quality Assurance
      1. Once "GMSEUSv1_1_digUnique.osm" has been opened inside JOSM, I zoomed in on some of the individual panel-rows in order to confirm that they had been converted properly. Additionally individual panel-rows were selected to make sure that the attributes had been transferred correctly.

Conflation

  • See workflow

Figures Referenced in this Wiki

Figure 2. The most recently available NAIP imagery dates within Google Earth Engine as of August 26th, 2025. The color gradient indicates the within-year acquisition date, ranging from earlier (lighter shade) to later (darker shades) in the calendar year. These dates represent the temporal limitation of panel-row delineation and array boundary enhancement based on available imagery (through 2023). Grey areas are either prohibited flight spaces for national security reasons (e.g., S. Nevada).
Figure 3. Conceptual hierarchical system boundaries and solar panel-row metadata logic. Green boundaries indicate the conceptual boundary for each term. An array is composed of one or more adjacent rows of the same installation year, and the row-spacing between them.


Community Forum Post

The post was to the community forum was sent on 2025-09-03 and can be found here.