@@ -431,10 +431,12 @@ def _create_cfa_data(self, ncvar, ncdimensions, data, cfvar):
431
431
`None`
432
432
433
433
"""
434
+ import time # TODO
435
+ print (f"\n { ncvar } " ) # TODO
436
+
434
437
g = self .write_vars
435
438
436
439
ndim = data .ndim
437
-
438
440
cfa = self ._cfa_aggregation_instructions (data , cfvar )
439
441
440
442
# ------------------------------------------------------------
@@ -482,16 +484,21 @@ def _create_cfa_data(self, ncvar, ncdimensions, data, cfvar):
482
484
aggregated_data_attr = []
483
485
484
486
# Location
487
+ start = time .time () # TODO
485
488
term = "location"
489
+ data = cfa [term ]
490
+ self .implementation .nc_set_hdf5_chunksizes (data , data .shape )
486
491
term_ncvar = self ._cfa_write_term_variable (
487
- cfa [term ],
492
+ data , # cfa[term],
488
493
aggregated_data .get (term , f"cfa_{ term } " ),
489
494
location_ncdimensions ,
490
495
)
491
496
aggregated_data_attr .append (f"{ term } : { term_ncvar } " )
492
-
497
+ print (f"{ term :<10} : { time .time () - start :.3} " )
498
+
493
499
# File
494
500
term = "file"
501
+ start = time .time () # TODO
495
502
if substitutions :
496
503
# Create the "substitutions" netCDF attribute
497
504
subs = []
@@ -502,16 +509,20 @@ def _create_cfa_data(self, ncvar, ncdimensions, data, cfvar):
502
509
else :
503
510
attributes = None
504
511
512
+ data = cfa [term ]
513
+ self .implementation .nc_set_hdf5_chunksizes (data , data .shape )
505
514
term_ncvar = self ._cfa_write_term_variable (
506
- cfa [term ],
515
+ data , # cfa[term],
507
516
aggregated_data .get (term , f"cfa_{ term } " ),
508
517
fragment_ncdimensions ,
509
518
attributes = attributes ,
510
519
)
511
520
aggregated_data_attr .append (f"{ term } : { term_ncvar } " )
521
+ print (f"{ term :<10} : { time .time () - start :.3} " )
512
522
513
523
# Address
514
524
term = "address"
525
+ start = time .time () # TODO
515
526
516
527
# Attempt to reduce addresses to a common scalar value
517
528
u = cfa [term ].unique ().compressed ().persist ()
@@ -521,15 +532,19 @@ def _create_cfa_data(self, ncvar, ncdimensions, data, cfvar):
521
532
else :
522
533
dimensions = fragment_ncdimensions
523
534
535
+ data = cfa [term ]
536
+ self .implementation .nc_set_hdf5_chunksizes (data , data .shape )
524
537
term_ncvar = self ._cfa_write_term_variable (
525
- cfa [term ],
538
+ data , # cfa[term],
526
539
aggregated_data .get (term , f"cfa_{ term } " ),
527
540
dimensions ,
528
541
)
529
542
aggregated_data_attr .append (f"{ term } : { term_ncvar } " )
543
+ print (f"{ term :<10} : { time .time () - start :.3} " )
530
544
531
545
# Format
532
546
term = "format"
547
+ start = time .time () # TODO
533
548
534
549
# Attempt to reduce addresses to a common scalar value
535
550
u = cfa [term ].unique ().compressed ().persist ()
@@ -539,13 +554,16 @@ def _create_cfa_data(self, ncvar, ncdimensions, data, cfvar):
539
554
else :
540
555
dimensions = fragment_ncdimensions
541
556
557
+ data = cfa [term ]
558
+ self .implementation .nc_set_hdf5_chunksizes (data , data .shape )
542
559
term_ncvar = self ._cfa_write_term_variable (
543
- cfa [term ],
560
+ data , # cfa[term],
544
561
aggregated_data .get (term , f"cfa_{ term } " ),
545
562
dimensions ,
546
563
)
547
564
aggregated_data_attr .append (f"{ term } : { term_ncvar } " )
548
565
566
+ print (f"{ term :<10} : { time .time () - start :.3} " )
549
567
# ------------------------------------------------------------
550
568
# Look for non-standard CFA terms stored as field ancillaries
551
569
# on a field and write them to the CFA-netCDF file
@@ -809,8 +827,10 @@ def _cfa_write_non_standard_terms(
809
827
terms .append (term )
810
828
811
829
# Create the new CFA term variable
830
+ data = type (data )(dx )
831
+ self .implementation .nc_set_hdf5_chunksizes (data , data .shape )
812
832
term_ncvar = self ._cfa_write_term_variable (
813
- data = type (data )(dx ),
833
+ data = data , # type(data)(dx),
814
834
ncvar = aggregated_data .get (term , f"cfa_{ term } " ),
815
835
ncdimensions = fragment_ncdimensions ,
816
836
)
@@ -884,7 +904,9 @@ def _cfa_aggregation_instructions(self, data, cfvar):
884
904
from os .path import abspath , join , relpath
885
905
from pathlib import PurePath
886
906
from urllib .parse import urlparse
887
-
907
+ import time # TODO
908
+ start = time .time () # TODO
909
+
888
910
g = self .write_vars
889
911
890
912
# Define the CFA file susbstitutions, giving precedence over
@@ -899,11 +921,15 @@ def _cfa_aggregation_instructions(self, data, cfvar):
899
921
# Size of the trailing dimension
900
922
n_trailing = 0
901
923
924
+ start1 = time .time () # TODO
902
925
aggregation_file = []
903
926
aggregation_address = []
904
927
aggregation_format = []
928
+ nnn = 0
905
929
for indices in data .chunk_indices ():
930
+ nnn += 1
906
931
file_details = self ._cfa_get_file_details (data [indices ])
932
+
907
933
if len (file_details ) != 1 :
908
934
if file_details :
909
935
raise ValueError (
@@ -948,7 +974,9 @@ def _cfa_aggregation_instructions(self, data, cfvar):
948
974
aggregation_file .append (tuple (filenames2 ))
949
975
aggregation_address .append (addresses )
950
976
aggregation_format .append (formats )
951
-
977
+ print ('len(data.chunk_indices()) =' ,nnn )
978
+ print (f"loop 1: { time .time () - start1 :.3} " )
979
+
952
980
# Pad each value of the aggregation instruction arrays so that
953
981
# it has 'n_trailing' elements
954
982
a_shape = data .numblocks
@@ -1005,6 +1033,7 @@ def _cfa_aggregation_instructions(self, data, cfvar):
1005
1033
# Return Data objects
1006
1034
# ------------------------------------------------------------
1007
1035
data = type (data )
1036
+ print (f"_cfa_aggregation_instructions: { time .time () - start :.3} " )
1008
1037
return {
1009
1038
"location" : data (aggregation_location ),
1010
1039
"file" : data (aggregation_file ),
0 commit comments