def minor_planet_chart_pos_img(minor_planet_id, ra, dec): minor_planet = MinorPlanet.query.filter_by(id=minor_planet_id).first() if minor_planet is None: abort(404) minor_planet_ra = to_float(request.args.get('obj_ra'), None) minor_planet_dec = to_float(request.args.get('obj_dec'), None) flags = request.args.get('json') visible_objects = [] if flags else None trajectory_b64 = request.args.get('trajectory') if trajectory_b64: trajectory_json = base64.b64decode(trajectory_b64) trajectory = json.loads(trajectory_json) else: trajectory = None img_bytes = common_chart_pos_img(minor_planet_ra, minor_planet_dec, ra, dec, visible_objects=visible_objects, trajectory=trajectory) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def double_star_chart_pos_img(double_star_id, ra, dec): double_star = DoubleStar.query.filter_by(id=double_star_id).first() if double_star is None: abort(404) flags = request.args.get('json') visible_objects = [] if flags else None img_bytes = common_chart_pos_img(double_star.ra_first, double_star.dec_first, ra, dec, visible_objects=visible_objects) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def observed_list_chart_pos_img(ra, dec): observed_list = ObservedList.create_get_observed_list_by_user_id(current_user.id) if observed_list is None: abort(404) highlights_dso_list = [ x.deepskyObject for x in observed_list.observed_list_items if observed_list.observed_list_items ] flags = request.args.get('json') visible_objects = [] if flags else None img_bytes = common_chart_pos_img(None, None, ra, dec, visible_objects=visible_objects, highlights_dso_list=highlights_dso_list) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def constellation_chart_pos_img(constellation_id, ra, dec): constellation = _find_constellation(constellation_id) if constellation is None: abort(404) flags = request.args.get('json') visible_objects = [] if flags else None img_bytes = common_chart_pos_img(constellation.label_ra, constellation.label_dec, ra, dec, visible_objects=visible_objects, hl_constellation=constellation.iau_code) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def dso_list_chart_pos_img(dso_list_id, ra, dec): highlights_dso_list = _find_highlights_dso_list(dso_list_id) if highlights_dso_list is None: abort(404) flags = request.args.get('json') visible_objects = [] if flags else None img_bytes = common_chart_pos_img(None, None, ra, dec, visible_objects=visible_objects, highlights_dso_list=highlights_dso_list) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def news_chart_pos_img(news_id, ra, dec): news = News.query.filter_by(id=news_id).first() if news is None: abort(404) if not news.is_released and (current_user.is_anonymous or not current_user.is_editor): abort(404) flags = request.args.get('json') visible_objects = [] if flags else None img_bytes = common_chart_pos_img(news.ra, news.dec, ra, dec, visible_objects=visible_objects) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def session_plan_chart_pos_img(session_plan_id, ra, dec): session_plan = SessionPlan.query.filter_by(id=session_plan_id).first() _check_session_plan(session_plan, allow_public=True) highlights_dso_list = [ x.deepskyObject for x in session_plan.session_plan_items if session_plan ] flags = request.args.get('json') visible_objects = [] if flags else None img_bytes = common_chart_pos_img(None, None, ra, dec, visible_objects=visible_objects, highlights_dso_list=highlights_dso_list) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def chart_pos_img(ra, dec): flags = request.args.get('json') mark_ra = request.args.get('mra', None) mark_dec = request.args.get('mdec', None) if mark_ra is not None and mark_dec is not None: f_mark_ra = float(mark_ra) f_mark_dec = float(mark_dec) else: f_mark_ra, f_mark_dec = None, None visible_objects = [] if flags else None img_bytes = common_chart_pos_img(f_mark_ra, f_mark_dec, ra, dec, visible_objects=visible_objects) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def observing_session_chart_pos_img(observing_session_id, ra, dec): observing_session = ObservingSession.query.filter_by( id=observing_session_id).first() is_mine_observing_session = _check_observing_session(observing_session, allow_public=True) highlights_dso_list = [] for observation in observing_session.observations: highlights_dso_list.extend(observation.deepsky_objects) flags = request.args.get('json') visible_objects = [] if flags else None img_bytes = common_chart_pos_img(None, None, ra, dec, visible_objects=visible_objects, highlights_dso_list=highlights_dso_list) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')
def deepskyobject_chart_pos_img(dso_id, ra, dec): dso, orig_dso = _find_dso(dso_id) if dso is None: abort(404) flags = request.args.get('json') visible_objects = [] if flags else None highlights_dso_list = None back = request.args.get('back') back_id = request.args.get('back_id') if back == 'dso_list' and back_id is not None: dso_list = DsoList.query.filter_by(id=back_id).first() if dso_list: highlights_dso_list = [ x.deepskyObject for x in dso_list.dso_list_items if dso_list ] elif back == 'wishlist' and current_user.is_authenticated: wish_list = WishList.create_get_wishlist_by_user_id(current_user.id) highlights_dso_list = [ x.deepskyObject for x in wish_list.wish_list_items if wish_list.wish_list_items ] elif back == 'session_plan': session_plan = SessionPlan.query.filter_by(id=back_id).first() if _allow_view_session_plan(session_plan): highlights_dso_list = [ x.deepskyObject for x in session_plan.session_plan_items if session_plan ] elif back == 'observation': observing_session = ObservingSession.query.filter_by( id=back_id).first() if observing_session and (observing_session.is_public or observing_session.user_id == current_user.id): highlights_dso_list = [] for observation in observing_session.observations: highlights_dso_list.extend(observation.deepsky_objects) elif back == 'observed_list' and current_user.is_authenticated: observed_list = ObservedList.create_get_observed_list_by_user_id( current_user.id) highlights_dso_list = [ x.deepskyObject for x in observed_list.observed_list_items if observed_list.observed_list_items ] elif back == 'running_plan' and back_id is not None: observation_plan_run = ObsSessionPlanRun.query.filter_by( id=back_id).first() if observation_plan_run and _allow_view_session_plan( observation_plan_run.session_plan): highlights_dso_list = [ x.deepskyObject for x in observation_plan_run.session_plan.session_plan_items ] img_bytes = common_chart_pos_img(dso.ra, dso.dec, ra, dec, dso_names=(dso.name, ), visible_objects=visible_objects, highlights_dso_list=highlights_dso_list) if visible_objects is not None: img = base64.b64encode(img_bytes.read()).decode() return jsonify(img=img, img_map=visible_objects) else: return send_file(img_bytes, mimetype='image/png')