示例#1
0
static double wcslib_pixel_scale(const anwcslib_t* anwcslib) {
	struct wcsprm* wcs = anwcslib->wcs;
	//double* cd = wcs->m_cd;
    double* cd = wcs->cd;
	double ps;
    //printf("WCSlib pixel scale: cd %g,%g,%g,%g\n", cd[0], cd[1], cd[2], cd[3]);
	// HACK -- assume "cd" elements are set...
	ps = deg2arcsec(sqrt(fabs(cd[0]*cd[3] - cd[1]*cd[2])));

    if (ps == 0.0) {
        // Try CDELT
        //printf("WCSlib pixel scale: cdelt %g,%g\n", wcs->cdelt[0], wcs->cdelt[1]);
        ps = deg2arcsec(sqrt(fabs(wcs->cdelt[0] * wcs->cdelt[1])));
    }

	assert(ps > 0.0);
	return ps;
}
static void check_supp1(CuTest* tc, const tycho2_entry* e) {
    CuAssertIntEquals(tc, 2, e->tyc1);
    CuAssertIntEquals(tc, 1127, e->tyc2);
    CuAssertIntEquals(tc, 2, e->tyc3);
    CuAssertIntEquals(tc, 0, e->photo_center);
    CuAssertIntEquals(tc, 0, e->no_motion);

    CuAssertIntEquals(tc, FALSE, e->tycho1_star);

    CuAssertDblEquals(tc, 0.0, e->mean_ra,  1e-8);
    CuAssertDblEquals(tc, 0.0, e->mean_dec, 1e-8);
    CuAssertDblEquals(tc, 4.36837051, e->ra,  1e-8);
    CuAssertDblEquals(tc, 0.31948829, e->dec, 1e-8);

    CuAssertDblEquals(tc, -32.1, e->pm_ra  * 1000.0, 1e-1);
    CuAssertDblEquals(tc,  -9.1, e->pm_dec * 1000.0, 1e-1);

    CuAssertDblEquals(tc,  13.6, deg2mas(e->sigma_ra),  1e-1);
    CuAssertDblEquals(tc,   8.3, deg2mas(e->sigma_dec), 1e-1);
    CuAssertDblEquals(tc, 8.2, e->sigma_pm_ra  * 1000.0, 1e-1);
    CuAssertDblEquals(tc, 5.0, e->sigma_pm_dec * 1000.0, 1e-1);

    CuAssertDblEquals(tc, 10.279, e->mag_HP,   1e-3);
    CuAssertDblEquals(tc,  0.041, e->sigma_HP, 1e-3);

    CuAssertDblEquals(tc, 75.0, deg2arcsec(e->prox) * 10.0, 1e-1);

    CuAssertIntEquals(tc, 1397, e->hipparcos_id);
    CuAssertIntEquals(tc, 1, strlen(e->hip_ccdm));
    CuAssertIntEquals(tc, 0, strcmp(e->hip_ccdm, "B"));


    CuAssertDblEquals(tc,  0.0, deg2mas(e->sigma_mean_ra),  1e-1);
    CuAssertDblEquals(tc,  0.0, deg2mas(e->sigma_mean_dec), 1e-1);
    CuAssertDblEquals(tc, 0.0, e->epoch_mean_ra,  1e-2);
    CuAssertDblEquals(tc, 0.0, e->epoch_mean_dec, 1e-2);
    CuAssertIntEquals(tc, 0, e->nobs);
    CuAssertDblEquals(tc, 0.0, e->goodness_mean_ra,  1e-1);
    CuAssertDblEquals(tc, 0.0, e->goodness_mean_dec, 1e-1);
    CuAssertDblEquals(tc, 0.0, e->goodness_pm_ra,  1e-1);
    CuAssertDblEquals(tc, 0.0, e->goodness_pm_dec, 1e-1);
    CuAssertDblEquals(tc,  0.0, e->mag_BT,   1e-3);
    CuAssertDblEquals(tc,  0.0, e->sigma_BT, 1e-3);
    CuAssertDblEquals(tc,  0.0, e->mag_VT,   1e-3);
    CuAssertDblEquals(tc,  0.0, e->sigma_VT, 1e-3);
    CuAssertDblEquals(tc,  0.0, e->epoch_ra, 1e-2);
    CuAssertDblEquals(tc,  0.0, e->epoch_dec, 1e-2);
    CuAssertIntEquals(tc, FALSE, e->double_star);
    CuAssertIntEquals(tc, FALSE, e->photo_center_treatment);
    CuAssertDblEquals(tc,  0.0, e->correlation, 1e-1);
}
示例#3
0
static void plot_hd(cairo_t* cairo, plot_args_t* pargs, plotann_t* ann) {
	int i, N;
	hd_catalog_t* hdcat = NULL;
	double ra,dec,rad;
	bl* hdlist = NULL;

	if (!ann->hd_catalog)
		return;
	hdcat = henry_draper_open(ann->hd_catalog);
	if (!hdcat) {
		ERROR("Failed to open Henry Draper catalog file \"%s\"", ann->hd_catalog);
		return;
	}
	if (plotstuff_get_radec_center_and_radius(pargs, &ra, &dec, &rad)) {
		ERROR("Failed to get RA,Dec,radius from plotstuff");
		return;
	}
	hdlist = henry_draper_get(hdcat, ra, dec, deg2arcsec(rad));
	logverb("Got %zu Henry Draper stars\n", bl_size(hdlist));
	
	N = bl_size(hdlist);
	for (i=0; i<N; i++) {
		hd_entry_t* entry = bl_access(hdlist, i);
		double px, py;
		char label[16];
		if (!plotstuff_radec2xy(pargs, entry->ra, entry->dec, &px, &py))
			continue;
        px -= 1;
        py -= 1;

		if (px < 1 || py < 1 || px > pargs->W || py > pargs->H)
			continue;
		logverb("HD %i at RA,Dec (%g,%g) -> xy (%g, %g)\n", entry->hd, entry->ra, entry->dec, px, py);

		plotstuff_stack_marker(pargs, px, py);
        if (ann->HD_labels) {
          sprintf(label, "HD %i", entry->hd);
          plotstuff_stack_text(pargs, cairo, label, px, py);
        }
	}
	bl_free(hdlist);
	henry_draper_close(hdcat);
}
static double deg2mas(double x) {
    return 1000.0 * deg2arcsec(x);
}
示例#5
0
double tan_pixel_scale(const tan_t* tan) {
	double scale = deg2arcsec(sqrt(fabs(tan_det_cd(tan))));
	return scale;
}