{"id":34996089,"url":"https://github.com/nrel-distribution-suites/ditto","last_synced_at":"2026-01-05T18:13:08.854Z","repository":{"id":237718595,"uuid":"785900840","full_name":"NREL-Distribution-Suites/ditto","owner":"NREL-Distribution-Suites","description":"DiTTo is the Distribution Transformation Tool. It is an open-source tool to convert and modify electrical distribution system models.","archived":false,"fork":false,"pushed_at":"2025-11-25T01:04:06.000Z","size":4355,"stargazers_count":2,"open_issues_count":7,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-28T11:32:54.062Z","etag":null,"topics":["cim","cyme","model-conversion","opendss","powerflow","synergi"],"latest_commit_sha":null,"homepage":"https://nrel-distribution-suites.github.io/ditto/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NREL-Distribution-Suites.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-12T21:43:40.000Z","updated_at":"2025-10-16T15:55:25.000Z","dependencies_parsed_at":"2024-05-13T20:26:10.914Z","dependency_job_id":"c1451d0c-54b4-4b2f-b634-3f036ffeac67","html_url":"https://github.com/NREL-Distribution-Suites/ditto","commit_stats":null,"previous_names":["nrel-distribution-suites/ditto"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/NREL-Distribution-Suites/ditto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NREL-Distribution-Suites%2Fditto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NREL-Distribution-Suites%2Fditto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NREL-Distribution-Suites%2Fditto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NREL-Distribution-Suites%2Fditto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NREL-Distribution-Suites","download_url":"https://codeload.github.com/NREL-Distribution-Suites/ditto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NREL-Distribution-Suites%2Fditto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28069217,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-27T02:00:05.897Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cim","cyme","model-conversion","opendss","powerflow","synergi"],"created_at":"2025-12-27T02:11:57.977Z","updated_at":"2025-12-27T02:11:59.153Z","avatar_url":"https://github.com/NREL-Distribution-Suites.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n# DiTTo\r\n\r\nDiTTo is the _Distribution Transformation Tool_. It is an open-source tool to convert and modify electrical distribution system models. The most common domain of electrical distribution systems is from substations to customers.\r\n\r\n## How it Works\r\nFlexible representations for power system components are defined in [Grid-Data-Models (GDM)](https://github.com/NREL-Distribution-Suites/grid-data-models) format. \r\nDiTTo implements a _many-to-one-to-many_ parsing framework, making it modular and robust. The [reader modules](https://github.com/NREL-Distribution-Suites/ditto/tree/main/src/ditto/readers) parse data files of distribution system format (e.g. OpenDSS) and create an object for each electrical component. These objects are stored in a [GDM DistributionSystem](https://github.com/NREL-Distribution-Suites/grid-data-models/blob/main/src/gdm/distribution/distribution_system.py) instance. The [writer modules](https://github.com/NREL-Distribution-Suites/ditto/tree/main/src/ditto/writers) are then used to export the data stored in memory to a selected output distribution system format (e.g. OpenDSS) which are written to disk.\r\n\r\nAdditional documentation is currently under development and will e made available soon.\r\n## Quick Start\r\n\r\n### Install DiTTo\r\n\r\n```bash\r\ngit clone https://github.com/NREL-Distribution-Suites/ditto.git\r\n```\r\n\r\nNavigate to the clone directory and use the following command to install\r\n\r\n```bash\r\npip install -e. \r\n```\r\n\r\n### Basic Usage\r\n\r\nThe most basic capability of DiTTo is converting a distribution system from one format to another.\r\nTo convert a cyme model represented in ASCII format with network.txt, equipment.txt and load.txt files, the following python script can be run to perform the conversion\r\n\r\n```python\r\nfrom ditto.readers.cim_iec_61968_13.reader import Reader\r\nfrom ditto.writers.opendss.write import Writer\r\n\r\ncim_reader = Reader(ieee13_node_xml_file)\r\ncim_reader.read()\r\nsystem = cim_reader.get_system()\r\nwriter = Writer(system)\r\nnew_dss_file = Path(__file__).parent / \"model\"\r\nwriter.write(output_path=new_dss_file, separate_substations=False, separate_feeders=False)\r\n\r\n```\r\n\r\nThe required input files for each reader format are defined in the folder of each reader\r\n\r\n## Contributing\r\nDiTTo is an open-source project and contributions are welcome! Either for a simple typo, a bugfix, or a new parser you want to integrate, feel free to contribute.\r\n\r\nTo contribute to Ditto in 3 steps:\r\n- Fork the repository (button in the upper right corner of the DiTTo GitHub page).\r\n- Create a feature branch on your local fork and implement your modifications there.\r\n- Once your work is ready to be shared, submit a Pull Request on the DiTTo GitHub page. See the official GitHub documentation on how to do that [here](https://help.github.com/articles/creating-a-pull-request-from-a-fork/)\r\n\r\n## Getting Help\r\n\r\nIf you are having issues using DiTTo, feel free to open an Issue on GitHub [here](https://github.com/NREL/ditto/issues/new)\r\n\r\nAll contributions are welcome. For questions about collaboration please email [Tarek Elgindy](mailto:tarek.elgindy@nrel.gov)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnrel-distribution-suites%2Fditto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnrel-distribution-suites%2Fditto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnrel-distribution-suites%2Fditto/lists"}