# How is ioda python API built

**URL:** <https://forums.jcsda.org/t/how-is-ioda-python-api-built/244>\
**Category:** JEDI\
**Created:** [December 27, 2021, 6:41pm UTC](https://forums.jcsda.org/t/how-is-ioda-python-api-built/244 "2021-12-27T18:41:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![xtian15](https://avatars.discourse-cdn.com/v4/letter/x/ecb155/32.png) [@xtian15](https://forums.jcsda.org/u/xtian15)\
**Post date:** [December 27, 2021, 6:41pm UTC](https://forums.jcsda.org/t/how-is-ioda-python-api-built/244/1 "2021-12-27T18:41:26Z")

</div>

Hi, I am trying to encode IODA formatted observations following the existing IODA examples. In the [tutorial](https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/learning/tutorials/level3/ioda-python-api.html), the IODA python API are calling ioda python module that is already in place under the singularity environment. For users of other platforms, how should the IODA API be built and where can I find the building instructions?  
Thanks,

---

<div class="post-metadata">

**Author:** ![stephenh](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.jcsda.org/stephenh/32/28_2.png) [@stephenh](https://forums.jcsda.org/u/stephenh)\
**Post date:** [January 4, 2022, 11:20pm UTC](https://forums.jcsda.org/t/how-is-ioda-python-api-built/244/2 "2022-01-04T23:20:21Z")

</div>

Sorry about the slow response - I’ve been on leave and am back in the office now.

To build the ioda python API, you need to build one of the bundles.

The easiest thing to do is build fv3-bundle since you have access to that bundle in both the public (jcsda) and private (jcsda-internal) github organizations.

You can follow directions for building your bundle here: [Building and compiling JEDI — JEDI Documentation 1 documentation](https://jointcenterforsatellitedataassimilation-jedi-docs.readthedocs-hosted.com/en/latest/using/building_and_running/building_jedi.html)

When you get to the ecbuild step add the following ecbuild command line option: `-DBUILD_PYTHON_BINDINGS=ON`

This enables the creation of the ioda python API. Note that you must have access to the `pybind11` module for this to work properly. Discover, Orion, S4, Cheyenne and Hera have been set up with pybind11. If you are not working on one of these platforms, you may need to discuss with your IT group about getting access to `pybind11`.

Hope this helps you get started. I can help further if needed.

---

<div class="post-metadata">

**Author:** ![xtian15](https://avatars.discourse-cdn.com/v4/letter/x/ecb155/32.png) [@xtian15](https://forums.jcsda.org/u/xtian15)\
**Post date:** [February 1, 2022, 9:21pm UTC](https://forums.jcsda.org/t/how-is-ioda-python-api-built/244/3 "2022-02-01T21:21:34Z")

</div>

Thanks very much for your kind response! I am going to try building FV3-bundle with the `-DBUILD_PYTHON_BINDINGS=ON`.
