From f3bb82a93756038809232588e9ce8d82c2ebfbde Mon Sep 17 00:00:00 2001 From: Florez Ospina Juan Felipe Date: Mon, 2 Dec 2024 16:31:03 +0100 Subject: [PATCH] Updated documentation and built doc website --- docs/build/doctrees/environment.pickle | Bin 374697 -> 377535 bytes docs/build/doctrees/index.doctree | Bin 5086 -> 5108 bytes docs/build/doctrees/modules/src.doctree | Bin 99667 -> 96777 bytes docs/build/doctrees/modules/vis.doctree | Bin 0 -> 5625 bytes docs/build/html/_modules/index.html | 4 +- .../html/_modules/visualization/hdf5_vis.html | 182 +++ docs/build/html/_sources/index.rst.txt | 2 + docs/build/html/_sources/modules/src.rst.txt | 9 - docs/build/html/_sources/modules/vis.rst.txt | 7 + docs/build/html/genindex.html | 28 +- docs/build/html/index.html | 10 +- docs/build/html/modules/src.html | 14 +- docs/build/html/modules/vis.html | 127 ++ docs/build/html/objects.inv | Bin 1978 -> 2011 bytes docs/build/html/py-modindex.html | 24 +- docs/build/html/search.html | 2 +- docs/build/html/searchindex.js | 2 +- docs/software arquitecture diagram.svg | 1288 +++++++++++++++++ docs/source/index.rst | 2 + docs/source/modules/src.rst | 9 - docs/source/modules/vis.rst | 7 + 21 files changed, 1657 insertions(+), 60 deletions(-) create mode 100644 docs/build/doctrees/modules/vis.doctree create mode 100644 docs/build/html/_modules/visualization/hdf5_vis.html create mode 100644 docs/build/html/_sources/modules/vis.rst.txt create mode 100644 docs/build/html/modules/vis.html create mode 100644 docs/software arquitecture diagram.svg create mode 100644 docs/source/modules/vis.rst diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 00f1ec75af38945c7f0b23a42ac924839b9d6a40..c56cc412a06a9a3c4534c9c937c5d0fce2eae99d 100644 GIT binary patch literal 377535 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 $i$V+V)NVQy!pt6&37-vq;6L3*wj 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 literal 374697 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 Xc9v#Hf>KUVh7MR=M#biCp)XL10SBnt~8 z0|S~1vlu5Ea?1k)O@f6FBnxz-^sXMZ;?%^V(ccvM%YLDs z^b7rCztF3(lZQfYir9HHYZM0qPzKL%n+LMg;3IbY8h~O*#@l|dSHfwqOzm#^@Vp7=}W4i&)tI)c~QI z*GZ^!DEaAhINu5f;VjMtv;-?1xX=T|xyf?Oo2#p)N&mD_CmVW1yFt+|OLnC%f!gSnT7paXu3I_sj2Ugp`yA=lv_N9oY!j|0*$9FoT- z)yc=Ed|1fO3=4VRuqNkS?iKPqLOw7eQWaQE2%C&sxgT delta 2819 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
  • HDF5 Data Operations
  • HDF5 Writer
  • -
  • Data Visualization
  • Pipelines and workflows
  • +
  • Data Visualization
  • Data Structure Conversion
  • Notebooks
  • @@ -79,9 +79,9 @@ diff --git a/docs/build/html/_modules/visualization/hdf5_vis.html b/docs/build/html/_modules/visualization/hdf5_vis.html new file mode 100644 index 0000000..9155ff6 --- /dev/null +++ b/docs/build/html/_modules/visualization/hdf5_vis.html @@ -0,0 +1,182 @@ + + + + + + visualization.hdf5_vis — DIMA 1.0.0 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for visualization.hdf5_vis

    +import sys
    +import os
    +root_dir = os.path.abspath(os.curdir)
    +sys.path.append(root_dir)
    +
    +import h5py
    +import yaml
    +
    +import numpy as np
    +import pandas as pd
    +
    +from plotly.subplots import make_subplots
    +import plotly.graph_objects as go
    +import plotly.express as px
    +#import plotly.io as pio
    +from src.hdf5_ops import get_parent_child_relationships
    +
    + 
    +
    +
    +[docs] +def display_group_hierarchy_on_a_treemap(filename: str): + + """ + filename (str): hdf5 file's filename""" + + with h5py.File(filename,'r') as file: + nodes, parents, values = get_parent_child_relationships(file) + + metadata_list = [] + metadata_dict={} + for key in file.attrs.keys(): + #if 'metadata' in key: + if isinstance(file.attrs[key], str): # Check if the attribute is a string + metadata_key = key[key.find('_') + 1:] + metadata_value = file.attrs[key] + metadata_dict[metadata_key] = metadata_value + metadata_list.append(f'{metadata_key}: {metadata_value}') + + #metadata_dict[key[key.find('_')+1::]]= file.attrs[key] + #metadata_list.append(key[key.find('_')+1::]+':'+file.attrs[key]) + + metadata = '<br>'.join(['<br>'] + metadata_list) + + customdata_series = pd.Series(nodes) + customdata_series[0] = metadata + + fig = make_subplots(1, 1, specs=[[{"type": "domain"}]],) + fig.add_trace(go.Treemap( + labels=nodes, #formating_df['formated_names'][nodes], + parents=parents,#formating_df['formated_names'][parents], + values=values, + branchvalues='remainder', + customdata= customdata_series, + #marker=dict( + # colors=df_all_trees['color'], + # colorscale='RdBu', + # cmid=average_score), + #hovertemplate='<b>%{label} </b> <br> Number of files: %{value}<br> Success rate: %{color:.2f}', + hovertemplate='<b>%{label} </b> <br> Count: %{value} <br> Path: %{customdata}', + name='', + root_color="lightgrey" + )) + fig.update_layout(width = 800, height= 600, margin = dict(t=50, l=25, r=25, b=25)) + fig.show() + file_name, file_ext = os.path.splitext(filename) + fig.write_html(file_name + ".html")
    + + + #pio.write_image(fig,file_name + ".png",width=800,height=600,format='png') + +# +
    + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt index f8489d2..aadb26a 100644 --- a/docs/build/html/_sources/index.rst.txt +++ b/docs/build/html/_sources/index.rst.txt @@ -14,6 +14,8 @@ Welcome to DIMA's documentation! modules/pipelines + modules/vis + modules/utils modules/notebooks diff --git a/docs/build/html/_sources/modules/src.rst.txt b/docs/build/html/_sources/modules/src.rst.txt index e9c4fc2..ecc8e69 100644 --- a/docs/build/html/_sources/modules/src.rst.txt +++ b/docs/build/html/_sources/modules/src.rst.txt @@ -14,14 +14,5 @@ HDF5 Writer :undoc-members: :show-inheritance: -Data Visualization -================== - -.. automodule:: src.hdf5_vis - :members: - :undoc-members: - :show-inheritance: - - diff --git a/docs/build/html/_sources/modules/vis.rst.txt b/docs/build/html/_sources/modules/vis.rst.txt new file mode 100644 index 0000000..5a25e0f --- /dev/null +++ b/docs/build/html/_sources/modules/vis.rst.txt @@ -0,0 +1,7 @@ +Data Visualization +================== + +.. automodule:: visualization.hdf5_vis + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index 14c5ef7..3afeba2 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -46,8 +46,8 @@ @@ -146,7 +146,7 @@ @@ -233,12 +233,12 @@
  • pipelines.metadata_revision
  • src.hdf5_ops -
  • -
  • src.hdf5_vis
  • src.hdf5_writer
  • utils.g5505_utils +
  • +
  • visualization.hdf5_vis
  • @@ -307,23 +307,16 @@
  • serialize_metadata() (in module src.hdf5_ops)
  • setup_logging() (in module utils.g5505_utils) -
  • -
  • split_sample_col_into_sample_and_data_quality_cols() (in module utils.g5505_utils)
  • +
      +
    • + visualization.hdf5_vis + +
    • +
    diff --git a/docs/build/html/index.html b/docs/build/html/index.html index cb8b2e4..5f1c624 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -48,8 +48,8 @@ @@ -97,10 +97,6 @@
  • save_processed_dataframe_to_hdf5()
  • -
  • Data Visualization -
  • Pipelines and workflows
  • +
  • Data Visualization +
  • Data Structure Conversion
  • -
  • Data Visualization -
  • Pipelines and workflows
  • +
  • Data Visualization
  • Data Structure Conversion
  • Notebooks
  • @@ -427,15 +424,6 @@ output_filename (str): Path to the source HDF5 file.

    - -
    -

    Data Visualization

    -
    -
    -src.hdf5_vis.display_group_hierarchy_on_a_treemap(filename: str)[source]
    -

    filename (str): hdf5 file’s filename

    -
    -
    diff --git a/docs/build/html/modules/vis.html b/docs/build/html/modules/vis.html new file mode 100644 index 0000000..99b4687 --- /dev/null +++ b/docs/build/html/modules/vis.html @@ -0,0 +1,127 @@ + + + + + + + Data Visualization — DIMA 1.0.0 documentation + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Data Visualization

    +
    +
    +visualization.hdf5_vis.display_group_hierarchy_on_a_treemap(filename: str)[source]
    +

    filename (str): hdf5 file’s filename

    +
    + +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index d118b39f50a3418087519d3ba5bf82bd94ee2843..88583ef4cdb7c069349d1fe97a214dd4e9dc9405 100644 GIT binary patch delta 1917 zcmV-@2ZH#z58DrrbAOu4ZrnB$hWCC76)w=#One(BF^U3B)1q0VF&dy*3LJ@}VIzqu zN!d|XeT}|epQOBuMmLH#DJ#pPb3Xouq)6)Ml$gOi#-C|aH4g<&>l{W`k-DHS%J%N| z$cp?@{k-`$+FVqqf;lQ7-KKzn7?liW1Tch4EvPeh2W=BvHGeU!_l!UogEEa10s({Z zF+J==D~GyFWQ*5x?N}PfG2l>K9#AIv6tcRCbDU+U%vNcE)Meb>4gnUB0SP7W3DG6J zJ0bDztxL9wDAkb-DDri1b(OZ`93M~)<7dQ<@-}>4r-dhwBiV)!9j7Sq=m<)Zt(1l< z{Zk_iMg!4z+JFA~_LtpTuIEEV--8llkO)qa14?^MpD_;pTToSy&tMTHpT$xZWJjDX zttRR0$ zBW0lkxvufh;`GqlTtY~wJU|lHB?=D*(KrElE`Qgw98tD_!-s7J#40nX0H4)97K=#` zO5y8HM)<<>1_VFe6!5_j3%zZ5wUZp)(d>{aNBsE$MJ2l?7w>Gi{U4mp(eYn3-<((@ z41(vCz@BzFIk!^xb&bEO)Y4DBNy^=T|D;{C`R|h@TkpP25f2_T>QoUQ5hQ>l$0o)l zKYw0`H|+vcGy2Z02>c6Frtr&_@Oe&I`oNzYelXcwN9t!`7JY(wg84`@9KC(_{>SfV zl;Wfo%e>U|O^ZgeR6se#3>}RE8!|*0W1=!HdK*wxD zHa~lO(>%(gzx1h==(qOY8Avz$}-OlF$rVm|sAM<~-ZN7%fS>K*xY6 z2f4n5K@IbUZgzIbb2&giv9p;(n?;DgF0;5)WG_eQVih9Rn73T2-<%W;bPS17lYcv1 z8k;U1>t)`>AzpcBH?H=5I1-7PNMvfF4;56;5}hzE_wWdw5GH0=XZGfF@i0ZfFY<6{ zA+=UNtG^l!O0O*pVWHiTdWb7Kace`|SrKVN*q)(fw#h}W$GjsNL1H~6$-=IK1#p6apZDUImY z+{sC{_(@(*8?v1!&v4sWvIP>=e->J6H9Ou88D?_}E&!{EgDykP+Ebv3%^-^FL3scGFxvHGoJy=7LCpDo9{B&BbJY~zwp^F>&s%8#|Aov zL^k}gzcio`&ClLn{rTN*1${!bVtP#Y78RBIR$XZ0=7mFR|>Ci=>zJ$)E z@wyMC>TUmH`?);&NtRBCB%ua2pFHb*c^#(D^pqP1%FXosyN|eaK-^k|+&NJ0%tCe! zh@Dl)y#wXmB;=G|nbs)TxU-I4GsBju={2ZL*65hVY)ub1o3H6m?tkT1w#M8^&X$3K zWg)~0awW&n&P}Ro`Ix_WS8}kYUx3yEw(tn8=x|rR7{^6);USGl&X%r%jb(Zvx{W|z z2gfM7vcLevowMntn-WcVp}!&x#Kp)>VZUtAUs~VWc-K+PxBxOh(HLPjan^P&stl5K z_BP)25wmoi)KQ$Q+BS(ey zGAXmTfxqRxqa^>r*#O=CjjRE2>j8a1uYZtwj-y>CRn+9pz9+W@yXsx&kA6Y$gwVc7 z%~Ty5`4(T7)|XT(o3$+=FYvv{U@2>fhw|EA)wsM9mlvH`igpuo4fTKj{5z>K<`HWe zs+vuELy_LAqH)z^+e@ev`-_0lz5vZ_1^K?j5koA8KU_>ojCFw7s^&?Nn9kd=&bXJU z(oxJsUxSBL=kAnj>diVG!}K8b2Ffymj}1HGayXC_im5krRKF>okLvy-$l%5QDrl|k Dgs;Hh delta 1884 zcmV-i2c!7g54sPKbAOx7j@vd6$M5?TDz-pRcJ|AgWKk4onikC=&7uLCqd-fv%tjJb zlG=@X>TC4%`XuFtW$S|yhm>-P)|&b8KO{v_!%0a6-ctIRN7dn>plO}s=qfT7{6*Q^ zUGGJaUz(p+-$tv8ic~l!CFbiC2^5o3;EW+bXlVtV&EcSRLVv46%}#t)@>Hfd3j*6_zttMJZ>omW9Qh zrZag>&&>y>ILETTmjmK2f}up{2UpL(W9(m{iH3~0zT7cX;Q91yQLVZQ^ut28f6m7- zyrZl@I(95bf#o`x*G0Jmxs=_vVB~eVaO}tBM*$au1%HOC=19h9UGZ3s1&VY0gvS=y zX-b7;$BQ`GlRTB{V6NX!d{4|8=7p1QVYxC0w3Qv+e95W&p;=jAy14hWT+<*O* zPV1ELDn|#?v+abiBwno zzy&Vke18!85HLqiIIb8?Fy}Zui;M-G+L(2iwII2im7C4gCf3*1o-Y(G96`BA+i*RJv<&_4P=bztM3=AOBU$*Q7WogW!3ku*dhUo?9t=U3)>w z6n}qNGdYvENFU_fl$(&%b!2{4X3-~{Csg*OpwZiR?|=M`M=4EewUFwK#y2g-rMx2Y z^|6xSt@JK}k6~@5@61n;{3$X&wb{=`$4byuN(!{%tB#J*hFpH`_=Y)?L4VoPD$#Gv zpCgdw^>_LaLLE9;nmK>nj%w|G07s9_pMSdlpDFvi%jxqNvJo+nEdn$Opm@rXn_>Cj z%k2yYwcj#-JY7DF!UHo}ASI#MvM|4Z5T|o$Gh=il>;fGFqU_}LW(L*G5yI@;lE?CW zequ+nhAxW`f#)pZT#>DOB*ZF2>|~B|uKwu+XrN|fcMx7W z2`{I{;+50=m8%zCI}xuN1s4C~Zhx+Gj55u$dBC3PzNbnV`n9DzbTfYtUh9u1)s(xX zV@lAkv7?iY?UTM9Hssp7p5U%sYXf9vq#U%yYIJ4+^48NWKmbk?fUb#5xTnA=65Q4y zSzV}CqP#AShlL(8Ek})x``&W;XOFYg4Paj8!P-yf4~vLD)BNoH<@Zlj=YPo`(ERNE z<-5;t=LH1d&n1KhZ9P?9CSE&whO>W^*>ay)AuLjfPX7DfCAw>Uyq3(fE6FW5TGXIdb7%)S;+yObO zTKr;h<2)VC5tyUd(X8kBVX zNnlH;;K{nd5Z#kNUk6|m=Q_mz#b@WKn=mDodPjdn76`-$rm$T{=`XGAJ$V->reBd6 zps0^{F&H?jl-)&uqmWB(xS9H8ArhD%-7+ike{ z)qEPiQ*&_00eM^Y5VISH@y#s5-2g8;11W{J$2{WK|PCDb?boV7x8Ba@#<@ zFKHx*$ng&sgK}RRV6?(`P_Sk52G;zx(jYd
  • HDF5 Data Operations
  • HDF5 Writer
  • -
  • Data Visualization
  • Pipelines and workflows
  • +
  • Data Visualization
  • Data Structure Conversion
  • Notebooks
  • @@ -85,7 +85,8 @@ n | p | s | - u + u | + v @@ -130,11 +131,6 @@ - - - + + + + + + + +
        src.hdf5_ops
        - src.hdf5_vis -
        @@ -154,6 +150,20 @@     utils.g5505_utils
     
    + v
    + visualization +
        + visualization.hdf5_vis +
    diff --git a/docs/build/html/search.html b/docs/build/html/search.html index f78149d..58f776c 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -49,8 +49,8 @@ diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index 998b53a..7b9b7e1 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Behavior:": [[4, "behavior"]], "Contents:": [[0, null]], "Data Structure Conversion": [[5, "module-utils.g5505_utils"]], "Data Visualization": [[4, "module-src.hdf5_vis"]], "Example:": [[4, "example"]], "HDF5 Data Operations": [[4, "module-src.hdf5_ops"]], "HDF5 Writer": [[4, "module-src.hdf5_writer"]], "Indices and tables": [[0, "indices-and-tables"]], "Notebooks": [[2, "module-notebooks"]], "Parameters": [[4, "id5"], [4, "id6"], [4, "id10"], [5, "parameters"], [5, "id1"], [5, "id3"], [5, "id5"]], "Parameters:": [[3, "parameters"], [4, "parameters"], [4, "id1"], [4, "id2"], [4, "id3"], [4, "id4"], [4, "id8"]], "Pipelines and workflows": [[3, "module-pipelines.data_integration"]], "Returns": [[4, "returns"], [4, "id7"], [4, "id11"], [5, "returns"], [5, "id2"], [5, "id4"], [5, "id6"]], "Returns:": [[4, "id9"]], "Welcome to DIMA\u2019s documentation!": [[0, "welcome-to-dima-s-documentation"]]}, "docnames": ["index", "modules/instruments", "modules/notebooks", "modules/pipelines", "modules/src", "modules/utils"], "envversion": {"nbsphinx": 4, "sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "modules/instruments.rst", "modules/notebooks.rst", "modules/pipelines.rst", "modules/src.rst", "modules/utils.rst"], "indexentries": {"append_dataset() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.append_dataset", false]], "append_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.append_metadata", false]], "augment_with_filenumber() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.augment_with_filenumber", false]], "augment_with_filetype() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.augment_with_filetype", false]], "convert_attrdict_to_np_structured_array() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.convert_attrdict_to_np_structured_array", false]], "convert_dataframe_to_np_structured_array() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.convert_dataframe_to_np_structured_array", false]], "convert_string_to_bytes() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.convert_string_to_bytes", false]], "copy_directory_with_contraints() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.copy_directory_with_contraints", false]], "create_hdf5_file_from_dataframe() (in module src.hdf5_writer)": [[4, "src.hdf5_writer.create_hdf5_file_from_dataframe", false]], "create_hdf5_file_from_filesystem_path() (in module src.hdf5_writer)": [[4, "src.hdf5_writer.create_hdf5_file_from_filesystem_path", false]], "created_at() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.created_at", false]], "delete_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.delete_metadata", false]], "display_group_hierarchy_on_a_treemap() (in module src.hdf5_vis)": [[4, "src.hdf5_vis.display_group_hierarchy_on_a_treemap", false]], "extract_and_load_dataset_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.extract_and_load_dataset_metadata", false]], "extract_dataset_as_dataframe() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.extract_dataset_as_dataframe", false]], "get_groups_at_a_level() (in module src.hdf5_ops)": [[4, "src.hdf5_ops.get_groups_at_a_level", false]], "get_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.get_metadata", false]], "get_parent_child_relationships() (in module src.hdf5_ops)": [[4, "src.hdf5_ops.get_parent_child_relationships", false]], "group_by_df_column() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.group_by_df_column", false]], "hdf5dataopsmanager (class in src.hdf5_ops)": [[4, "src.hdf5_ops.HDF5DataOpsManager", false]], "infer_units() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.infer_units", false]], "is_callable_list() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.is_callable_list", false]], "is_str_list() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.is_str_list", false]], "is_structured_array() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.is_structured_array", false]], "load_file_obj() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.load_file_obj", false]], "make_file_copy() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.make_file_copy", false]], "module": [[4, "module-src.hdf5_ops", false], [4, "module-src.hdf5_vis", false], [4, "module-src.hdf5_writer", false], [5, "module-utils.g5505_utils", false]], "progressbar() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.progressBar", false]], "read_mtable_as_dataframe() (in module src.hdf5_ops)": [[4, "src.hdf5_ops.read_mtable_as_dataframe", false]], "reformat_datetime_column() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.reformat_datetime_column", false]], "rename_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.rename_metadata", false]], "sanitize_dataframe() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.sanitize_dataframe", false]], "save_processed_dataframe_to_hdf5() (in module src.hdf5_writer)": [[4, "src.hdf5_writer.save_processed_dataframe_to_hdf5", false]], "serialize_metadata() (in module src.hdf5_ops)": [[4, "src.hdf5_ops.serialize_metadata", false]], "setup_logging() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.setup_logging", false]], "split_sample_col_into_sample_and_data_quality_cols() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.split_sample_col_into_sample_and_data_quality_cols", false]], "src.hdf5_ops": [[4, "module-src.hdf5_ops", false]], "src.hdf5_vis": [[4, "module-src.hdf5_vis", false]], "src.hdf5_writer": [[4, "module-src.hdf5_writer", false]], "to_serializable_dtype() (in module utils.g5505_utils)": [[5, "utils.g5505_utils.to_serializable_dtype", false]], "unload_file_obj() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.unload_file_obj", false]], "update_file() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.update_file", false]], "update_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.update_metadata", false]], "utils.g5505_utils": [[5, "module-utils.g5505_utils", false]]}, "objects": {"": [[2, 0, 0, "-", "notebooks"]], "pipelines": [[3, 0, 0, "-", "data_integration"], [3, 0, 0, "-", "metadata_revision"]], "pipelines.data_integration": [[3, 1, 1, "", "copy_subtree_and_create_hdf5"], [3, 1, 1, "", "load_config_and_setup_logging"], [3, 1, 1, "", "run_pipeline"]], "pipelines.metadata_revision": [[3, 1, 1, "", "count"], [3, 1, 1, "", "load_yaml"], [3, 1, 1, "", "update_hdf5_file_with_review"], [3, 1, 1, "", "validate_yaml_dict"]], "src": [[4, 0, 0, "-", "hdf5_ops"], [4, 0, 0, "-", "hdf5_vis"], [4, 0, 0, "-", "hdf5_writer"]], "src.hdf5_ops": [[4, 2, 1, "", "HDF5DataOpsManager"], [4, 1, 1, "", "get_groups_at_a_level"], [4, 1, 1, "", "get_parent_child_relationships"], [4, 1, 1, "", "read_mtable_as_dataframe"], [4, 1, 1, "", "serialize_metadata"]], "src.hdf5_ops.HDF5DataOpsManager": [[4, 3, 1, "", "append_dataset"], [4, 3, 1, "", "append_metadata"], [4, 3, 1, "", "delete_metadata"], [4, 3, 1, "", "extract_and_load_dataset_metadata"], [4, 3, 1, "", "extract_dataset_as_dataframe"], [4, 3, 1, "", "get_metadata"], [4, 3, 1, "", "load_file_obj"], [4, 3, 1, "", "reformat_datetime_column"], [4, 3, 1, "", "rename_metadata"], [4, 3, 1, "", "unload_file_obj"], [4, 3, 1, "", "update_file"], [4, 3, 1, "", "update_metadata"]], "src.hdf5_vis": [[4, 1, 1, "", "display_group_hierarchy_on_a_treemap"]], "src.hdf5_writer": [[4, 1, 1, "", "create_hdf5_file_from_dataframe"], [4, 1, 1, "", "create_hdf5_file_from_filesystem_path"], [4, 1, 1, "", "save_processed_dataframe_to_hdf5"]], "utils": [[5, 0, 0, "-", "g5505_utils"]], "utils.g5505_utils": [[5, 1, 1, "", "augment_with_filenumber"], [5, 1, 1, "", "augment_with_filetype"], [5, 1, 1, "", "convert_attrdict_to_np_structured_array"], [5, 1, 1, "", "convert_dataframe_to_np_structured_array"], [5, 1, 1, "", "convert_string_to_bytes"], [5, 1, 1, "", "copy_directory_with_contraints"], [5, 1, 1, "", "created_at"], [5, 1, 1, "", "group_by_df_column"], [5, 1, 1, "", "infer_units"], [5, 1, 1, "", "is_callable_list"], [5, 1, 1, "", "is_str_list"], [5, 1, 1, "", "is_structured_array"], [5, 1, 1, "", "make_file_copy"], [5, 1, 1, "", "progressBar"], [5, 1, 1, "", "sanitize_dataframe"], [5, 1, 1, "", "setup_logging"], [5, 1, 1, "", "split_sample_col_into_sample_and_data_quality_cols"], [5, 1, 1, "", "to_serializable_dtype"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method"}, "terms": {"": [3, 4, 5], "0": 4, "00": 5, "09": 5, "10": 5, "100": 4, "2023": 5, "23": 5, "26": 5, "4": 4, "5": 5, "65": 4, "8": 5, "A": 4, "By": 4, "For": 4, "If": [4, 5], "The": 4, "These": 4, "To": 4, "_description_": 5, "_type_": 5, "access": 4, "ad": 4, "add": [], "add_dataset_info": [], "add_environment_info": [], "add_instrument_info": [], "add_project_info": [], "add_sample_info": [], "addit": 4, "admiss": 4, "all": 4, "allow": 5, "allowed_file_extens": [3, 5], "alreadi": 4, "amount": 4, "an": [3, 4], "analysi": 4, "ani": 4, "annot": 4, "annotation_dict": 4, "append": [3, 4], "append_dataset": 4, "append_metadata": 4, "approach": 4, "ar": 4, "arrai": [4, 5], "attr_nam": 3, "attr_to_be_delet": 4, "attr_val": 5, "attr_valu": [3, 5], "attribut": [3, 4, 5], "augment": [], "augment_with_filenumb": [0, 5], "augment_with_filetyp": [0, 5], "base": [3, 4, 5], "befor": 4, "being": 4, "bottom": 4, "branch": [], "byte": 4, "callabl": 4, "campaign": 4, "can": 4, "capabl": 4, "categor": 4, "celsiu": 5, "chang": [], "class": 4, "clear_metadata": [], "close_fil": [], "column": 4, "column_nam": [4, 5], "commit": [], "compat": 5, "complet": [], "complex": 4, "composit": 4, "compound": [4, 5], "configur": 3, "consid": 4, "consist": 4, "constraint": [3, 5], "construct": 4, "contain": [4, 5], "content": 4, "control": 4, "convers": 0, "convert": [4, 5], "convert_attrdict_to_np_structured_arrai": [0, 5], "convert_dataframe_to_np_structured_arrai": [0, 5], "convert_string_to_byt": [0, 5], "copi": [3, 4, 5], "copy_directory_with_contraint": [0, 5], "copy_subtree_and_create_hdf5": [0, 3], "count": [0, 3], "count_valu": 5, "creat": [3, 4], "create_hdf5_file_from_datafram": [0, 4], "create_hdf5_file_from_filesystem_path": [0, 4], "created_at": [0, 5], "current": 4, "d": [4, 5], "data": [0, 3], "data_integr": 3, "datafram": [4, 5], "dataset": 4, "dataset_dict": 4, "dataset_nam": 4, "dataset_path": [], "datetim": [], "datetime_format": 5, "datetime_step": 3, "default": 4, "defin": 4, "definit": 4, "delet": [3, 4], "delete_metadata": 4, "depth": 4, "desired_format": 4, "determin": 5, "df": [4, 5], "di_pipelin": [], "dict": [3, 4, 5], "dictionari": [3, 4, 5], "dima_pipelin": [], "directori": [3, 4, 5], "display_group_hierarchy_on_a_treemap": [0, 4], "disregard": 4, "do": 4, "done": [], "down": 4, "dry_run": 5, "dst": 3, "dstdatafolderpath": [], "dtype": 5, "e": 4, "each": [4, 5], "either": 4, "element": 4, "empti": [4, 5], "encod": [4, 5], "ensur": 4, "entri": 5, "exampl": [3, 5], "exist": 4, "experiment": 4, "extend": 4, "extens": 5, "extract": 4, "extract_and_load_dataset_metadata": 4, "extract_attrs_func": 4, "extract_dataset_as_datafram": 4, "f": 4, "fals": [3, 5], "field": 5, "file": [3, 4, 5], "file_path": 4, "filenam": 4, "filename_path": [], "filesystem": 4, "first": [], "first_initialize_metadata_review": [], "float": 4, "folder": 4, "folder_depth": 4, "form": 4, "format": [3, 4], "forward": 4, "found": 4, "fourth": [], "from": [4, 5], "function": [3, 4, 5], "fundament": 4, "g": 4, "g5505_util": 5, "gener": [], "generate_datetime_dict": [], "get": 4, "get_groups_at_a_level": [0, 4], "get_metadata": 4, "get_parent_child_relationship": [0, 4], "get_review_statu": [], "given": 4, "group": [4, 5], "group_by_df_column": [0, 5], "group_by_func": 4, "group_nam": 4, "h": [4, 5], "h5": 4, "handl": 4, "hdf5": [0, 3, 5], "hdf5_file_path": [], "hdf5_lib": [], "hdf5_obj": 3, "hdf5_op": 4, "hdf5_upload": [], "hdf5_vi": 4, "hdf5_writer": 4, "hdf5dataopsmanag": [0, 4], "hdf5file": 4, "helper": 3, "hierarch": 4, "hierarchi": 4, "homogen": 4, "how": 4, "howev": 4, "i": [4, 5], "ignor": 4, "includ": 4, "index": 0, "infer_unit": [0, 5], "inform": 4, "initi": [], "input": [3, 4, 5], "input_array_byt": 5, "input_data": [4, 5], "input_dir_path": 5, "input_file_system_path": 4, "input_filename_path": 4, "input_hdf5_fil": 3, "input_list": 5, "instrument": 4, "int": 4, "integr": [3, 4], "integrate_data_sourc": [], "is_callable_list": [0, 5], "is_str_list": [0, 5], "is_structured_arrai": [0, 5], "issu": 4, "json": [4, 5], "kei": [3, 4, 5], "key_or_dict": [], "keyword": 5, "last_submit_metadata_review": [], "level": 4, "like": 4, "limit": 4, "list": [3, 4, 5], "load": 3, "load_config_and_setup_log": [0, 3], "load_dataset_metadata": [], "load_file_obj": 4, "load_yaml": [0, 3], "locat": 4, "log": [3, 5], "log_dir": [3, 5], "log_filenam": 5, "longest": 5, "m": [4, 5], "mai": 4, "main": [], "make_file_copi": [0, 5], "map": 5, "mark": 4, "matlab": 4, "metadata": [3, 4], "metadata_revis": 3, "metadataharvest": [], "method": 4, "middl": 4, "miss": 5, "mode": 4, "modifi": [], "modul": 0, "more": 4, "much": 4, "multi": 4, "must": 4, "name": [4, 5], "ndarrai": 5, "new": 4, "new_attr_2": 4, "new_attr_nam": 4, "new_attr_valu": 5, "non": 4, "none": [4, 5], "notebook": 0, "numer": 4, "numpi": [4, 5], "obj_nam": 4, "obj_path": 4, "object": [3, 4, 5], "object_nam": 3, "ofilenam": 4, "old_attr_2": 4, "old_attr_nam": 4, "onc": [], "one": 4, "ones": 4, "onli": 4, "open_fil": [], "oper": [0, 3, 5], "option": [4, 5], "our": 4, "output": [4, 5], "output_dir_path": 5, "output_filenam": 4, "output_folder_nam": 5, "output_format": 4, "overwrit": 4, "page": 0, "panda": [4, 5], "parent_fil": [], "path": [3, 4, 5], "path_to_append_dir": 4, "path_to_config_yamlfil": 3, "path_to_fil": 4, "path_to_filenames_dict": 4, "path_to_files_dict": 5, "path_to_input_dir": [], "path_to_input_directori": 4, "path_to_rawdata_fold": [], "pd": 4, "per": 4, "percentag": 4, "pipelin": 0, "place": 5, "possibl": 4, "power": 4, "pre": 4, "present": 4, "preserv": 4, "print_metadata": [], "process": 4, "progressbar": [0, 5], "project": [], "provid": [3, 4], "r": 4, "rais": 4, "rang": 4, "re": [], "read": 4, "read_dataset_as_datafram": [], "read_dataset_from_hdf5fil": [], "read_mtable_as_datafram": [0, 4], "reader": 4, "reconstruct": 4, "reformat_datetime_column": 4, "relative_humid": 4, "renam": 4, "rename_metadata": 4, "renaming_map": 4, "repres": 4, "represent": 5, "requir": 3, "respect": 4, "restart": [], "result": 4, "return": 3, "review": [], "review_yaml_fil": 3, "review_yaml_file_path": [], "reviewer_attr": [], "revis": 4, "root": 4, "root_metadata_dict": [3, 4], "row": 4, "run": [], "run_pipelin": [0, 3], "sanitize_datafram": [0, 5], "satisfi": 5, "save": [3, 4, 5], "save_processed_dataframe_to_hdf5": [0, 4], "scalar": 4, "search": 0, "second": [], "second_save_metadata_review": [], "select": [4, 5], "select_dir_keyword": [3, 4, 5], "select_file_keyword": [3, 5], "seri": 4, "serial": 4, "serialize_metadata": [0, 4], "set": [3, 5], "setup_log": [0, 5], "should": 4, "slash": 4, "sourc": [3, 4, 5], "source_file_path": 5, "specifi": [3, 4, 5], "split_sample_col_into_sample_and_data_quality_col": [0, 5], "src": [3, 4], "src_format": 4, "srcdatafolderpath": [], "state": [], "statu": [], "step": [], "store": 4, "str": [3, 4, 5], "string": [4, 5], "structur": [0, 4], "suffix": 5, "suggest": 4, "support": 4, "system": 4, "tabl": 4, "take": 5, "target": 4, "temperatur": 5, "them": 4, "thi": 4, "third_update_hdf5_file_with_review": [], "those": 4, "time": 4, "timestamp": 5, "tmp_file": 5, "to_serializable_dtyp": [0, 5], "top": 4, "total": 5, "transform": 5, "travers": 4, "tree": 4, "true": [3, 4], "truncat": 4, "txt": [], "type": 5, "under": [], "unit": [4, 5], "unload_file_obj": 4, "up": [3, 4, 5], "updat": [3, 4], "update_fil": 4, "update_hdf5_file_with_review": [0, 3], "update_metadata": 4, "us": 4, "ut8": 5, "utf": 5, "utf8": 5, "util": 5, "valid": [3, 4], "validate_yaml_dict": [0, 3], "valu": [3, 4, 5], "valueerror": 4, "vapor": 4, "variabl": 4, "visual": 0, "w": 4, "warn": 4, "water": 4, "when": 4, "where": 4, "which": [4, 5], "while": 4, "wise": 4, "within": 4, "word": 4, "workflow": 0, "write": 4, "writer": 0, "x": 5, "y": [4, 5], "yalm": [], "yaml": [3, 4, 5], "yaml_config_file_path": 3, "yaml_dict": 3, "yaml_review_fil": [], "yml_dict": 3, "you": []}, "titles": ["Welcome to DIMA\u2019s documentation!", "<no title>", "Notebooks", "Pipelines and workflows", "HDF5 Data Operations", "Data Structure Conversion"], "titleterms": {"": 0, "behavior": 4, "content": 0, "convers": 5, "data": [4, 5], "dima": 0, "document": 0, "exampl": 4, "hdf5": 4, "indic": 0, "integr": [], "notebook": 2, "oper": 4, "paramet": [3, 4, 5], "pipelin": 3, "return": [4, 5], "structur": 5, "tabl": 0, "tutori": [], "util": [], "visual": 4, "welcom": 0, "workflow": 3, "writer": 4}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Behavior:": [[4, "behavior"]], "Contents:": [[0, null]], "Data Structure Conversion": [[5, "module-utils.g5505_utils"]], "Data Visualization": [[6, "module-visualization.hdf5_vis"]], "Example:": [[4, "example"]], "HDF5 Data Operations": [[4, "module-src.hdf5_ops"]], "HDF5 Writer": [[4, "module-src.hdf5_writer"]], "Indices and tables": [[0, "indices-and-tables"]], "Notebooks": [[2, "module-notebooks"]], "Parameters": [[4, "id5"], [4, "id6"], [4, "id10"], [5, "parameters"], [5, "id1"], [5, "id3"], [5, "id5"]], "Parameters:": [[3, "parameters"], [4, "parameters"], [4, "id1"], [4, "id2"], [4, "id3"], [4, "id4"], [4, "id8"]], "Pipelines and workflows": [[3, "module-pipelines.data_integration"]], "Returns": [[4, "returns"], [4, "id7"], [4, "id11"], [5, "returns"], [5, "id2"], [5, "id4"], [5, "id6"]], "Returns:": [[4, "id9"]], "Welcome to DIMA\u2019s documentation!": [[0, "welcome-to-dima-s-documentation"]]}, "docnames": ["index", "modules/instruments", "modules/notebooks", "modules/pipelines", "modules/src", "modules/utils", "modules/vis"], "envversion": {"nbsphinx": 4, "sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "modules/instruments.rst", "modules/notebooks.rst", "modules/pipelines.rst", "modules/src.rst", "modules/utils.rst", "modules/vis.rst"], "indexentries": {"append_dataset() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.append_dataset", false]], "append_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.append_metadata", false]], "create_hdf5_file_from_dataframe() (in module src.hdf5_writer)": [[4, "src.hdf5_writer.create_hdf5_file_from_dataframe", false]], "create_hdf5_file_from_filesystem_path() (in module src.hdf5_writer)": [[4, "src.hdf5_writer.create_hdf5_file_from_filesystem_path", false]], "delete_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.delete_metadata", false]], "extract_and_load_dataset_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.extract_and_load_dataset_metadata", false]], "extract_dataset_as_dataframe() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.extract_dataset_as_dataframe", false]], "get_groups_at_a_level() (in module src.hdf5_ops)": [[4, "src.hdf5_ops.get_groups_at_a_level", false]], "get_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.get_metadata", false]], "get_parent_child_relationships() (in module src.hdf5_ops)": [[4, "src.hdf5_ops.get_parent_child_relationships", false]], "hdf5dataopsmanager (class in src.hdf5_ops)": [[4, "src.hdf5_ops.HDF5DataOpsManager", false]], "load_file_obj() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.load_file_obj", false]], "module": [[4, "module-src.hdf5_ops", false], [4, "module-src.hdf5_writer", false]], "read_mtable_as_dataframe() (in module src.hdf5_ops)": [[4, "src.hdf5_ops.read_mtable_as_dataframe", false]], "reformat_datetime_column() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.reformat_datetime_column", false]], "rename_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.rename_metadata", false]], "save_processed_dataframe_to_hdf5() (in module src.hdf5_writer)": [[4, "src.hdf5_writer.save_processed_dataframe_to_hdf5", false]], "serialize_metadata() (in module src.hdf5_ops)": [[4, "src.hdf5_ops.serialize_metadata", false]], "src.hdf5_ops": [[4, "module-src.hdf5_ops", false]], "src.hdf5_writer": [[4, "module-src.hdf5_writer", false]], "unload_file_obj() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.unload_file_obj", false]], "update_file() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.update_file", false]], "update_metadata() (src.hdf5_ops.hdf5dataopsmanager method)": [[4, "src.hdf5_ops.HDF5DataOpsManager.update_metadata", false]]}, "objects": {"": [[2, 0, 0, "-", "notebooks"]], "pipelines": [[3, 0, 0, "-", "data_integration"], [3, 0, 0, "-", "metadata_revision"]], "pipelines.data_integration": [[3, 1, 1, "", "copy_subtree_and_create_hdf5"], [3, 1, 1, "", "load_config_and_setup_logging"], [3, 1, 1, "", "run_pipeline"]], "pipelines.metadata_revision": [[3, 1, 1, "", "count"], [3, 1, 1, "", "load_yaml"], [3, 1, 1, "", "update_hdf5_file_with_review"], [3, 1, 1, "", "validate_yaml_dict"]], "src": [[4, 0, 0, "-", "hdf5_ops"], [4, 0, 0, "-", "hdf5_writer"]], "src.hdf5_ops": [[4, 2, 1, "", "HDF5DataOpsManager"], [4, 1, 1, "", "get_groups_at_a_level"], [4, 1, 1, "", "get_parent_child_relationships"], [4, 1, 1, "", "read_mtable_as_dataframe"], [4, 1, 1, "", "serialize_metadata"]], "src.hdf5_ops.HDF5DataOpsManager": [[4, 3, 1, "", "append_dataset"], [4, 3, 1, "", "append_metadata"], [4, 3, 1, "", "delete_metadata"], [4, 3, 1, "", "extract_and_load_dataset_metadata"], [4, 3, 1, "", "extract_dataset_as_dataframe"], [4, 3, 1, "", "get_metadata"], [4, 3, 1, "", "load_file_obj"], [4, 3, 1, "", "reformat_datetime_column"], [4, 3, 1, "", "rename_metadata"], [4, 3, 1, "", "unload_file_obj"], [4, 3, 1, "", "update_file"], [4, 3, 1, "", "update_metadata"]], "src.hdf5_writer": [[4, 1, 1, "", "create_hdf5_file_from_dataframe"], [4, 1, 1, "", "create_hdf5_file_from_filesystem_path"], [4, 1, 1, "", "save_processed_dataframe_to_hdf5"]], "utils": [[5, 0, 0, "-", "g5505_utils"]], "utils.g5505_utils": [[5, 1, 1, "", "augment_with_filenumber"], [5, 1, 1, "", "augment_with_filetype"], [5, 1, 1, "", "convert_attrdict_to_np_structured_array"], [5, 1, 1, "", "convert_dataframe_to_np_structured_array"], [5, 1, 1, "", "convert_string_to_bytes"], [5, 1, 1, "", "copy_directory_with_contraints"], [5, 1, 1, "", "created_at"], [5, 1, 1, "", "group_by_df_column"], [5, 1, 1, "", "infer_units"], [5, 1, 1, "", "is_callable_list"], [5, 1, 1, "", "is_str_list"], [5, 1, 1, "", "is_structured_array"], [5, 1, 1, "", "make_file_copy"], [5, 1, 1, "", "progressBar"], [5, 1, 1, "", "sanitize_dataframe"], [5, 1, 1, "", "setup_logging"], [5, 1, 1, "", "split_sample_col_into_sample_and_data_quality_cols"], [5, 1, 1, "", "to_serializable_dtype"]], "visualization": [[6, 0, 0, "-", "hdf5_vis"]], "visualization.hdf5_vis": [[6, 1, 1, "", "display_group_hierarchy_on_a_treemap"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method"}, "terms": {"": [3, 4, 5, 6], "0": 4, "00": 5, "09": 5, "10": 5, "100": 4, "2023": 5, "23": 5, "26": 5, "4": 4, "5": 5, "65": 4, "8": 5, "A": 4, "By": 4, "For": 4, "If": [4, 5], "The": 4, "These": 4, "To": 4, "_description_": 5, "_type_": 5, "access": 4, "ad": 4, "add": [], "add_dataset_info": [], "add_environment_info": [], "add_instrument_info": [], "add_project_info": [], "add_sample_info": [], "addit": 4, "admiss": 4, "all": 4, "allow": 5, "allowed_file_extens": [3, 5], "alreadi": 4, "amount": 4, "an": [3, 4], "analysi": 4, "ani": 4, "annot": 4, "annotation_dict": 4, "append": [3, 4], "append_dataset": 4, "append_metadata": 4, "approach": 4, "ar": 4, "arrai": [4, 5], "attr_nam": 3, "attr_to_be_delet": 4, "attr_val": 5, "attr_valu": [3, 5], "attribut": [3, 4, 5], "augment": [], "augment_with_filenumb": [0, 5], "augment_with_filetyp": [0, 5], "base": [3, 4, 5], "befor": 4, "being": 4, "bottom": 4, "branch": [], "byte": 4, "callabl": 4, "campaign": 4, "can": 4, "capabl": 4, "categor": 4, "celsiu": 5, "chang": [], "class": 4, "clear_metadata": [], "close_fil": [], "column": 4, "column_nam": [4, 5], "commit": [], "compat": 5, "complet": [], "complex": 4, "composit": 4, "compound": [4, 5], "configur": 3, "consid": 4, "consist": 4, "constraint": [3, 5], "construct": 4, "contain": [4, 5], "content": 4, "control": 4, "convers": 0, "convert": [4, 5], "convert_attrdict_to_np_structured_arrai": [0, 5], "convert_dataframe_to_np_structured_arrai": [0, 5], "convert_string_to_byt": [0, 5], "copi": [3, 4, 5], "copy_directory_with_contraint": [0, 5], "copy_subtree_and_create_hdf5": [0, 3], "count": [0, 3], "count_valu": 5, "creat": [3, 4], "create_hdf5_file_from_datafram": [0, 4], "create_hdf5_file_from_filesystem_path": [0, 4], "created_at": [0, 5], "current": 4, "d": [4, 5], "data": [0, 3], "data_integr": 3, "datafram": [4, 5], "dataset": 4, "dataset_dict": 4, "dataset_nam": 4, "dataset_path": [], "datetim": [], "datetime_format": 5, "datetime_step": 3, "default": 4, "defin": 4, "definit": 4, "delet": [3, 4], "delete_metadata": 4, "depth": 4, "desired_format": 4, "determin": 5, "df": [4, 5], "di_pipelin": [], "dict": [3, 4, 5], "dictionari": [3, 4, 5], "dima_pipelin": [], "directori": [3, 4, 5], "display_group_hierarchy_on_a_treemap": [0, 6], "disregard": 4, "do": 4, "done": [], "down": 4, "dry_run": 5, "dst": 3, "dstdatafolderpath": [], "dtype": 5, "e": 4, "each": [4, 5], "either": 4, "element": 4, "empti": [4, 5], "encod": [4, 5], "ensur": 4, "entri": 5, "exampl": [3, 5], "exist": 4, "experiment": 4, "extend": 4, "extens": 5, "extract": 4, "extract_and_load_dataset_metadata": 4, "extract_attrs_func": 4, "extract_dataset_as_datafram": 4, "f": 4, "fals": [3, 5], "field": 5, "file": [3, 4, 5, 6], "file_path": 4, "filenam": [4, 6], "filename_path": [], "filesystem": 4, "first": [], "first_initialize_metadata_review": [], "float": 4, "folder": 4, "folder_depth": 4, "form": 4, "format": [3, 4], "forward": 4, "found": 4, "fourth": [], "from": [4, 5], "function": [3, 4, 5], "fundament": 4, "g": 4, "g5505_util": 5, "gener": [], "generate_datetime_dict": [], "get": 4, "get_groups_at_a_level": [0, 4], "get_metadata": 4, "get_parent_child_relationship": [0, 4], "get_review_statu": [], "given": 4, "group": [4, 5], "group_by_df_column": [0, 5], "group_by_func": 4, "group_nam": 4, "h": [4, 5], "h5": 4, "handl": 4, "hdf5": [0, 3, 5, 6], "hdf5_file_path": [], "hdf5_lib": [], "hdf5_obj": 3, "hdf5_op": 4, "hdf5_upload": [], "hdf5_vi": 6, "hdf5_writer": 4, "hdf5dataopsmanag": [0, 4], "hdf5file": 4, "helper": 3, "hierarch": 4, "hierarchi": 4, "homogen": 4, "how": 4, "howev": 4, "i": [4, 5], "ignor": 4, "includ": 4, "index": 0, "infer_unit": [0, 5], "inform": 4, "initi": [], "input": [3, 4, 5], "input_array_byt": 5, "input_data": [4, 5], "input_dir_path": 5, "input_file_system_path": 4, "input_filename_path": 4, "input_hdf5_fil": 3, "input_list": 5, "instrument": 4, "int": 4, "integr": [3, 4], "integrate_data_sourc": [], "is_callable_list": [0, 5], "is_str_list": [0, 5], "is_structured_arrai": [0, 5], "issu": 4, "json": [4, 5], "kei": [3, 4, 5], "key_or_dict": [], "keyword": 5, "last_submit_metadata_review": [], "level": 4, "like": 4, "limit": 4, "list": [3, 4, 5], "load": 3, "load_config_and_setup_log": [0, 3], "load_dataset_metadata": [], "load_file_obj": 4, "load_yaml": [0, 3], "locat": 4, "log": [3, 5], "log_dir": [3, 5], "log_filenam": 5, "longest": 5, "m": [4, 5], "mai": 4, "main": [], "make_file_copi": [0, 5], "map": 5, "mark": 4, "matlab": 4, "metadata": [3, 4], "metadata_revis": 3, "metadataharvest": [], "method": 4, "middl": 4, "miss": 5, "mode": 4, "modifi": [], "modul": 0, "more": 4, "much": 4, "multi": 4, "must": 4, "name": [4, 5], "ndarrai": 5, "new": 4, "new_attr_2": 4, "new_attr_nam": 4, "new_attr_valu": 5, "non": 4, "none": [4, 5], "notebook": 0, "numer": 4, "numpi": [4, 5], "obj_nam": 4, "obj_path": 4, "object": [3, 4, 5], "object_nam": 3, "ofilenam": 4, "old_attr_2": 4, "old_attr_nam": 4, "onc": [], "one": 4, "ones": 4, "onli": 4, "open_fil": [], "oper": [0, 3, 5], "option": [4, 5], "our": 4, "output": [4, 5], "output_dir_path": 5, "output_filenam": 4, "output_folder_nam": 5, "output_format": 4, "overwrit": 4, "page": 0, "panda": [4, 5], "parent_fil": [], "path": [3, 4, 5], "path_to_append_dir": 4, "path_to_config_yamlfil": 3, "path_to_fil": 4, "path_to_filenames_dict": 4, "path_to_files_dict": 5, "path_to_input_dir": [], "path_to_input_directori": 4, "path_to_rawdata_fold": [], "pd": 4, "per": 4, "percentag": 4, "pipelin": 0, "place": 5, "possibl": 4, "power": 4, "pre": 4, "present": 4, "preserv": 4, "print_metadata": [], "process": 4, "progressbar": [0, 5], "project": [], "provid": [3, 4], "r": 4, "rais": 4, "rang": 4, "re": [], "read": 4, "read_dataset_as_datafram": [], "read_dataset_from_hdf5fil": [], "read_mtable_as_datafram": [0, 4], "reader": 4, "reconstruct": 4, "reformat_datetime_column": 4, "relative_humid": 4, "renam": 4, "rename_metadata": 4, "renaming_map": 4, "repres": 4, "represent": 5, "requir": 3, "respect": 4, "restart": [], "result": 4, "return": 3, "review": [], "review_yaml_fil": 3, "review_yaml_file_path": [], "reviewer_attr": [], "revis": 4, "root": 4, "root_metadata_dict": [3, 4], "row": 4, "run": [], "run_pipelin": [0, 3], "sanitize_datafram": [0, 5], "satisfi": 5, "save": [3, 4, 5], "save_processed_dataframe_to_hdf5": [0, 4], "scalar": 4, "search": 0, "second": [], "second_save_metadata_review": [], "select": [4, 5], "select_dir_keyword": [3, 4, 5], "select_file_keyword": [3, 5], "seri": 4, "serial": 4, "serialize_metadata": [0, 4], "set": [3, 5], "setup_log": [0, 5], "should": 4, "slash": 4, "sourc": [3, 4, 5, 6], "source_file_path": 5, "specifi": [3, 4, 5], "split_sample_col_into_sample_and_data_quality_col": [0, 5], "src": [3, 4], "src_format": 4, "srcdatafolderpath": [], "state": [], "statu": [], "step": [], "store": 4, "str": [3, 4, 5, 6], "string": [4, 5], "structur": [0, 4], "suffix": 5, "suggest": 4, "support": 4, "system": 4, "tabl": 4, "take": 5, "target": 4, "temperatur": 5, "them": 4, "thi": 4, "third_update_hdf5_file_with_review": [], "those": 4, "time": 4, "timestamp": 5, "tmp_file": 5, "to_serializable_dtyp": [0, 5], "top": 4, "total": 5, "transform": 5, "travers": 4, "tree": 4, "true": [3, 4], "truncat": 4, "txt": [], "type": 5, "under": [], "unit": [4, 5], "unload_file_obj": 4, "up": [3, 4, 5], "updat": [3, 4], "update_fil": 4, "update_hdf5_file_with_review": [0, 3], "update_metadata": 4, "us": 4, "ut8": 5, "utf": 5, "utf8": 5, "util": 5, "valid": [3, 4], "validate_yaml_dict": [0, 3], "valu": [3, 4, 5], "valueerror": 4, "vapor": 4, "variabl": 4, "visual": 0, "w": 4, "warn": 4, "water": 4, "when": 4, "where": 4, "which": [4, 5], "while": 4, "wise": 4, "within": 4, "word": 4, "workflow": 0, "write": 4, "writer": 0, "x": 5, "y": [4, 5], "yalm": [], "yaml": [3, 4, 5], "yaml_config_file_path": 3, "yaml_dict": 3, "yaml_review_fil": [], "yml_dict": 3, "you": []}, "titles": ["Welcome to DIMA\u2019s documentation!", "<no title>", "Notebooks", "Pipelines and workflows", "HDF5 Data Operations", "Data Structure Conversion", "Data Visualization"], "titleterms": {"": 0, "behavior": 4, "content": 0, "convers": 5, "data": [4, 5, 6], "dima": 0, "document": 0, "exampl": 4, "hdf5": 4, "indic": 0, "integr": [], "notebook": 2, "oper": 4, "paramet": [3, 4, 5], "pipelin": 3, "return": [4, 5], "structur": 5, "tabl": 0, "tutori": [], "util": [], "visual": 6, "welcom": 0, "workflow": 3, "writer": 4}}) \ No newline at end of file diff --git a/docs/software arquitecture diagram.svg b/docs/software arquitecture diagram.svg new file mode 100644 index 0000000..cbdf89c --- /dev/null +++ b/docs/software arquitecture diagram.svg @@ -0,0 +1,1288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + ExperimentalCampaignProject(Internal) + + + ScienceProject 1(Internal) + ScienceProject 2(External) + + + + DIMAPackage(Public) + + + + + + + + + + has subproject + + + + information flow + + + + + has subproject + + + + information flow + + + + + + + + + + + + File StandarizationModuleinstruments/ + + Data StructureConversionutils/ + + + + + + + + HDF5 Writersrc/ + + + + + HDF5 Data Operationssrc/ + + + + + + Git Operationssrc/ + + + + + + + + + Metadata Rev.Pipelinepipelines/ + + + + Visualizationvisualization/ + + + File Standardization and Storage + + + Information Processing and Data Analysis + + + Data Management + + + + + Data IntegrationPipelinepipelines/ + ETL and Data Analysis Demosnotebooks/ + + diff --git a/docs/source/index.rst b/docs/source/index.rst index f8489d2..aadb26a 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -14,6 +14,8 @@ Welcome to DIMA's documentation! modules/pipelines + modules/vis + modules/utils modules/notebooks diff --git a/docs/source/modules/src.rst b/docs/source/modules/src.rst index e9c4fc2..ecc8e69 100644 --- a/docs/source/modules/src.rst +++ b/docs/source/modules/src.rst @@ -14,14 +14,5 @@ HDF5 Writer :undoc-members: :show-inheritance: -Data Visualization -================== - -.. automodule:: src.hdf5_vis - :members: - :undoc-members: - :show-inheritance: - - diff --git a/docs/source/modules/vis.rst b/docs/source/modules/vis.rst new file mode 100644 index 0000000..5a25e0f --- /dev/null +++ b/docs/source/modules/vis.rst @@ -0,0 +1,7 @@ +Data Visualization +================== + +.. automodule:: visualization.hdf5_vis + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file