# Project Config ## ProjectConfigModel *dsgrid.config.project_config.ProjectConfigModel* Represents project configurations ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `id` | `int` \| None | `None` | Registry database ID | | `version` | `str` \| None | `None` | Version, generated by dsgrid | | `project_id` | `str` | *(required)* | A unique project identifier that is project-specific (e.g., 'standard-scenarios-2021'). | | `name` | `str` | *(required)* | A project name to accompany the ID. | | `description` | `str` | *(required)* | Detailed project description. | | `status` | [ProjectRegistryStatus](enums.md#projectregistrystatus) | `"Initial Registration"` | project registry status | | `datasets` | list[[InputDatasetModel](project_model.md#inputdatasetmodel)] | *(required)* | List of input datasets for the project. | | `dimensions` | [DimensionsModel](project_model.md#dimensionsmodel) | *(required)* | List of `base` and `supplemental` dimensions. | | `dimension_mappings` | [DimensionMappingsModel](project_model.md#dimensionmappingsmodel) | `base_to_supplemental_references=[] dataset_to_project={}` | List of project mappings. Initialized with base-to-base and base-to-supplemental mappings. dataset-to-project mappings are added by dsgrid as datasets get registered with the project. |
### Validators
| Name | Applies To | Description | |------|------------|-------------| | `check_project_id_handle` | `check_project_id_handle` | Check for valid characters in project id |
--- ## DatasetBaseDimensionNamesModel *dsgrid.config.project_config.DatasetBaseDimensionNamesModel* Defines the query names for project base dimensions to which datasets will be mapped. This is important for cases where a project has multiple base dimensions of the same type. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `geography` | `str` \| None | `None` | | | `metric` | `str` \| None | `None` | | | `model_year` | `str` \| None | `None` | | | `scenario` | `str` \| None | `None` | | | `sector` | `str` \| None | `None` | | | `subsector` | `str` \| None | `None` | | | `time` | `str` \| None | `None` | | | `weather_year` | `str` \| None | `None` | |
--- ## DaylightSavingAdjustmentModel *dsgrid.dimension.time.DaylightSavingAdjustmentModel* Defines how to drop and add data along with timestamps to convert standard time load profiles to clock time ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `spring_forward_hour` | [DaylightSavingSpringForwardType](enums.md#daylightsavingspringforwardtype) | `DaylightSavingSpringForwardType.NONE` | Data adjustment for spring forward hour (a 2AM in March) | | `fall_back_hour` | [DaylightSavingFallBackType](enums.md#daylightsavingfallbacktype) | `DaylightSavingFallBackType.NONE` | Data adjustment for spring forward hour (a 2AM in November) |
--- ## DimensionMappingsModel *dsgrid.config.project_config.DimensionMappingsModel* Defines all dimension mappings associated with a dsgrid project, including base-to-supplemental mappings and dataset-to-project mappings. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `base_to_supplemental_references` | list[[DimensionMappingReferenceModel](dimension_mapping_model.md#dimensionmappingreferencemodel)] | `[]` | Base dimension to supplemental dimension mappings (e.g., county-to-state) used to support various queries and dimension transformations. | | `dataset_to_project` | dict[`str`, list[[DimensionMappingReferenceModel](dimension_mapping_model.md#dimensionmappingreferencemodel)]] | `{}` | Dataset-to-project mappings map dataset dimensions to project dimensions. Once a dataset is submitted to a project, dsgrid adds the dataset-to-project mappings to the project config. Some projects may not have any dataset-to-project mappings. Dataset-to-project mappings are only supplied if a dataset's dimensions do not match the project's dimension. |
--- ## DimensionsModel *dsgrid.config.project_config.DimensionsModel* Contains dimensions defined by a project ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `base_dimensions` | list[[DimensionModel](dimension_model.md#dimensionmodel) \| [DateTimeDimensionModel](dimension_model.md#datetimedimensionmodel) \| [AnnualTimeDimensionModel](dimension_model.md#annualtimedimensionmodel) \| [RepresentativePeriodTimeDimensionModel](dimension_model.md#representativeperiodtimedimensionmodel) \| [DatetimeExternalTimeZoneDimensionModel](dimension_model.md#datetimeexternaltimezonedimensionmodel) \| [IndexTimeDimensionModel](dimension_model.md#indextimedimensionmodel) \| [NoOpTimeDimensionModel](dimension_model.md#nooptimedimensionmodel)] | `[]` | List of dimensions for a project's base dimensions. They will be automatically registered during project registration and then converted to base_dimension_references. | | `base_dimension_references` | list[[DimensionReferenceModel](dimension_model.md#dimensionreferencemodel)] | `[]` | List of registry references (``DimensionReferenceModel``) for a project's base dimensions. | | `subset_dimensions` | list[[SubsetDimensionGroupModel](project_model.md#subsetdimensiongroupmodel)] | `[]` | List of subset dimension groups. Subset dimension groups are used to specify subsets of base dimension records that a dataset must support, dimensionality of derived datasets, and query filters. Subset dimension groups also define a new supplemental dimension whose records correspond to the table columns/subset selectors, such that defining a subset dimension group can be a convenient way to define reporting at a different level of aggregation as compared to the project's base dimensions. | | `supplemental_dimensions` | list[[SupplementalDimensionModel](project_model.md#supplementaldimensionmodel)] | `[]` | List of supplemental dimensions. They will be automatically registered. during project registration and then converted to supplemental_dimension_references. Supplemental dimensions are used to support additional querying and transformations (e.g., aggregations, disgaggregations, filtering, scaling, etc.) of the project's base data. | | `supplemental_dimension_references` | list[[DimensionReferenceModel](dimension_model.md#dimensionreferencemodel)] | `[]` | List of registry references for a project's supplemental dimensions. Dimensions references of the same :class:`dsgrid.dimensions.base_model.DimensionType` are allowed for supplemental dimension references (i.e., multiple `Geography` types are allowed). |
### Validators
| Name | Applies To | Description | |------|------------|-------------| | `check_files` | `check_files` | Validate dimension files are unique across all dimensions | | `check_names` | `check_names` | Validate dimension names are unique across all dimensions. | | `check_time_zone` | `check_time_zone` | Validate the time zone column in geography records. | | `check_subset_dimensions` | `check_subset_dimensions` | Check that each subset dimension has a unique name. | | `check_dimensions` | `*(model)*` | Validate that the dimensions are complete and consistent. | | `pre_check_values` | `*(model)*` | Checks that base dimensions are defined. | | `check_dimension_names` | `*(model)*` | Check that all dimension query names are unique. |
--- ## InputDatasetModel *dsgrid.config.project_config.InputDatasetModel* Defines an input dataset for the project config. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `dataset_id` | `str` | *(required)* | Unique dataset identifier. | | `dataset_type` | [InputDatasetType](enums.md#inputdatasettype) | *(required)* | Dataset type. | | `version` | `str` \| None | `None` | Version of the registered dataset. The version specification is optional. If no version is supplied, then the latest version in the registry is assumed. The version string must be in semver format (e.g., '1.0.0') and it must be a valid/existing version in the registry. | | `required_dimensions` | [RequiredDimensionsModel](project_model.md#requireddimensionsmodel) | `single_dimensional=RequiredDimensionRecordsModel(geography=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=['__all__'], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]), metric=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=['__all__'], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]), model_year=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=['__all__'], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]), scenario=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=['__all__'], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]), sector=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=['__all__'], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]), subsector=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=['__all__'], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]), weather_year=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=['__all__'], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[])) multi_dimensional=[]` | Defines required record IDs that must exist for each dimension. | | `mapping_references` | list[[DimensionMappingReferenceModel](dimension_mapping_model.md#dimensionmappingreferencemodel)] | `[]` | Defines how to map the dataset dimensions to the project. Auto-populated during submission. | | `base_dimension_names` | [DatasetBaseDimensionNamesModel](project_model.md#datasetbasedimensionnamesmodel) | `geography=None metric=None model_year=None scenario=None sector=None subsector=None time=None weather_year=None` | Defines the project base dimensions to which the dataset will map itself. Auto-populated during submission. | | `status` | [DatasetRegistryStatus](enums.md#datasetregistrystatus) | `"Unregistered"` | Registration status of the dataset, added by dsgrid. | | `wrap_time_allowed` | `bool` | `False` | Whether to allow dataset time to be wrapped to project time if different | | `time_based_data_adjustment` | [TimeBasedDataAdjustmentModel](project_model.md#timebaseddataadjustmentmodel) | `leap_day_adjustment= daylight_saving_adjustment=DaylightSavingAdjustmentModel(spring_forward_hour=, fall_back_hour=)` | Defines how the rest of the dataframe is adjusted with respect to time. E.g., when drop associated data when dropping a leap day timestamp. |
### Validators
| Name | Applies To | Description | |------|------------|-------------| | `check_data_adjustment` | `check_data_adjustment` | Check daylight saving adjustment |
--- ## MappingTableByNameModel *dsgrid.config.mapping_tables.MappingTableByNameModel* Attributes for a dimension mapping table for soon-to-be registered dimensions by name. This will be converted to a MappingTableModel as soon as the dimensions are registered. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `mapping_type` | [DimensionMappingType](enums.md#dimensionmappingtype) | `"many_to_one_aggregation"` | Type/purpose of the dimension mapping | | `archetype` | [DimensionMappingArchetype](enums.md#dimensionmappingarchetype) \| None | `None` | Dimension mapping archetype, determined based on mapping_type | | `description` | `str` \| None | `None` | Description of dimension mapping | | `from_fraction_tolerance` | `float` | `1e-06` | Tolerance value to apply to the from_fraction column | | `to_fraction_tolerance` | `float` | `1e-06` | Tolerance value to apply to the to_fraction column | | `project_base_dimension_name` | `str` \| None | `None` | Name of the base dimension for which the mapping is being registered. This is required in cases where the project has multiple base dimensions of the same type. If None, there must only be one base dimension of this type in the project. | | `filename` | `str` | *(required)* | Filename containing association table records. |
--- ## RequiredBaseDimensionModel *dsgrid.config.project_config.RequiredBaseDimensionModel* Base data model for all dsgrid data models ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `record_ids` | list[`str`] | `[]` | | | `dimension_name` | `str` \| None | `None` | Identifies which base dimension contains the record IDs. Required if there is more than one base dimension for a given dimension type. |
--- ## RequiredDimensionRecordsByTypeModel *dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel* Base data model for all dsgrid data models ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `base` | [RequiredBaseDimensionModel](project_model.md#requiredbasedimensionmodel) | `record_ids=[] dimension_name=None` | | | `base_missing` | [RequiredBaseDimensionModel](project_model.md#requiredbasedimensionmodel) | `record_ids=[] dimension_name=None` | | | `subset` | list[[RequiredSubsetDimensionRecordsModel](project_model.md#requiredsubsetdimensionrecordsmodel)] | `[]` | |
### Validators
| Name | Applies To | Description | |------|------------|-------------| | `handle_legacy_format` | `*(model)*` | No description | | `check_base` | `*(model)*` | No description |
--- ## RequiredDimensionRecordsModel *dsgrid.config.project_config.RequiredDimensionRecordsModel* Base data model for all dsgrid data models ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `geography` | [RequiredDimensionRecordsByTypeModel](project_model.md#requireddimensionrecordsbytypemodel) | `base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) subset=[]` | | | `metric` | [RequiredDimensionRecordsByTypeModel](project_model.md#requireddimensionrecordsbytypemodel) | `base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) subset=[]` | | | `model_year` | [RequiredDimensionRecordsByTypeModel](project_model.md#requireddimensionrecordsbytypemodel) | `base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) subset=[]` | | | `scenario` | [RequiredDimensionRecordsByTypeModel](project_model.md#requireddimensionrecordsbytypemodel) | `base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) subset=[]` | | | `sector` | [RequiredDimensionRecordsByTypeModel](project_model.md#requireddimensionrecordsbytypemodel) | `base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) subset=[]` | | | `subsector` | [RequiredDimensionRecordsByTypeModel](project_model.md#requireddimensionrecordsbytypemodel) | `base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) subset=[]` | | | `weather_year` | [RequiredDimensionRecordsByTypeModel](project_model.md#requireddimensionrecordsbytypemodel) | `base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None) subset=[]` | |
--- ## RequiredDimensionsModel *dsgrid.config.project_config.RequiredDimensionsModel* Defines required record IDs that must exist for each dimension in a dataset. Record IDs can reside in the project's base or subset dimensions. Requirements can be specified for a single dimension or a combination of dimensions. For example, if a project includes commercial, residential, and transportation sectors but the dataset has only transporation sector records, it should specify a single_dimensional requirement that is a subset of of the project's base dimension. :: {"single_dimensional": "sector": {"base": {"record_ids": ["transportation"]}}} If a dataset's requirements span multiple dimensions, such as if it does not have some metric records for some geography records, then a multi_dimensional requirement should be specified. (By default, a full cross join is assumed to be present.) :: {"multi_dimensional": { "geography": {"base": {"record_ids": ["12345"]}} "metric": {"base": {"record_ids": ["electricity_cooling"]}} } } If a dataset specifies a dimension type within a multi_dimensional section and wants to use all records from a project base dimension, it can specify ``base.record_ids = ["__all__"]`` as a shorthand notation. Requirements for a dimension cannot be defined in both single_dimensional and multi_dimensional sections. If no records are listed for a dimension then all project base records are required. It might be easier for a dataset to specify what it does not have rather than what it does have. In that case, it is recommended to use the RequiredDimensionRecordsModel.base_missing field. dsgrid will compute the difference of the base dimension records and the base_missing records to determine the dataset's required records. If a project has multiple base dimensions of the same type, the RequiredDimensionRecordsModel.dimension_name must be specified to identify the base dimension that contains the record IDs. If a dataset contains a subset of project base dimension records that are defined in the project's subset dimensions, it is recommended to use that specification. dsgrid will substitute base records for mapped subset records at runtime. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `single_dimensional` | [RequiredDimensionRecordsModel](project_model.md#requireddimensionrecordsmodel) | `geography=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]) metric=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]) model_year=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]) scenario=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]) sector=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]) subsector=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[]) weather_year=RequiredDimensionRecordsByTypeModel(base=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), base_missing=RequiredBaseDimensionModel(record_ids=[], dimension_name=None), subset=[])` | Required records for a single dimension. | | `multi_dimensional` | list[[RequiredDimensionRecordsModel](project_model.md#requireddimensionrecordsmodel)] | `[]` | Required records for a combination of dimensions. For example, there may be a dataset requirement for only one subsector for a given sector instead of a cross product. |
### Validators
| Name | Applies To | Description | |------|------------|-------------| | `check_for_duplicates` | `*(model)*` | 1. Ensure that the same dimension does not have requirements in both single and multi |
--- ## RequiredSubsetDimensionRecordsModel *dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel* Base data model for all dsgrid data models ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `name` | `str` | *(required)* | Name of a subset dimension | | `selectors` | list[`str`] | *(required)* | One or more selectors in the subset dimension |
--- ## SubsetDimensionGroupModel *dsgrid.config.project_config.SubsetDimensionGroupModel* Defines one or more subset dimension selectors for a dimension type. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `name` | `str` | *(required)* | | | `description` | `str` | *(required)* | | | `dimension_type` | [DimensionType](enums.md#dimensiontype) | *(required)* | Type of the dimension | | `filename` | `str` \| None | `None` | Filename containing dimension records. Only populated for initial registration. Each selector's records are stored as JSON objects in the dsgrid registry. | | `selectors` | list[[SubsetDimensionSelectorModel](project_model.md#subsetdimensionselectormodel)] | *(required)* | Dimension selectors | | `selector_references` | list[[DimensionReferenceModel](dimension_model.md#dimensionreferencemodel)] | `[]` | References to the subset dimensions generated by dsgrid during registration. | | `create_supplemental_dimension` | `bool` | `True` | Auto-generate supplemental dimensions in order to allow aggregrations on the subsets. | | `base_dimension_name` | `str` \| None | `None` | Name of base dimension for the supplemental dimension mapping, if create_supplemental_dimension is true. Required if there are multiple base dimensions for this type. | | `record_ids` | `set` | `set()` | |
### Validators
| Name | Applies To | Description | |------|------------|-------------| | `check_selectors` | `check_selectors` | Check that the selectors are defined consistently. | | `load_records` | `*(model)*` | Load the records for each subset dimension selector. |
--- ## SubsetDimensionSelectorModel *dsgrid.config.project_config.SubsetDimensionSelectorModel* Defines a subset dimension selector inclusive of the subset's records and information required to define the selector as a record within the supplemental dimension defined by the subset dimension group. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `name` | `str` | *(required)* | | | `description` | `str` | *(required)* | | | `column_values` | dict[`str`, `str`] | `{}` | Optional columns to populate in the subset dimension group's supplemental dimension records table. For example, if each selector in the group defines the end uses for one sector (e.g., commercial_end_uses, transportation_end_uses), the supplemental dimension records table needs to define the 'fuel_id' and 'unit' fields of the EnergyEndUse data model. | | `records` | list[`str`] | `[]` | Table of values populated by reading the parent subset dimension records file. Should not be populated by the user. |
--- ## SupplementalDimensionModel *dsgrid.config.supplemental_dimension.SupplementalDimensionModel* Defines a supplemental dimension. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `id` | `int` \| None | `None` | Registry database ID | | `version` | `str` \| None | `None` | Version, generated by dsgrid | | `name` | `str` | *(required)* | Dimension name | | `dimension_type` | [DimensionType](enums.md#dimensiontype) | *(required)* | Type of the dimension | | `dimension_id` | `str` \| None | `None` | Unique identifier, generated by dsgrid | | `module` | `str` | `"dsgrid.dimension.standard"` | Python module with the dimension class | | `class_name` | `str` | *(required)* | Dimension record model class name. The dimension class defines the expected and allowable fields (and their data types) for the dimension records file.All dimension records must have a 'id' and 'name' field.Some dimension classes support additional fields that can be used for mapping, querying, display, etc.dsgrid in online-mode only supports dimension classes defined in the :mod:`dsgrid.dimension.standard` module. If dsgrid does not currently support a dimension class that you require, please contact the dsgrid-coordination team to request a new class feature | | `cls` | `Any` | `None` | Dimension record model class | | `description` | `str` \| None | `None` | A description of the dimension records that is helpful, memorable, and identifiable | | `filename` | `str` \| None | `None` | Filename containing dimension records. Only assigned for user input and output purposes. The registry database stores records in the dimension JSON document. | | `file_hash` | `str` \| None | `None` | Hash of the contents of the file | | `records` | `list` | `[]` | Dimension records that can either be loaded from filename at runtime or provided directly. Example of records provided directly: records: [ {id: 'scenario_1', name: 'Scenario 1'}, {id: 'scenario_2', name: 'Scenario 2'}, ], | | `mapping` | [MappingTableByNameModel](project_model.md#mappingtablebynamemodel) | *(required)* | Defines how the supplemental dimension will be mapped to the project's base dimension. |
### Validators
| Name | Applies To | Description | |------|------------|-------------| | `check_name` | `check_name` | No description | | `check_module` | `check_module` | No description | | `get_dimension_class_name` | `get_dimension_class_name` | Set class_name based on inputs. | | `get_dimension_class` | `get_dimension_class` | No description | | `check_file` | `check_file` | Validate that dimension file exists and has no errors | | `compute_file_hash` | `compute_file_hash` | No description | | `add_records` | `add_records` | Add records from the file. |
--- ## TimeBasedDataAdjustmentModel *dsgrid.dimension.time.TimeBasedDataAdjustmentModel* Defines how data needs to be adjusted with respect to time. For leap day adjustment, up to one full day of timestamps and data are dropped. For daylight savings, the dataframe is adjusted alongside the timestamps. This is useful when the load profiles are modeled in standard time and need to be converted to get clock time load profiles. ### Fields
| Name | Type | Default | Description | |------|------|---------|-------------| | `leap_day_adjustment` | [LeapDayAdjustmentType](enums.md#leapdayadjustmenttype) | `LeapDayAdjustmentType.NONE` | Leap day adjustment method applied to time data. The dsgrid default is None, i.e., no adjustment made to leap years. Adjustments are made to leap years only. | | `daylight_saving_adjustment` | [DaylightSavingAdjustmentModel](project_model.md#daylightsavingadjustmentmodel) | `spring_forward_hour= fall_back_hour=` | Daylight saving adjustment method applied to time data |