xradio 0.0.24__tar.gz → 0.0.25__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. {xradio-0.0.24/src/xradio.egg-info → xradio-0.0.25}/PKG-INFO +3 -3
  2. {xradio-0.0.24 → xradio-0.0.25}/pyproject.toml +3 -3
  3. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_zarr/zarr_low_level.py +39 -3
  4. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_processing_set.py +9 -0
  5. {xradio-0.0.24 → xradio-0.0.25/src/xradio.egg-info}/PKG-INFO +3 -3
  6. {xradio-0.0.24 → xradio-0.0.25}/LICENSE.txt +0 -0
  7. {xradio-0.0.24 → xradio-0.0.25}/MANIFEST.in +0 -0
  8. {xradio-0.0.24 → xradio-0.0.25}/README.md +0 -0
  9. {xradio-0.0.24 → xradio-0.0.25}/setup.cfg +0 -0
  10. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/__init__.py +0 -0
  11. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/_utils/__init__.py +0 -0
  12. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/_utils/_casacore/tables.py +0 -0
  13. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/_utils/common.py +0 -0
  14. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/_utils/zarr/__init__.py +0 -0
  15. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/_utils/zarr/common.py +0 -0
  16. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/__init__.py +0 -0
  17. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/__init__.py +0 -0
  18. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_casacore/__init__.py +0 -0
  19. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_casacore/common.py +0 -0
  20. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_casacore/xds_from_casacore.py +0 -0
  21. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_casacore/xds_to_casacore.py +0 -0
  22. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_fits/xds_from_fits.py +0 -0
  23. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_zarr/common.py +0 -0
  24. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_zarr/xds_from_zarr.py +0 -0
  25. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/_zarr/xds_to_zarr.py +0 -0
  26. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/casacore.py +0 -0
  27. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/common.py +0 -0
  28. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/fits.py +0 -0
  29. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/image_factory.py +0 -0
  30. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/_util/zarr.py +0 -0
  31. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/image/image.py +0 -0
  32. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/schema/__init__.py +0 -0
  33. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/schema/bases.py +0 -0
  34. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/schema/check.py +0 -0
  35. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/schema/dataclass.py +0 -0
  36. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/schema/metamodel.py +0 -0
  37. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/schema/typing.py +0 -0
  38. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/__init__.py +0 -0
  39. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/__init__.py +0 -0
  40. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/_tables/load.py +0 -0
  41. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/_tables/load_main_table.py +0 -0
  42. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/_tables/read.py +0 -0
  43. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/_tables/read_main_table.py +0 -0
  44. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/_tables/read_subtables.py +0 -0
  45. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/_tables/table_query.py +0 -0
  46. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/_tables/write.py +0 -0
  47. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/_tables/write_exp_api.py +0 -0
  48. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/chunks.py +0 -0
  49. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/conversion.py +0 -0
  50. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/descr.py +0 -0
  51. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/msv2_msv3.py +0 -0
  52. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/msv2_to_msv4_meta.py +0 -0
  53. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/msv4_infos.py +0 -0
  54. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/msv4_sub_xdss.py +0 -0
  55. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/optimised_functions.py +0 -0
  56. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/partition_queries.py +0 -0
  57. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/partitions.py +0 -0
  58. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_ms/subtables.py +0 -0
  59. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_utils/cds.py +0 -0
  60. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_utils/partition_attrs.py +0 -0
  61. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_utils/stokes_types.py +0 -0
  62. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_utils/xds_helper.py +0 -0
  63. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_zarr/encoding.py +0 -0
  64. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_zarr/read.py +0 -0
  65. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/_zarr/write.py +0 -0
  66. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/ms.py +0 -0
  67. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/ms_column_descriptions_dicts.py +0 -0
  68. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/_vis_utils/zarr.py +0 -0
  69. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/convert_msv2_to_processing_set.py +0 -0
  70. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/load_processing_set.py +0 -0
  71. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/model.py +0 -0
  72. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/read_processing_set.py +0 -0
  73. {xradio-0.0.24 → xradio-0.0.25}/src/xradio/vis/vis_io.py +0 -0
  74. {xradio-0.0.24 → xradio-0.0.25}/src/xradio.egg-info/SOURCES.txt +0 -0
  75. {xradio-0.0.24 → xradio-0.0.25}/src/xradio.egg-info/dependency_links.txt +0 -0
  76. {xradio-0.0.24 → xradio-0.0.25}/src/xradio.egg-info/requires.txt +0 -0
  77. {xradio-0.0.24 → xradio-0.0.25}/src/xradio.egg-info/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xradio
3
- Version: 0.0.24
4
- Summary: Xarray Radio Astronomy Data IO
3
+ Version: 0.0.25
4
+ Summary: Xarray Radio Astronomy Data IO
5
5
  Author-email: Jan-Willem Steeb <jsteeb@nrao.edu>
6
6
  License: BSD 3-Clause License
7
7
 
@@ -32,7 +32,7 @@ License: BSD 3-Clause License
32
32
  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
33
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
34
 
35
- Requires-Python: <3.12,>=3.8
35
+ Requires-Python: <3.12,>=3.9
36
36
  Description-Content-Type: text/markdown
37
37
  License-File: LICENSE.txt
38
38
  Requires-Dist: astropy
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "xradio"
3
- version = "0.0.24"
4
- description = "Xarray Radio Astronomy Data IO "
3
+ version = "0.0.25"
4
+ description = "Xarray Radio Astronomy Data IO"
5
5
  authors = [
6
6
  {name = "Jan-Willem Steeb", email="jsteeb@nrao.edu"},
7
7
  ]
8
8
  license = {file = "LICENSE.txt"}
9
9
  readme = "README.md"
10
- requires-python = ">= 3.8, < 3.12"
10
+ requires-python = ">= 3.9, < 3.12"
11
11
 
12
12
  dependencies = [
13
13
  'astropy',
@@ -109,19 +109,55 @@ def write_binary_blob_to_disk(arr, file_path, compressor):
109
109
  Returns:
110
110
  - None
111
111
  """
112
+ import graphviper.utils.logger as logger
112
113
  # Encode the NumPy array using the codec
114
+ logger.debug('1. Before compressor ' + file_path)
113
115
  compressed_arr = compressor.encode(np.ascontiguousarray(arr))
114
116
 
117
+ logger.debug('2. Before makedir')
115
118
  # Ensure the directory exists before saving the file
116
119
  os.makedirs(os.path.dirname(file_path), exist_ok=True)
117
120
 
118
- # Save the compressed array to disk
119
- with open(file_path, "wb") as file:
120
- file.write(compressed_arr)
121
+ arr_len = len(compressed_arr)
122
+ logger.debug('3. Before write the len is: ' + str(arr_len))
123
+ #Save the compressed array to disk
124
+ # with open(file_path, "wb") as file:
125
+ # file.write(compressed_arr)
126
+
127
+ logger.debug('4. Using new writer: ' + str(arr_len))
128
+ write_to_lustre_chunked(file_path, compressed_arr)
129
+
130
+ # /.lustre/aoc/sciops/pford/CHILES/cube_image/uid___A002_Xee7674_X2844_Cube_3.img.zarr/SKY/0.0.110.0.0
131
+ # 348192501 bytes
132
+ # 332.0622453689575 M
133
+
134
+ # from io import BufferedWriter
135
+ # # Calculate buffer size based on compressed_arr size (adjust multiplier)
136
+ # buffer_size = min(len(compressed_arr), 1024 * 1024 * 4) # Max 4 MB buffer
137
+ # with BufferedWriter(open(file_path, "wb"), buffer_size) as f:
138
+ # f.write(compressed_arr)
139
+ # f.flush() # Ensure data gets written to disk
140
+
141
+
142
+ logger.debug('4. Write completed')
121
143
 
122
144
  # print(f"Compressed array saved to {file_path}")
123
145
 
124
146
 
147
+ def write_to_lustre_chunked(file_path, compressed_arr, chunk_size=1024 * 1024 * 128): # 128 MiB chunks
148
+ """
149
+ Writes compressed data to a Lustre file path with chunking.
150
+
151
+ Args:
152
+ file_path: Path to the file for writing.
153
+ compressed_arr: Compressed data array to write.
154
+ chunk_size: Size of each data chunk in bytes (default: 128 MiB).
155
+ """
156
+ with open(file_path, "wb") as f:
157
+ for i in range(0, len(compressed_arr), chunk_size):
158
+ chunk = compressed_arr[i:i + chunk_size]
159
+ f.write(chunk)
160
+
125
161
  def read_binary_blob_from_disk(file_path, compressor, dtype=np.float64):
126
162
  """
127
163
  Read a compressed binary blob from disk and decode it using Blosc.
@@ -43,7 +43,10 @@ class processing_set(dict):
43
43
  "start_frequency": [],
44
44
  "end_frequency": [],
45
45
  "shape": [],
46
+ "field_coords": []
46
47
  }
48
+ from astropy.coordinates import SkyCoord
49
+ import astropy.units as u
47
50
  for key, value in self.items():
48
51
  summary_data["name"].append(key)
49
52
  summary_data["ddi"].append(value.attrs["ddi"])
@@ -65,6 +68,12 @@ class processing_set(dict):
65
68
  )
66
69
  summary_data["start_frequency"].append(value["frequency"].values[0])
67
70
  summary_data["end_frequency"].append(value["frequency"].values[-1])
71
+
72
+ ra_dec_rad = value[data_name].attrs["field_info"]['phase_direction']['data']
73
+ frame = value[data_name].attrs["field_info"]['phase_direction']['attrs']['frame'].lower()
74
+ coord = SkyCoord(ra=ra_dec_rad[0]*u.rad, dec=ra_dec_rad[1]*u.rad, frame=frame)
75
+
76
+ summary_data["field_coords"].append([frame, coord.ra.to_string(unit=u.hour), coord.dec.to_string(unit=u.deg)])
68
77
  summary_df = pd.DataFrame(summary_data)
69
78
  return summary_df
70
79
 
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xradio
3
- Version: 0.0.24
4
- Summary: Xarray Radio Astronomy Data IO
3
+ Version: 0.0.25
4
+ Summary: Xarray Radio Astronomy Data IO
5
5
  Author-email: Jan-Willem Steeb <jsteeb@nrao.edu>
6
6
  License: BSD 3-Clause License
7
7
 
@@ -32,7 +32,7 @@ License: BSD 3-Clause License
32
32
  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
33
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
34
 
35
- Requires-Python: <3.12,>=3.8
35
+ Requires-Python: <3.12,>=3.9
36
36
  Description-Content-Type: text/markdown
37
37
  License-File: LICENSE.txt
38
38
  Requires-Dist: astropy
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes