Commit a08c98c3577cf3e6a50ce47e4eb8bbf4df57fbfd

Authored by David Mayerich
1 parent 5853ce9b

finished documentation of bsq.h

Showing 1 changed file with 43 additions and 29 deletions   Show diff stats
envi/bsq.h
... ... @@ -37,7 +37,7 @@ public:
37 37 //using binary<T>::getSlice;
38 38 using binary<T>::R;
39 39  
40   - ///This function opens a data file for reading using the class interface.
  40 + /// Open a data file for reading using the class interface.
41 41  
42 42 /// @param filename is the name of the binary file on disk
43 43 /// @param X is the number of samples along dimension 1
... ... @@ -56,7 +56,7 @@ public:
56 56  
57 57 }
58 58  
59   - ///This function retrieves a single band (based on index) and stores it in pre-allocated memory.
  59 + /// Retrieve a single band (based on index) and stores it in pre-allocated memory.
60 60  
61 61 /// @param p is a pointer to an allocated region of memory at least X * Y * sizeof(T) in size.
62 62 /// @param page <= B is the integer number of the band to be copied.
... ... @@ -74,7 +74,7 @@ public:
74 74 return true;
75 75 }
76 76  
77   - ///This function retrieves a single band (by numerical label) and stores it in pre-allocated memory.
  77 + /// Retrieve a single band (by numerical label) and stores it in pre-allocated memory.
78 78  
79 79 /// @param p is a pointer to an allocated region of memory at least X * Y * sizeof(T) in size.
80 80 /// @param wavelength is a floating point value (usually a wavelength in spectral data) used as a label for the band to be copied.
... ... @@ -131,7 +131,7 @@ public:
131 131 return true;
132 132 }
133 133  
134   - ///This function retrieves a single spectrum (B-axis line) at a given (x, y) location and stores it in pre-allocated memory.
  134 + /// Retrieve a single spectrum (B-axis line) at a given (x, y) location and stores it in pre-allocated memory.
135 135  
136 136 /// @param p is a pointer to pre-allocated memory at least B * sizeof(T) in size.
137 137 /// @param x is the x-coordinate (dimension 1) of the spectrum.
... ... @@ -155,7 +155,7 @@ public:
155 155 return true;
156 156 }
157 157  
158   - ///This function retrieves a single pixel and stores it in pre-allocated memory.
  158 + /// Retrieve a single pixel and stores it in pre-allocated memory.
159 159  
160 160 /// @param p is a pointer to pre-allocated memory at least sizeof(T) in size.
161 161 /// @param n is an integer index to the pixel using linear array indexing.
... ... @@ -177,7 +177,7 @@ public:
177 177 return true;
178 178 }
179 179  
180   - ///This function performs baseline correction given a list of baseline points and stores the result in a new BSQ file.
  180 + /// Perform baseline correction given a list of baseline points and stores the result in a new BSQ file.
181 181  
182 182 /// @param outname is the name of the output file used to store the resulting baseline-corrected data.
183 183 /// @param wls is the list of baseline points based on band labels.
... ... @@ -282,7 +282,7 @@ public:
282 282 return true;
283 283 }
284 284  
285   - ///This function normalizes all spectra based on the value of a single band, storing the result in a new BSQ file.
  285 + /// Normalize all spectra based on the value of a single band, storing the result in a new BSQ file.
286 286  
287 287 /// @param outname is the name of the output file used to store the resulting baseline-corrected data.
288 288 /// @param w is the label specifying the band that the hyperspectral image will be normalized to.
... ... @@ -325,7 +325,7 @@ public:
325 325 return true;
326 326 }
327 327  
328   - ///This function converts the current BSQ file to a BIP file with the specified file name.
  328 + /// Convert the current BSQ file to a BIP file with the specified file name.
329 329  
330 330 /// @param outname is the name of the output BIP file to be saved to disk.
331 331 bool bip(std::string outname)
... ... @@ -348,7 +348,7 @@ public:
348 348 return true;
349 349 }
350 350  
351   - ///This function converts the current BSQ file to a BIL file with the specified file name.
  351 + /// Convert the current BSQ file to a BIL file with the specified file name.
352 352  
353 353 /// @param outname is the name of the output BIL file to be saved to disk.
354 354 bool bil(std::string outname)
... ... @@ -381,7 +381,7 @@ public:
381 381 return true;
382 382 }
383 383  
384   - /// This function returns a baseline corrected band given two adjacent baseline points and their bands. The result is stored in a pre-allocated array.
  384 + /// Return a baseline corrected band given two adjacent baseline points and their bands. The result is stored in a pre-allocated array.
385 385  
386 386 /// @param lb is the label value for the left baseline point
387 387 /// @param rb is the label value for the right baseline point
... ... @@ -402,7 +402,7 @@ public:
402 402 return true;
403 403 }
404 404  
405   - ///This function returns a baseline corrected band given two adjacent baseline points. The result is stored in a pre-allocated array.
  405 + /// Return a baseline corrected band given two adjacent baseline points. The result is stored in a pre-allocated array.
406 406  
407 407 /// @param lb is the label value for the left baseline point
408 408 /// @param rb is the label value for the right baseline point
... ... @@ -428,7 +428,7 @@ public:
428 428 }
429 429  
430 430  
431   - ///This function calculates the area under the spectrum between two specified points and stores the result in a pre-allocated array.
  431 + /// Calculate the area under the spectrum between two specified points and stores the result in a pre-allocated array.
432 432  
433 433 /// @param lb is the label value for the left baseline point
434 434 /// @param rb is the label value for the right baseline point
... ... @@ -512,7 +512,7 @@ public:
512 512 return true;
513 513 }
514 514  
515   - /// This function computes the ratio of two baseline-corrected peaks. The result is stored in a pre-allocated array.
  515 + /// Compute the ratio of two baseline-corrected peaks. The result is stored in a pre-allocated array.
516 516  
517 517 /// @param lb1 is the label value for the left baseline point for the first peak (numerator)
518 518 /// @param rb1 is the label value for the right baseline point for the first peak (numerator)
... ... @@ -542,7 +542,7 @@ public:
542 542 return true;
543 543 }
544 544  
545   - /// This function computes the ratio between a peak area and peak height.
  545 + /// Compute the ratio between a peak area and peak height.
546 546  
547 547 /// @param lb1 is the label value for the left baseline point for the first peak (numerator)
548 548 /// @param rb1 is the label value for the right baseline point for the first peak (numerator)
... ... @@ -575,7 +575,7 @@ public:
575 575 return true;
576 576 }
577 577  
578   - /// This function computes the ratio between two peak areas.
  578 + /// Compute the ratio between two peak areas.
579 579  
580 580 /// @param lb1 is the label value for the left baseline point for the first peak (numerator)
581 581 /// @param rb1 is the label value for the right baseline point for the first peak (numerator)
... ... @@ -608,7 +608,7 @@ public:
608 608 return true;
609 609 }
610 610  
611   - /// This function computes the definite integral of a baseline corrected peak.
  611 + /// Compute the definite integral of a baseline corrected peak.
612 612  
613 613 /// @param lb is the label value for the left baseline point
614 614 /// @param rb is the label value for the right baseline point
... ... @@ -689,7 +689,7 @@ public:
689 689 return true;
690 690 }
691 691  
692   - /// This function computes the centroid of a baseline corrected peak.
  692 + /// Compute the centroid of a baseline corrected peak.
693 693  
694 694 /// @param lb is the label value for the left baseline point
695 695 /// @param rb is the label value for the right baseline point
... ... @@ -716,7 +716,7 @@ public:
716 716 return true;
717 717 }
718 718  
719   - /// This function creates a mask based on a given band and threshold value.
  719 + /// Create a mask based on a given band and threshold value.
720 720  
721 721 /// All pixels in the
722 722 /// specified band greater than the threshold are true and all pixels less than the threshold are false.
... ... @@ -740,7 +740,7 @@ public:
740 740  
741 741 }
742 742  
743   - /// This function applies a mask file to the BSQ image, setting all values outside the mask to zero.
  743 + /// Apply a mask file to the BSQ image, setting all values outside the mask to zero.
744 744  
745 745 /// @param outfile is the name of the masked output file
746 746 /// @param p is a pointer to memory of size X * Y, where p(i) = 0 for pixels that will be set to zero.
... ... @@ -772,7 +772,7 @@ public:
772 772 return true;
773 773 }
774 774  
775   - /// This function calculates the mean band value (average along B) at each pixel location.
  775 + /// Calculate the mean band value (average along B) at each pixel location.
776 776  
777 777 /// @param p is a pointer to memory of size X * Y * sizeof(T) that will store the band averages.
778 778 bool band_avg(T* p){
... ... @@ -794,22 +794,26 @@ public:
794 794 return true;
795 795 }
796 796  
797   - //calculate the average number of every band
  797 + /// Calculate the mean value for all masked (or valid) pixels in a band and returns the average spectrum
  798 +
  799 + /// @param p is a pointer to pre-allocated memory of size [B * sizeof(T)] that stores the mean spectrum
  800 + /// @param mask is a pointer to memory of size [X * Y] that stores the mask value at each pixel location
798 801 bool avg_band(T*p, unsigned char* mask){
799 802 unsigned long long XY = R[0] * R[1];
800   - unsigned count = 0; //number of vaild pixel in a band
  803 + unsigned count = 0; //count will store the number of masked pixels
801 804 T* temp = (T*)malloc(sizeof(T) * XY);
802   - //calculate valid pixel number
  805 + //calculate this loop counts the number of true pixels in the mask
803 806 for (unsigned j = 0; j < XY; j++){
804 807 if (mask[j] != 0){
805 808 count++;
806 809 }
807 810 }
808   - //calculate average of a band
  811 + //this loops goes through each band in B (R[2])
  812 + // masked (or valid) pixels from that band are averaged and the average is stored in p
809 813 for (unsigned i = 0; i < R[2]; i++){
810 814 p[i] = 0;
811   - band_index(temp, i);
812   - for (unsigned j = 0; j < XY; j++){
  815 + band_index(temp, i); //get the band image and store it in temp
  816 + for (unsigned j = 0; j < XY; j++){ //loop through temp, averaging valid pixels
813 817 if (mask[j] != 0){
814 818 p[i] += temp[j] / (T)count;
815 819 }
... ... @@ -819,7 +823,11 @@ public:
819 823 return true;
820 824 }
821 825  
822   - //calculate correlated matrix
  826 + /// Calculate the covariance matrix for all masked pixels in the image.
  827 +
  828 + /// @param co is a pointer to pre-allocated memory of size [B * B] that stores the resulting covariance matrix
  829 + /// @param avg is a pointer to memory of size B that stores the average spectrum
  830 + /// @param mask is a pointer to memory of size [X * Y] that stores the mask value at each pixel location
823 831 bool co_matrix(T* co, T* avg, unsigned char *mask){
824 832 //memory allocation
825 833 unsigned long long xy = R[0] * R[1];
... ... @@ -857,7 +865,13 @@ public:
857 865 }
858 866  
859 867  
860   - //crop specified area the of the original file
  868 + /// Crop a region of the image and save it to a new file.
  869 +
  870 + /// @param outfile is the file name for the new cropped image
  871 + /// @param x0 is the lower-left x pixel coordinate to be included in the cropped image
  872 + /// @param y0 is the lower-left y pixel coordinate to be included in the cropped image
  873 + /// @param x1 is the upper-right x pixel coordinate to be included in the cropped image
  874 + /// @param y1 is the upper-right y pixel coordinate to be included in the cropped image
861 875 bool crop(std::string outfile, unsigned x0, unsigned y0, unsigned x1, unsigned y1){
862 876  
863 877 //calculate the new number of samples and lines
... ... @@ -886,7 +900,7 @@ public:
886 900 }
887 901  
888 902  
889   - //close the file
  903 + /// Close the file.
890 904 bool close(){
891 905 file.close();
892 906 return true;
... ...