def create_map(start, end, ar_obs, ar_instr, sp_obs, sp_instr): # setting active regions data = DataAccess(start, end, 'AR', ar_obs, ar_instr) chain_encoded = prep.decode_and_split(data.get_chain_code()) ar_carr_synthesis, ar_pix_synthesis = ar.get_shapes(chain_encoded, data.get_pixel_start_x(), data.get_pixel_start_y(), data.get_filename(), data.get_noaa_number(), data.get_ar_id(), data.get_date()) # setting sunspots sp_data = DataAccess(start, end, 'SP', sp_obs, sp_instr) sp_chain_encoded = prep.decode_and_split(sp_data.get_chain_code()) sp_carr, sp_pix = sp.get_shapes(sp_chain_encoded, sp_data.get_pixel_start_x(), sp_data.get_pixel_start_y(), sp_data.get_filename(), sp_data.get_sp_id(), sp_data.get_date()) sp_synthesis = sp.make_sp_synthesis(ar_contour=ar_carr_synthesis, sp_carr=sp_carr) prep.display_object(ar_carr_synthesis, sp_synthesis)
def test_active_regions(ar_id, grav_long, grav_lat): # Active regions position testing if __name__ == '__main__': ar_data = DataAccess('2003-09-26T00:00:00', '2003-09-26T01:00:00', 'AR', 'SOHO', 'MDI') ar_chain_encoded = prep.decode_and_split(ar_data.get_chain_code()) ar_id = ar_data.get_ar_id() ar_centers_lon = ar_data.get_grav_center_long() ar_centers_lat = ar_data.get_grav_center_lat() ar = ar_carr_synthesis[3] prep.display_object([ar], "") ar2 = np.array(ar) x = ar2[0] y = ar2[1] length = len(ar2[0]) + len(ar2[1]) centroid = (sum(x) / len(ar2[0]), sum(y) / len(ar2[1])) print(centroid)
ax.set_yticks(np.arange(latitude_start, latitude_end, break_between)) ax.grid(which='both') ax.add_collection(p) # push grid lines behind the elements ax.set_axisbelow(True) plt.show() if __name__ == '__main__': from DataAccess import DataAccess data = DataAccess('2010-01-01T00:03:02', '2010-01-01T04:03:02') chain_encoded = encode_and_split(data.get_chain_code()) cords2 = get_shapes(chain_encoded, data.get_pixel_start_x(), data.get_pixel_start_y(), "2.fits") display_object(cords2) # # coordinates - numpy array with coordinates of the contour of the object # # Function convets from pixel coordinates to carrington # # Return - numpy array with carrington coordinates # def convert_to_carrington(coordinates, filename): # np_carrington_array = [] # # for c in coordinates: # np_contour = np.array(c) # Convert list to numpy array # rows = np_contour.shape[0] # get number of rows
# if the longitude difference is smaller than width of ar # and latitude is smaller than height of ar then is success # otherwise fail if lon_diff < width and lat_diff < height: print("SUCCESS", lon_diff) success += 1 else: print("FAIL", lon_diff) print("long_center:", long) print("calculated:", centroid[0]) fail += 1 # prep.display_object(carr_coords, []) else: ignored += 1 print("successes = ", success) print("fail = ", fail) print("ignored = ", ignored) # Active regions position testing if __name__ == '__main__': ar_data = DataAccess('2003-09-28T00:00:00', '2003-10-23T01:00:00', 'AR', 'SOHO', 'MDI') ar_chain_encoded = prep.decode_and_split(ar_data.get_chain_code()) ar_id = ar_data.get_ar_id() ar_centers_lon = ar_data.get_grav_center_long() ar_centers_lat = ar_data.get_grav_center_lat() test_active_regions(ar_id, ar_centers_lon, ar_centers_lat)
for chains in chain_codes: if type(chains) is bytes: chains = chains.decode("utf-8") splitted_chain = list(map(int, str(chains))) codes.append(splitted_chain) return codes if __name__ == '__main__': # http://voparis-helio.obspm.fr/hfc-gui/showmap.php?date=2010-01-01%2000:03:02&feat=ar&style=pixel # http://voparis-helio.obspm.fr/helio-hfc/HelioQueryService?FROM=VIEW_AR_HQI&STARTTIME=2010-01-01T00:00:00&ENDTIME=2010-01-01T01:00:00&WHERE=OBSERVAT,SOHO;INSTRUME,MDI from DataAccess import DataAccess data = DataAccess('2010-01-01T00:00:00', '2010-01-01T02:59:00', 'AR') chain_encoded = encode_and_split([data.get_chain_code()[0]]) sp_data = DataAccess('2010-01-01T00:00:00', '2010-01-01T02:59:00', 'SP') sp_chain = encode_and_split([sp_data.get_chain_code()[0]]) ar = chain_code(chain_encoded[0], data.get_pixel_start_x()[0], data.get_pixel_start_y()[0]) sp = chain_code(sp_chain[0], sp_data.get_pixel_start_x()[0], sp_data.get_pixel_start_y()[0]) draw(ar, sp)
if proportion == 1.0: sunspots.append(sp) break return sunspots if __name__ == '__main__': # Active region + Sunspot testing from DataAccess import DataAccess import ActiveRegion as ar # setting active regions data = DataAccess('2003-10-21T00:00:00', '2003-10-24T00:00:00', 'AR', 'SOHO', 'MDI') chain_encoded = prep.decode_and_split(data.get_chain_code()) ar_carr_synthesis, ar_pix_synthesis = ar.get_shapes( chain_encoded, data.get_pixel_start_x(), data.get_pixel_start_y(), data.get_filename(), data.get_noaa_number(), data.get_ar_id(), data.get_date()) # setting sunspots sp_data = DataAccess('2003-10-21T00:00:00', '2003-10-24T00:00:00', 'SP', 'SOHO', 'MDI') sp_chain_encoded = prep.decode_and_split(sp_data.get_chain_code()) sp_carr, sp_pix = get_shapes(sp_chain_encoded, sp_data.get_pixel_start_x(), sp_data.get_pixel_start_y(), sp_data.get_filename(), sp_data.get_sp_id(), sp_data.get_date())