the current PV_FRAC_ROOF value in the table is set based on the case study from Andrea's recent study. this parameter is tunable based on each city's situation. If you set it to 60%, then it assumes each urban grid will have a uniform 60% of roof area with PV panels.
		
		
	 
thank you. And I would like to ask if it is normal to have a EP_PV_URB3D (w/m2) of about 20 with 50% rooftop PV installed as shown? And all I have viewed in other people's papers the EP_PV_URB3D is within 5w/m2. I am curious why the result is so big. And the ncl code is below:
 
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
begin
;
; The WRF ARW input file.  
; This needs to have a ".nc" appended, so just do it.
  a = addfile("wrfout_d03_2023-07-28_02:00:00_50solar","r")
  b = addfile("wrfout_d03_2023-07-28_02:00:00_original","r")
; We generate plots, but what kind do we prefer?
  type = "x11"
; type = "pdf"
; type = "ps"
; type = "ncgm"
;  wks@wkWidth = 3600
;  wks@wkHeight =3600
;  wks = gsn_open_wks(type,"plt_Surface1")
   wks = gsn_open_wks(type,"EP_PV_URB3D")
   gsn_define_colormap(wks,"BlueWhiteOrangeRed")  ; overwrite the .hluresfile color map
; Set some basic resources
  res = True
; res@NoHeaderFooter           = True           ; Switch headers and footers off
  res@tmXBLabelFontHeightF    = 0.02     ;set the size of x-Axis words
  res@tmYLLabelFontHeightF    = 0.02    ;set the size of y-Axis words
  res@lbLabelsOn             = True
  res@lbTitleOn = True
  res@lbTitleString = "EP_PV_URB3D"
  res@lbLabelBarTitlesetF = 0.02      ; 调整标题与labelbar之间的距离
; res@lbLabelFontHeightF      = 0.02     ;set the size of label bar words
  res@pmLabelBarWidthF  = 0.15
  res@pmLabelBarHeightF      = 0.87     
  res@lbOrientation = "vertical" 
  res@pmLabelBarSide = "Right"
  res@pmLabelBarOrthogonalPosF  = -0.03
;  res@pmLabelBarParallelPosF  = 0.1
  pltres = True
  pltres@FramePlot                 = False
  mpres = True
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; What times and how many time steps are in the data set?
  times = wrf_user_getvar(a,"times",-1)  ; get all times in the file
  ntimes = dimsizes(times)         ; number of times in the file
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  do it = 0,ntimes-1,1             ; TIME LOOP
    print("Working on time: " + times(it) )
    res@TimeLabel = times(it)   ; Set Valid time to use on plots
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; First get the variables we will need        
    ep_pv_urb3d_a = wrf_user_getvar(a,"EP_PV_URB3D",it)   ; T2 in Kelvin
    slp = wrf_user_getvar(a,"slp",it)   ; slp
    ep_pv_urb3d_b = wrf_user_getvar(b,"EP_PV_URB3D",it)   ; T2 in Kelvin
    ep_pv_urb3d = ep_pv_urb3d_a - ep_pv_urb3d_b
    ; Plotting options for T                
      opts = res                         
      opts@cnFillOn = True  
    ;  opts@ContourParameters = (/ -1., 1., .1./)
      opts@cnLevelSelectionMode = "ManualLevels"      ; manually set cn levels
      opts@cnMinLevelValF       = -20.                 ; min level
      opts@cnMaxLevelValF       =  20.                 ; max level
      opts@cnLevelSpacingF      =  1                  ; contour level spacing
      opts@gsnSpreadColorEnd = -3  ; End third from the last color in color map
      opts@lbOrientation = "vertical"
      opts@pmLabelBarSide = True
      contour_ep_pv_urb3d = wrf_contour(a,wks,ep_pv_urb3d,opts)
      delete(opts)
  ; MAKE PLOTS
    plot = wrf_map_overlays(a,wks,(/contour_ep_pv_urb3d/),pltres,mpres)
    
; Set up map resources
      plres = True
      plres@gsLineColor = "black"
      plres@gsLineThicknessF = 1.5
      plotshp = gsn_add_shapefile_polylines(wks,plot, shpdir, plres)
    draw(plot)
    frame(wks)  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  end do        ; END OF TIME LOOP
end