Sun Shadow Volume (3D Analyst)

Summary

Creates closed volumes that model shadows cast by each feature using sunlight for a given date and time.

Usage

  • All input features should reside in the same locale, as relative sun position calculations are based on the position of the first feature in the first feature class.

  • Shadow volumes will not be produced if the sun is not visible for a given date and time or if the relative position of the sun is at a vertical angle of 90 degrees from the input features.

  • Shadows are modeled as closed multipatches created by extruding the input features in the direction of sunlight. Light rays are considered to be parallel and travel in the direction calculated for the relative position of the sun. Each shadow volume starts and ends at a vertical plane that is perpendicular to the horizontal projection of the sun's rays.

  • The following fields will be attributed to the shadow volume features:

    • SOURCE—The name of the feature class casting the shadow volume.
    • SOURCE_ID—The unique ID of the feature casting the shadow volume.
    • DATE_TIME—The local date and time used to calculate sun position.
    • AZIMUTH—The angle in degrees between true north and the perpendicular projection of the sun's relative position down to the earth's horizon. Values range from 0 to 360.
    • VERT_ANGLE—The angle in degrees between the earth's horizon and the sun's relative position where the horizon defines 0 degrees and 90 degrees is directly above.
    Note:

    Typically, each shadow volume will appear to hug, or be cast tightly against, its originating feature. If a shadow cannot be generated in this manner, it will be created from the boundary of the feature's outer extent. When at least one shadow is created this way, a HUGS_FEATR field is included to indicate which shadows hug their corresponding features.

Parameters

LabelExplanationData Type
Input Features

The multipatch features that will be used to model shadows.

Feature Layer
Start Date and Time

The date and time from which sun positions will be determined. Both a date and a time must be provided, and only the times when the sun is above the horizon will produce an output shadow volume.

Date
Output Feature Class

The multipatch feature class that will store the resulting shadow volumes.

Feature Class
Adjusted for Daylight Savings Time
(Optional)

Specifies whether the time value will be adjusted for daylight saving time (DST).

  • Unchecked—The time value will not be adjusted for DST. This is the default.
  • Checked—The time value will be adjusted for DST.
Boolean
Time Zone
(Optional)

The time zone in which the participating input is located. The default setting is the time zone to which the operating system is set.

  • UTC—The time zone will be UTC.
  • Dateline Standard Time—The time zone will be Dateline Standard Time (UTC-12:00).
  • UTC-11—The time zone will be UTC-11 (UTC-11:00).
  • Aleutian Standard Time—The time zone will be Aleutian Standard Time (UTC-10:00).
  • Hawaiian Standard Time—The time zone will be Hawaiian Standard Time (UTC-10:00).
  • Marquesas Standard Time—The time zone will be Marquesas Standard Time (UTC-09:30).
  • Alaskan Standard Time—The time zone will be Alaskan Standard Time (UTC-09:00).
  • UTC-09—The time zone will be UTC-09 (UTC-09:00).
  • Pacific Standard Time (Mexico)—The time zone will be Pacific Standard Time (Mexico) (UTC-08:00).
  • UTC-08—The time zone will be UTC-08 (UTC-08:00).
  • Pacific Standard Time—The time zone will be Pacific Standard Time (UTC-08:00).
  • US Mountain Standard Time—The time zone will be US Mountain Standard Time (UTC-07:00).
  • Mountain Standard Time (Mexico)—The time zone will be Mountain Standard Time (Mexico) (UTC-07:00).
  • Mountain Standard Time—The time zone will be Mountain Standard Time (UTC-07:00).
  • Yukon Standard Time—The time zone will be Yukon Standard Time (UTC-07:00).
  • Central America Standard Time—The time zone will be Central America Standard Time (UTC-06:00).
  • Central Standard Time—The time zone will be Central Standard Time (UTC-06:00).
  • Easter Island Standard Time—The time zone will be Easter Island Standard Time (UTC-06:00).
  • Central Standard Time (Mexico)—The time zone will be Central Standard Time (Mexico) (UTC-06:00).
  • Canada Central Standard Time—The time zone will be Canada Central Standard Time (UTC-06:00).
  • SA Pacific Standard Time—The time zone will be SA Pacific Standard Time (UTC-05:00).
  • Eastern Standard Time (Mexico)—The time zone will be Eastern Standard Time (Mexico) (UTC-05:00).
  • Eastern Standard Time—The time zone will be Eastern Standard Time (UTC-05:00).
  • Haiti Standard Time—The time zone will be Haiti Standard Time (UTC-05:00).
  • Cuba Standard Time—The time zone will be Cuba Standard Time (UTC-05:00).
  • US Eastern Standard Time—The time zone will be US Eastern Standard Time (UTC-05:00).
  • Turks And Caicos Standard Time—The time zone will be Turks And Caicos Standard Time (UTC-04:00).
  • Paraguay Standard Time—The time zone will be Paraguay Standard Time (UTC-04:00).
  • Atlantic Standard Time—The time zone will be Atlantic Standard Time (UTC-04:00).
  • Venezuela Standard Time—The time zone will be Venezuela Standard Time (UTC-04:00).
  • Central Brazilian Standard Time—The time zone will be Central Brazilian Standard Time (UTC-04:00).
  • SA Western Standard Time—The time zone will be SA Western Standard Time (UTC-04:00).
  • Pacific SA Standard Time—The time zone will be Pacific SA Standard Time (UTC-04:00).
  • Newfoundland Standard Time—The time zone will be Newfoundland Standard Time (UTC-03:30).
  • Tocantins Standard Time—The time zone will be Tocantins Standard Time (UTC-03:00).
  • E. South America Standard Time—The time zone will be E. South America Standard Time (UTC-03:00).
  • SA Eastern Standard Time—The time zone will be SA Eastern Standard Time (UTC-03:00).
  • Argentina Standard Time—The time zone will be Argentina Standard Time (UTC-03:00).
  • Greenland Standard Time—The time zone will be Greenland Standard Time (UTC-03:00).
  • Montevideo Standard Time—The time zone will be Montevideo Standard Time (UTC-03:00).
  • Magallanes Standard Time—The time zone will be Magallanes Standard Time (UTC-03:00).
  • Saint Pierre Standard Time—The time zone will be Saint Pierre Standard Time (UTC-03:00).
  • Bahia Standard Time—The time zone will be Bahia Standard Time (UTC-03:00).
  • UTC-02—The time zone will be UTC-02 (UTC-02:00).
  • Mid-Atlantic Standard Time—The time zone will be Mid-Atlantic Standard Time (UTC-02:00).
  • Azores Standard Time—The time zone will be Azores Standard Time (UTC-01:00).
  • Cape Verde Standard Time—The time zone will be Cape Verde Standard Time (UTC-01:00).
  • GMT Standard Time—The time zone will be GMT Standard Time (UTC+00:00).
  • Greenwich Standard Time—The time zone will be Greenwich Standard Time (UTC+00:00).
  • Sao Tome Standard Time—The time zone will be Sao Tome Standard Time (UTC+00:00).
  • Morocco Standard Time—The time zone will be Morocco Standard Time (UTC+00:00).
  • W. Europe Standard Time—The time zone will be W. Europe Standard Time (UTC+01:00).
  • Central Europe Standard Time—The time zone will be Central Europe Standard Time (UTC+01:00).
  • Romance Standard Time—The time zone will be Romance Standard Time (UTC+01:00).
  • Central European Standard Time—The time zone will be Central European Standard Time (UTC+01:00).
  • W. Central Africa Standard Time—The time zone will be W. Central Africa Standard Time (UTC+01:00).
  • Jordan Standard Time—The time zone will be Jordan Standard Time (UTC+02:00).
  • GTB Standard Time—The time zone will be GTB Standard Time (UTC+02:00).
  • Middle East Standard Time—The time zone will be Middle East Standard Time (UTC+02:00).
  • Egypt Standard Time—The time zone will be Egypt Standard Time (UTC+02:00).
  • E. Europe Standard Time—The time zone will be E. Europe Standard Time (UTC+02:00).
  • Syria Standard Time—The time zone will be Syria Standard Time (UTC+02:00).
  • West Bank Standard Time—The time zone will be West Bank Standard Time (UTC+02:00).
  • South Africa Standard Time—The time zone will be South Africa Standard Time (UTC+02:00).
  • FLE Standard Time—The time zone will be FLE Standard Time (UTC+02:00).
  • Israel Standard Time—The time zone will be Israel Standard (UTC+02:00).
  • South Sudan Standard Time—The time zone will be South Sudan Standard Time (UTC+02:00).
  • Kaliningrad Standard Time—The time zone will be Kaliningrad Standard Time (UTC+02:00).
  • Sudan Standard Time—The time zone will be Sudan Standard Time (UTC+02:00).
  • Libya Standard Time—The time zone will be Libya Standard Time (UTC+02:00).
  • Namibia Standard Time—The time zone will be Namibia Standard Time (UTC+02:00).
  • Arabic Standard Time—The time zone will be Arabic Standard Time (UTC+03:00).
  • Turkey Standard Time—The time zone will be Turkey Standard Time (UTC+03:00).
  • Arab Standard Time—The time zone will be Arab Standard Time (UTC+03:00).
  • Belarus Standard Time—The time zone will be Belarus Standard Time (UTC+03:00).
  • Russian Standard Time—The time zone will be Russian Standard Time (UTC+03:00).
  • E. Africa Standard Time—The time zone will be E. Africa Standard Time (UTC+03:00).
  • Volgograd Standard Time—The time zone will be Volgograd Standard Time (UTC+03:00).
  • Iran Standard Time—The time zone will be Iran Standard Time (UTC+03:30).
  • Arabian Standard Time—The time zone will be Arabian Standard Time (UTC+04:00).
  • Astrakhan Standard Time—The time zone will be Astrakhan Standard Time (UTC+04:00).
  • Azerbaijan Standard Time—The time zone will be Azerbaijan Standard Time (UTC+04:00).
  • Russia Time Zone 3—The time zone will be Russia Time Zone 3 (UTC+04:00).
  • Mauritius Standard Time—The time zone will be Mauritius Standard Time (UTC+04:00).
  • Saratov Standard Time—The time zone will be Saratov Standard Time (UTC+04:00).
  • Georgian Standard Time—The time zone will be Georgian Standard Time (UTC+04:00).
  • Caucasus Standard Time—The time zone will be Caucasus Standard Time (UTC+04:00).
  • Afghanistan Standard Time—The time zone will be Afghanistan Standard Time (UTC+04:30).
  • West Asia Standard Time—The time zone will be West Asia Standard Time (UTC+05:00).
  • Ekaterinburg Standard Time—The time zone will be Ekaterinburg Standard Time (UTC+05:00).
  • Pakistan Standard Time—The time zone will be Pakistan Standard Time (UTC+05:00).
  • Qyzylorda Standard Time—The time zone will be Qyzylorda Standard Time (UTC+05:00).
  • India Standard Time—The time zone will be India Standard Time (UTC+05:30).
  • Sri Lanka Standard Time—The time zone will be Sri Lanka Standard Time (UTC+05:30).
  • Nepal Standard Time—The time zone will be Nepal Standard Time (UTC+05:45).
  • Central Asia Standard Time—The time zone will be Central Asia Standard Time (UTC+06:00).
  • Bangladesh Standard Time—The time zone will be Bangladesh Standard Time (UTC+06:00).
  • Omsk Standard Time—The time zone will be Omsk Standard Time (UTC+06:00).
  • Myanmar Standard Time—The time zone will be Myanmar Standard Time (UTC+06:30).
  • SE Asia Standard Time—The time zone will be SE Asia Standard Time (UTC+07:00).
  • Altai Standard Time—The time zone will be Altai Standard Time (UTC+07:00).
  • W. Mongolia Standard Time—The time zone will be W. Mongolia Standard Time (UTC+07:00).
  • North Asia Standard Time—The time zone will be North Asia Standard Time (UTC+07:00).
  • N. Central Asia Standard Time—The time zone will be N. Central Asia Standard Time (UTC+07:00).
  • Tomsk Standard Time—The time zone will be Tomsk Standard Time (UTC+07:00).
  • China Standard Time—The time zone will be China Standard Time (UTC+08:00).
  • North Asia East Standard Time—The time zone will be North Asia East Standard Time (UTC+08:00).
  • Singapore Standard Time—The time zone will be Singapore Standard Time (UTC+08:00).
  • W. Australia Standard Time—The time zone will be W. Australia Standard Time (UTC+08:00).
  • Taipei Standard Time—The time zone will be Taipei Standard Time (UTC+08:00).
  • Ulaanbaatar Standard Time—The time zone will be Ulaanbaatar Standard Time (UTC+08:00).
  • Aus Central W. Standard Time—The time zone will be Aus Central W. Standard Time (UTC+08:45).
  • Transbaikal Standard Time—The time zone will be Transbaikal Standard Time (UTC+09:00).
  • Tokyo Standard Time—The time zone will be Tokyo Standard Time (UTC+09:00).
  • North Korea Standard Time—The time zone will be North Korea Standard Time (UTC+09:00).
  • Korea Standard Time—The time zone will be Korea Standard Time (UTC+09:00).
  • Yakutsk Standard Time—The time zone will be Yakutsk Standard Time (UTC+09:00).
  • Cen. Australia Standard Time—The time zone will be Cen. Australia Standard Time (UTC+09:30).
  • AUS Central Standard Time—The time zone will be AUS Central Standard Time (UTC+09:30).
  • E. Australia Standard Time—The time zone will be E. Australia Standard Time (UTC+10:00).
  • AUS Eastern Standard Time—The time zone will be AUS Eastern Standard Time (UTC+10:00).
  • West Pacific Standard Time—The time zone will be West Pacific Standard Time (UTC+10:00).
  • Tasmania Standard Time—The time zone will be Tasmania Standard Time (UTC+10:00).
  • Vladivostok Standard Time—The time zone will be Vladivostok Standard Time (UTC+10:00).
  • Lord Howe Standard Time—The time zone will be Lord Howe Standard Time (UTC+10:30).
  • Bougainville Standard Time—The time zone will be Bougainville Standard Time (UTC+11:00).
  • Russia Time Zone 10—The time zone will be Russia Time Zone 10 (UTC+11:00).
  • Magadan Standard Time—The time zone will be Magadan Standard Time (UTC+11:00).
  • Norfolk Standard Time—The time zone will be Norfolk Standard Time (UTC+11:00).
  • Sakhalin Standard Time—The time zone will be Sakhalin Standard Time (UTC+11:00).
  • Central Pacific Standard Time—The time zone will be Central Pacific Standard Time (UTC+11:00).
  • Russia Time Zone 11—The time zone will be Russia Time Zone 11 (UTC+11:00).
  • New Zealand Standard Time—The time zone will be New Zealand Standard Time (UTC+12:00).
  • UTC+12—The time zone will be UTC+12 (UTC+12:00).
  • Fiji Standard Time—The time zone will be Fiji Standard Time (UTC+12:00).
  • Kamchatka Standard Time—The time zone will be Kamchatka Standard Time (UTC+12:00).
  • Chatham Islands Standard Time—The time zone will be Chatham Islands Standard Time (UTC+12:45).
  • UTC+13—The time zone will be UTC+13 (UTC+13:00).
  • Tonga Standard Time—The time zone will be Tonga Standard Time (UTC+13:00).
  • Samoa Standard Time—The time zone will be Samoa Standard Time (UTC+13:00).
  • Line Islands Standard Time—The time zone will be Line Islands Standard Time (UTC+14:00).
String
End Date and Time
(Optional)

The final date and time that will be used for calculating sun position. A time can be specified without a date, in which case the end date will be the same as the start date. If a date is provided, a time must also be given. Only the times at which the sun is above the horizon will produce an output shadow volume.

Date
Iteration Interval
(Optional)

The value that will be used to define the iteration of time from the start date.

Double
Iteration Unit
(Optional)

Specifies the unit that will define the iteration value applied to the Start Date and Time parameter value.

  • Days—The iteration value will represent days. This is the default.
  • Hours—The iteration value will represent one or more hours.
  • Minutes—The iteration value will represent one or more minutes.
String

arcpy.ddd.SunShadowVolume(in_features, start_date_and_time, out_feature_class, {adjusted_for_dst}, {time_zone}, {end_date_and_time}, {iteration_interval}, {iteration_unit})
NameExplanationData Type
in_features
[in_features,...]

The multipatch features that will be used to model shadows.

Feature Layer
start_date_and_time

The date and time from which sun positions will be determined. Both a date and a time must be provided, and only the times when the sun is above the horizon will produce an output shadow volume.

Date
out_feature_class

The multipatch feature class that will store the resulting shadow volumes.

Feature Class
adjusted_for_dst
(Optional)

Specifies whether the time value will be adjusted for daylight saving time (DST).

  • ADJUSTED_FOR_DST—The time value will be adjusted for DST.
  • NOT_ADJUSTED_FOR_DST—The time value will not be adjusted for DST. This is the default.
Boolean
time_zone
(Optional)

The time zone in which the participating input is located. The default setting is the time zone to which the operating system is set.

  • UTC—The time zone will be UTC.
  • Dateline_Standard_Time—The time zone will be Dateline Standard Time (UTC-12:00).
  • UTC-11—The time zone will be UTC-11 (UTC-11:00).
  • Aleutian_Standard_Time—The time zone will be Aleutian Standard Time (UTC-10:00).
  • Hawaiian_Standard_Time—The time zone will be Hawaiian Standard Time (UTC-10:00).
  • Marquesas_Standard_Time—The time zone will be Marquesas Standard Time (UTC-09:30).
  • Alaskan_Standard_Time—The time zone will be Alaskan Standard Time (UTC-09:00).
  • UTC-09—The time zone will be UTC-09 (UTC-09:00).
  • Pacific_Standard_Time_(Mexico)—The time zone will be Pacific Standard Time (Mexico) (UTC-08:00).
  • UTC-08—The time zone will be UTC-08 (UTC-08:00).
  • Pacific_Standard_Time—The time zone will be Pacific Standard Time (UTC-08:00).
  • US_Mountain_Standard_Time—The time zone will be US Mountain Standard Time (UTC-07:00).
  • Mountain_Standard_Time_(Mexico)—The time zone will be Mountain Standard Time (Mexico) (UTC-07:00).
  • Mountain_Standard_Time—The time zone will be Mountain Standard Time (UTC-07:00).
  • Yukon_Standard_Time—The time zone will be Yukon Standard Time (UTC-07:00).
  • Central_America_Standard_Time—The time zone will be Central America Standard Time (UTC-06:00).
  • Central_Standard_Time—The time zone will be Central Standard Time (UTC-06:00).
  • Easter_Island_Standard_Time—The time zone will be Easter Island Standard Time (UTC-06:00).
  • Central_Standard_Time_(Mexico)—The time zone will be Central Standard Time (Mexico) (UTC-06:00).
  • Canada_Central_Standard_Time—The time zone will be Canada Central Standard Time (UTC-06:00).
  • SA_Pacific_Standard_Time—The time zone will be SA Pacific Standard Time (UTC-05:00).
  • Eastern_Standard_Time_(Mexico)—The time zone will be Eastern Standard Time (Mexico) (UTC-05:00).
  • Eastern_Standard_Time—The time zone will be Eastern Standard Time (UTC-05:00).
  • Haiti_Standard_Time—The time zone will be Haiti Standard Time (UTC-05:00).
  • Cuba_Standard_Time—The time zone will be Cuba Standard Time (UTC-05:00).
  • US_Eastern_Standard_Time—The time zone will be US Eastern Standard Time (UTC-05:00).
  • Turks_And_Caicos_Standard_Time—The time zone will be Turks And Caicos Standard Time (UTC-04:00).
  • Paraguay_Standard_Time—The time zone will be Paraguay Standard Time (UTC-04:00).
  • Atlantic_Standard_Time—The time zone will be Atlantic Standard Time (UTC-04:00).
  • Venezuela_Standard_Time—The time zone will be Venezuela Standard Time (UTC-04:00).
  • Central_Brazilian_Standard_Time—The time zone will be Central Brazilian Standard Time (UTC-04:00).
  • SA_Western_Standard_Time—The time zone will be SA Western Standard Time (UTC-04:00).
  • Pacific_SA_Standard_Time—The time zone will be Pacific SA Standard Time (UTC-04:00).
  • Newfoundland_Standard_Time—The time zone will be Newfoundland Standard Time (UTC-03:30).
  • Tocantins_Standard_Time—The time zone will be Tocantins Standard Time (UTC-03:00).
  • E._South_America_Standard_Time—The time zone will be E. South America Standard Time (UTC-03:00).
  • SA_Eastern_Standard_Time—The time zone will be SA Eastern Standard Time (UTC-03:00).
  • Argentina_Standard_Time—The time zone will be Argentina Standard Time (UTC-03:00).
  • Greenland_Standard_Time—The time zone will be Greenland Standard Time (UTC-03:00).
  • Montevideo_Standard_Time—The time zone will be Montevideo Standard Time (UTC-03:00).
  • Magallanes_Standard_Time—The time zone will be Magallanes Standard Time (UTC-03:00).
  • Saint_Pierre_Standard_Time—The time zone will be Saint Pierre Standard Time (UTC-03:00).
  • Bahia_Standard_Time—The time zone will be Bahia Standard Time (UTC-03:00).
  • UTC-02—The time zone will be UTC-02 (UTC-02:00).
  • Mid-Atlantic_Standard_Time—The time zone will be Mid-Atlantic Standard Time (UTC-02:00).
  • Azores_Standard_Time—The time zone will be Azores Standard Time (UTC-01:00).
  • Cape_Verde_Standard_Time—The time zone will be Cape Verde Standard Time (UTC-01:00).
  • GMT_Standard_Time—The time zone will be GMT Standard Time (UTC+00:00).
  • Greenwich_Standard_Time—The time zone will be Greenwich Standard Time (UTC+00:00).
  • Sao_Tome_Standard_Time—The time zone will be Sao Tome Standard Time (UTC+00:00).
  • Morocco_Standard_Time—The time zone will be Morocco Standard Time (UTC+00:00).
  • W._Europe_Standard_Time—The time zone will be W. Europe Standard Time (UTC+01:00).
  • Central_Europe_Standard_Time—The time zone will be Central Europe Standard Time (UTC+01:00).
  • Romance_Standard_Time—The time zone will be Romance Standard Time (UTC+01:00).
  • Central_European_Standard_Time—The time zone will be Central European Standard Time (UTC+01:00).
  • W._Central_Africa_Standard_Time—The time zone will be W. Central Africa Standard Time (UTC+01:00).
  • Jordan_Standard_Time—The time zone will be Jordan Standard Time (UTC+02:00).
  • GTB_Standard_Time—The time zone will be GTB Standard Time (UTC+02:00).
  • Middle_East_Standard_Time—The time zone will be Middle East Standard Time (UTC+02:00).
  • Egypt_Standard_Time—The time zone will be Egypt Standard Time (UTC+02:00).
  • E._Europe_Standard_Time—The time zone will be E. Europe Standard Time (UTC+02:00).
  • Syria_Standard_Time—The time zone will be Syria Standard Time (UTC+02:00).
  • West_Bank_Standard_Time—The time zone will be West Bank Standard Time (UTC+02:00).
  • South_Africa_Standard_Time—The time zone will be South Africa Standard Time (UTC+02:00).
  • FLE_Standard_Time—The time zone will be FLE Standard Time (UTC+02:00).
  • Israel_Standard_Time—The time zone will be Israel Standard (UTC+02:00).
  • South_Sudan_Standard_Time—The time zone will be South Sudan Standard Time (UTC+02:00).
  • Kaliningrad_Standard_Time—The time zone will be Kaliningrad Standard Time (UTC+02:00).
  • Sudan_Standard_Time—The time zone will be Sudan Standard Time (UTC+02:00).
  • Libya_Standard_Time—The time zone will be Libya Standard Time (UTC+02:00).
  • Namibia_Standard_Time—The time zone will be Namibia Standard Time (UTC+02:00).
  • Arabic_Standard_Time—The time zone will be Arabic Standard Time (UTC+03:00).
  • Turkey_Standard_Time—The time zone will be Turkey Standard Time (UTC+03:00).
  • Arab_Standard_Time—The time zone will be Arab Standard Time (UTC+03:00).
  • Belarus_Standard_Time—The time zone will be Belarus Standard Time (UTC+03:00).
  • Russian_Standard_Time—The time zone will be Russian Standard Time (UTC+03:00).
  • E._Africa_Standard_Time—The time zone will be E. Africa Standard Time (UTC+03:00).
  • Volgograd_Standard_Time—The time zone will be Volgograd Standard Time (UTC+03:00).
  • Iran_Standard_Time—The time zone will be Iran Standard Time (UTC+03:30).
  • Arabian_Standard_Time—The time zone will be Arabian Standard Time (UTC+04:00).
  • Astrakhan_Standard_Time—The time zone will be Astrakhan Standard Time (UTC+04:00).
  • Azerbaijan_Standard_Time—The time zone will be Azerbaijan Standard Time (UTC+04:00).
  • Russia_Time_Zone_3—The time zone will be Russia Time Zone 3 (UTC+04:00).
  • Mauritius_Standard_Time—The time zone will be Mauritius Standard Time (UTC+04:00).
  • Saratov_Standard_Time—The time zone will be Saratov Standard Time (UTC+04:00).
  • Georgian_Standard_Time—The time zone will be Georgian Standard Time (UTC+04:00).
  • Caucasus_Standard_Time—The time zone will be Caucasus Standard Time (UTC+04:00).
  • Afghanistan_Standard_Time—The time zone will be Afghanistan Standard Time (UTC+04:30).
  • West_Asia_Standard_Time—The time zone will be West Asia Standard Time (UTC+05:00).
  • Ekaterinburg_Standard_Time—The time zone will be Ekaterinburg Standard Time (UTC+05:00).
  • Pakistan_Standard_Time—The time zone will be Pakistan Standard Time (UTC+05:00).
  • Qyzylorda_Standard_Time—The time zone will be Qyzylorda Standard Time (UTC+05:00).
  • India_Standard_Time—The time zone will be India Standard Time (UTC+05:30).
  • Sri_Lanka_Standard_Time—The time zone will be Sri Lanka Standard Time (UTC+05:30).
  • Nepal_Standard_Time—The time zone will be Nepal Standard Time (UTC+05:45).
  • Central_Asia_Standard_Time—The time zone will be Central Asia Standard Time (UTC+06:00).
  • Bangladesh_Standard_Time—The time zone will be Bangladesh Standard Time (UTC+06:00).
  • Omsk_Standard_Time—The time zone will be Omsk Standard Time (UTC+06:00).
  • Myanmar_Standard_Time—The time zone will be Myanmar Standard Time (UTC+06:30).
  • SE_Asia_Standard_Time—The time zone will be SE Asia Standard Time (UTC+07:00).
  • Altai_Standard_Time—The time zone will be Altai Standard Time (UTC+07:00).
  • W._Mongolia_Standard_Time—The time zone will be W. Mongolia Standard Time (UTC+07:00).
  • North_Asia_Standard_Time—The time zone will be North Asia Standard Time (UTC+07:00).
  • N._Central_Asia_Standard_Time—The time zone will be N. Central Asia Standard Time (UTC+07:00).
  • Tomsk_Standard_Time—The time zone will be Tomsk Standard Time (UTC+07:00).
  • China_Standard_Time—The time zone will be China Standard Time (UTC+08:00).
  • North_Asia_East_Standard_Time—The time zone will be North Asia East Standard Time (UTC+08:00).
  • Singapore_Standard_Time—The time zone will be Singapore Standard Time (UTC+08:00).
  • W._Australia_Standard_Time—The time zone will be W. Australia Standard Time (UTC+08:00).
  • Taipei_Standard_Time—The time zone will be Taipei Standard Time (UTC+08:00).
  • Ulaanbaatar_Standard_Time—The time zone will be Ulaanbaatar Standard Time (UTC+08:00).
  • Aus_Central_W._Standard_Time—The time zone will be Aus Central W. Standard Time (UTC+08:45).
  • Transbaikal_Standard_Time—The time zone will be Transbaikal Standard Time (UTC+09:00).
  • Tokyo_Standard_Time—The time zone will be Tokyo Standard Time (UTC+09:00).
  • North_Korea_Standard_Time—The time zone will be North Korea Standard Time (UTC+09:00).
  • Korea_Standard_Time—The time zone will be Korea Standard Time (UTC+09:00).
  • Yakutsk_Standard_Time—The time zone will be Yakutsk Standard Time (UTC+09:00).
  • Cen._Australia_Standard_Time—The time zone will be Cen. Australia Standard Time (UTC+09:30).
  • AUS_Central_Standard_Time—The time zone will be AUS Central Standard Time (UTC+09:30).
  • E._Australia_Standard_Time—The time zone will be E. Australia Standard Time (UTC+10:00).
  • AUS_Eastern_Standard_Time—The time zone will be AUS Eastern Standard Time (UTC+10:00).
  • West_Pacific_Standard_Time—The time zone will be West Pacific Standard Time (UTC+10:00).
  • Tasmania_Standard_Time—The time zone will be Tasmania Standard Time (UTC+10:00).
  • Vladivostok_Standard_Time—The time zone will be Vladivostok Standard Time (UTC+10:00).
  • Lord_Howe_Standard_Time—The time zone will be Lord Howe Standard Time (UTC+10:30).
  • Bougainville_Standard_Time—The time zone will be Bougainville Standard Time (UTC+11:00).
  • Russia_Time_Zone_10—The time zone will be Russia Time Zone 10 (UTC+11:00).
  • Magadan_Standard_Time—The time zone will be Magadan Standard Time (UTC+11:00).
  • Norfolk_Standard_Time—The time zone will be Norfolk Standard Time (UTC+11:00).
  • Sakhalin_Standard_Time—The time zone will be Sakhalin Standard Time (UTC+11:00).
  • Central_Pacific_Standard_Time—The time zone will be Central Pacific Standard Time (UTC+11:00).
  • Russia_Time_Zone_11—The time zone will be Russia Time Zone 11 (UTC+11:00).
  • New_Zealand_Standard_Time—The time zone will be New Zealand Standard Time (UTC+12:00).
  • UTC+12—The time zone will be UTC+12 (UTC+12:00).
  • Fiji_Standard_Time—The time zone will be Fiji Standard Time (UTC+12:00).
  • Kamchatka_Standard_Time—The time zone will be Kamchatka Standard Time (UTC+12:00).
  • Chatham_Islands_Standard_Time—The time zone will be Chatham Islands Standard Time (UTC+12:45).
  • UTC+13—The time zone will be UTC+13 (UTC+13:00).
  • Tonga_Standard_Time—The time zone will be Tonga Standard Time (UTC+13:00).
  • Samoa_Standard_Time—The time zone will be Samoa Standard Time (UTC+13:00).
  • Line_Islands_Standard_Time—The time zone will be Line Islands Standard Time (UTC+14:00).
String
end_date_and_time
(Optional)

The final date and time that will be used for calculating sun position. A time can be specified without a date, in which case the end date will be the same as the start date. If a date is provided, a time must also be given. Only the times at which the sun is above the horizon will produce an output shadow volume.

Date
iteration_interval
(Optional)

The value that will be used to define the iteration of time from the start date.

Double
iteration_unit
(Optional)

Specifies the unit that will define the iteration value applied to the start_date_and_time parameter value.

  • DAYS—The iteration value will represent days. This is the default.
  • HOURS—The iteration value will represent one or more hours.
  • MINUTES—The iteration value will represent one or more minutes.
String

Code sample

SunShadowVolume example 1 (Python window)

The following sample demonstrates the use of this tool in the Python window:

arcpy.env.workspace = 'C:/data'
arcpy.ddd.SunShadowVolume('sample.fgdb/buildings', 
                         start_date_and_time='12/25/2011 10:00 AM', 
                         out_feature_class='shadows_dec25.shp', 
                         adjusted_for_dst='ADJUSTED_FOR_DST', 
                         time_zone='Eastern_Standard_Time',
                         end_date_and_time='12/25/2011 3:00 PM', 
                         iteration_interval='HOURS', iteration_unit=1)
SunShadowVolume example 2 (stand-alone script)

The following sample demonstrates the use of this tool in a stand-alone Python script:

'''*********************************************************************
Name: Model Shadows For GeoVRML Models
Description: Creates a model of the shadows cast by GeoVRML models
             imported to a multipatch feature class for a range of dates
             and times. A range of times from the start time and end
             time can also be specified by setting the EnforceTimes
             Boolean to True. This sample is designed to be used in a
             script tool.
*********************************************************************'''
# Import system modules
import arcpy
from datetime import datetime, time, timedelta

#*************************  Script Variables  **************************
inFiles = arcpy.GetParameterAsText(0) # list of input features
spatialRef = arcpy.GetParameterAsText(1) # list of GeoVRML files
outFC = arcpy.GetParameterAsText(2) # multipatch from 3D files
inTimeZone = arcpy.GetParameterAsText(3) # time zone
startDate = arcpy.GetParameter(4) # starting date as datetime
endDate = arcpy.GetParameter(5) # ending date as datetime
dayInterval = arcpy.GetParameter(6) # day interval as long (0-365)
minInterval = arcpy.GetParameter(7) # minute interval as long (0-60)
enforceTime = arcpy.GetParameter(8) # minute interval as Boolean
outShadows = arcpy.GetParameterAsText(9) # output shadow models
outIntersection = arcpy.GetParameterAsText(10) # shadow & bldg intersection

# Function to find all possible date/time intervals for shadow modelling
def time_list():
    dt_result = [startDate]
    if dayInterval:
        if endDate: #Defines behavior when end date is supplied
            while startDate < endDate:
                startDate += timedelta(days=dayInterval)
                dt_result.append(startDate)
            dt_result.append(endDate)
        else: # Behavior when end date is not given
            daymonthyear = datetime.date(startDate)
            while startDate <= datetime(daymonthyear.year, 12, 31, 23, 59):
                startDate += timedelta(days=dayInterval)
                dt_result.append(startDate)
    return dt_result


importFC = arcpy.CreateUniqueName('geovrml_import', 'in_memory')

# Import GeoVRML files to in-memory feature
arcpy.ddd.Import3DFiles(inFiles, importFC, 'ONE_FILE_ONE_FEATURE',
                        spatialRef, 'Z_IS_UP', 'wrl')

# Ensure that building models are closed
arcpy.ddd.EncloseMultiPatch(importFC, outFC, 0.05)

# Discard in-memory feature
arcpy.management.Delete(importFC)
dt_result = time_list()
for dt in dt_result:
    if dt == dt_result[0]:
        shadows = outShadows
    else:
        shadows = arcpy.CreateUniqueName('shadow', 'in_memory')
    arcpy.ddd.SunShadowVolume(outFC, dt, shadows, 'ADJUST_FOR_DST',
                              inTimeZone, '', minInterval, 'MINUTES')
    if dt is not dt_result[0]:
        arcpy.management.Append(shadows, outShadows)
        arcpy.management.Delete(shadows)
arcpy.ddd.Intersect3D(outFC, outIntersection, outShadows, 'SOLID')

Licensing information

  • Basic: Requires 3D Analyst
  • Standard: Requires 3D Analyst
  • Advanced: Requires 3D Analyst

Related topics