{"id":26321753,"url":"https://github.com/terradue/dotnetstac","last_synced_at":"2025-03-15T16:18:24.663Z","repository":{"id":40865031,"uuid":"271377965","full_name":"Terradue/DotNetStac","owner":"Terradue","description":".Net library for working with any SpatioTemporal Asset Catalog (STAC)","archived":false,"fork":false,"pushed_at":"2023-11-02T08:02:05.000Z","size":1600,"stargazers_count":8,"open_issues_count":6,"forks_count":0,"subscribers_count":13,"default_branch":"develop","last_synced_at":"2024-04-16T11:14:31.853Z","etag":null,"topics":["catalog","json","stac"],"latest_commit_sha":null,"homepage":"https://terradue.github.io/DotNetStac/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Terradue.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-06-10T20:26:25.000Z","updated_at":"2024-01-12T18:13:41.000Z","dependencies_parsed_at":"2023-01-27T21:16:33.603Z","dependency_job_id":"8a190c21-2edd-4d4d-83ae-be17a7cde629","html_url":"https://github.com/Terradue/DotNetStac","commit_stats":{"total_commits":358,"total_committers":5,"mean_commits":71.6,"dds":0.2905027932960894,"last_synced_commit":"6db4dd62d514556de95489c9a04a3e7f3cdb51b9"},"previous_names":[],"tags_count":73,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Terradue%2FDotNetStac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Terradue%2FDotNetStac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Terradue%2FDotNetStac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Terradue%2FDotNetStac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Terradue","download_url":"https://codeload.github.com/Terradue/DotNetStac/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243753983,"owners_count":20342543,"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","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":["catalog","json","stac"],"created_at":"2025-03-15T16:18:24.068Z","updated_at":"2025-03-15T16:18:24.652Z","avatar_url":"https://github.com/Terradue.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\u003ch1 align=\"center\"\u003e DotNetStac\u003c/h1\u003e\n\n\n\u003ch2 align=\"center\"\u003e\n.Net library for working with Spatio Temporal Asset Catalogs (\u003ca href=\"https://stacspec.org\"\u003eSTAC\u003c/a\u003e)\n\n  ![](docs/logo/logo-wide.png)\n\n\u003c/h2\u003e\n\n\u003ch3 align=\"center\"\u003e\n\n![Build Status](https://github.com/Terradue/DotNetStac/actions/workflows/build.yaml/badge.svg?branch=release/1.7.2)\n[![NuGet](https://img.shields.io/nuget/vpre/DotNetStac)](https://www.nuget.org/packages/DotNetStac/)\n[![codecov](https://codecov.io/gh/Terradue/DotNetStac/branch/release/1.7.2/graph/badge.svg)](https://codecov.io/gh/Terradue/DotNetStac)\n[![Gitter](https://img.shields.io/gitter/room/SpatioTemporal-Asset-Catalog/Lobby?color=yellow)](https://gitter.im/SpatioTemporal-Asset-Catalog/Lobby)\n[![License](https://img.shields.io/badge/license-AGPL3-blue.svg)](LICENSE)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/Terradue/DotNetStac/master?filepath=example.ipynb)\n\n\u003c/h3\u003e\n\n\u003ch3 align=\"center\"\u003e\n  \u003ca href=\"#Features\"\u003eFeatures\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n  \u003ca href=\"#Getting-Started\"\u003eGetting started\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n  \u003ca href=\"#Documentation\"\u003eDocumentation\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n  \u003ca href=\"#Developing\"\u003eDeveloping\u003c/a\u003e\n\u003c/h3\u003e\n\n**DotNetStac** helps you to work with [STAC](https://stacspec.org) ([catalog](https://github.com/radiantearth/stac-spec/tree/master/catalog-spec), [collection](https://github.com/radiantearth/stac-spec/tree/master/collection-spec), [item](https://github.com/radiantearth/stac-spec/tree/master/catalog-spec))\n\nIn a nutshell, the library allows serialization/desrialization of STAC JSON documents (using [Newtonsoft.JSON](https://www.newtonsoft.com/json)) to typed object modeling STAC objects with properties represented in enhanced objects such as geometries, time stamp/period/span, numerical values and many more via STAC extension plugins engine. Stac Item object is based on [GeoJSON.Net](https://github.com/GeoJSON-Net/GeoJSON.Net) feature.\n\n## Features\n\n* (De)Serialization engine fully compliant with current version of [STAC specifications](https://stacspec.org)\n* Many helpers to support STAC objects manipulation:\n  * Field accessors using class properties and common metadata (e.g. Title, DateTime, Geometry)\n  * Collection creation helper summarizing Items set\n* JSON Schema validation using [Json.NET Schema](https://github.com/JamesNK/Newtonsoft.Json.Schema)\n* STAC extensions support with C# extension classes with direct accessors to the fields:\n  * [Electro-Optical](https://github.com/stac-extensions/eo) with `Common Band Name` enumeration\n  * [File Info](https://github.com/stac-extensions/file) with helpers to calculate [multihash](https://github.com/multiformats/cs-multihash) checksum\n  * [Processing](https://github.com/stac-extensions/processing)\n  * [Projection](https://github.com/stac-extensions/projection) with helpers to set `epsg` id and `wkt2` representation from [Proj.Net Coordinate Systems](https://github.com/NetTopologySuite/ProjNet4GeoAPI)\n  * [Raster](https://github.com/stac-extensions/raster)\n  * [SAR](https://github.com/stac-extensions/sar) with helpers for interferometric searches\n  * [Satellite](https://github.com/stac-extensions/sat) with extra orbit state vector and baseline calculation\n  * [Scientific Citation](https://github.com/stac-extensions/scientific)\n  * [View Geometry](https://github.com/stac-extensions/view)\n\n## Getting Started\n\n### Install package\n\n```console\n$ dotnet add package DotNetStac\n```\n\n### Deserialize and validate your first catalog\n\n```csharp\nusing Stac;\nusing Stac.Schemas;\nusing System;\nusing System.Net;\nusing Newtonsoft.Json.Schema;\n\nvar webc = new WebClient();\nUri catalogUri = new Uri(\"https://raw.githubusercontent.com/radiantearth/stac-spec/master/examples/catalog.json\");\nStacValidator stacValidator = new StacValidator(new JSchemaUrlResolver());\n\n// StacConvert.Deserialize is the helper to start loading any STAC document\nvar json = webc.DownloadString(catalogUri);\nbool valid = stacValidator.ValidateJson(json);\nStacCatalog catalog = StacConvert.Deserialize\u003cStacCatalog\u003e(json);\n\nConsole.Out.WriteLine(catalog.Id + \": \" + catalog.Description + (valid ? \" [VALID]\" : \"[INVALID]\"));\nConsole.Out.WriteLine(catalog.StacVersion);\n```\n\n### Learn more\n\nA [dedicated notebook](notebooks/example.ipynb) is available to get started with all DotNetStac features. If you want to play directly with the notebook, you can [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/Terradue/DotNetStac/develop?filepath=example.ipynb)\n\n## Documentation\n\nAn API documentation site is available at https://terradue.github.io/DotNetStac.\n\n## Developing\n\nTo ensure development libraries are installed, restore all dependencies\n\n```\n\u003e dotnet restore src\n```\n\n### Unit Tests\n\nUnit tests are in the `src/DotNetStac.Test` folder. To run unit tests:\n\n```\n\u003e dotnet test src\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterradue%2Fdotnetstac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterradue%2Fdotnetstac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterradue%2Fdotnetstac/lists"}